Amazon QuickSight est un service de business intelligence (BI) cloud natif entièrement géré qui facilite la connexion à vos données, la création de tableaux de bord interactifs et leur partage avec des dizaines de milliers d'utilisateurs, soit dans QuickSight lui-même, soit intégré dans un logiciel en tant que applications de service (SaaS).
QuickSight Enterprise Edition a récemment ajouté une sécurité au niveau des lignes (RLS) à l'aide de balises, une nouvelle fonctionnalité qui permet aux développeurs de partager un seul tableau de bord avec des dizaines de milliers d'utilisateurs, tout en garantissant que chaque utilisateur ne peut voir et avoir accès qu'à des données particulières. Cela signifie que lorsqu'un fournisseur de logiciels indépendant (ISV) ajoute un tableau de bord intégré à QuickSight dans son application, il n'a pas besoin de provisionner ses utilisateurs finaux dans QuickSight et peut simplement configurer des balises pour filtrer les données en fonction de l'identité du tableau de bord. être servi. Par exemple, si un éditeur de logiciels souhaite configurer un tableau de bord qui doit être partagé avec 20,000 100 utilisateurs sur 20,000 clients d'une application, avec tous les utilisateurs d'un client ayant accès à des données identiques, cette nouvelle fonctionnalité vous permet de partager un seul tableau de bord pour tous les utilisateurs, sans avoir à configurer ou gérer les XNUMX XNUMX utilisateurs dans QuickSight.
RLS appliqué à l'aide de balises garantit que chaque utilisateur final ne voit que les données qui le concernent, tandis que QuickSight s'adapte automatiquement pour répondre à la concurrence des utilisateurs afin de garantir que chaque utilisateur final bénéficie de performances rapides et constantes. Dans cet article, nous examinons comment cela peut être mis en œuvre.
Vue d'ensemble de la solution
Pour intégrer des tableaux de bord sans provisioning utilisateur, nous utilisons l'API Générer l'URL d'intégration pour l'utilisateur anonyme, qui fonctionne avec QuickSight tarification de la capacité de session. Avec cette API, le serveur d'intégration (logique dans l'application SaaS) détermine et gère l'identité de l'utilisateur à qui le tableau de bord est affiché (contrairement à cette identité qui est provisionnée et gérée dans QuickSight).
Le diagramme suivant montre un exemple de flux de travail de tableaux de bord intégrés qui sécurise les données en fonction de la personne qui accède à l'application à l'aide de RLS avec des balises.
Dans ce cas, un ISV dispose d’une application SaaS accessible par deux utilisateurs finaux. L’un est gestionnaire et l’autre est superviseur de chantier. Les deux utilisateurs accèdent à la même application et au même tableau de bord QuickSight intégré à l'application et ne sont pas provisionnés dans QuickSight. Lorsque le superviseur de site accède au tableau de bord, il voit uniquement les données relatives à son site, et lorsque le responsable accède au tableau de bord, il voit les données relatives à tous les sites qu'il gère.
Pour obtenir ce comportement, nous utilisons une nouvelle fonctionnalité qui permet de configurer la sécurité au niveau des lignes à l'aide de balises. Cette méthode de sécurisation des données sur les tableaux de bord intégrés ne fonctionne que lorsque les tableaux de bord sont intégrés sans provisionnement des utilisateurs (également appelé intégration anonyme). Le processus comprend deux étapes :
- Configurez des clés de balise sur les colonnes des ensembles de données utilisés pour créer le tableau de bord.
- Définissez les valeurs des clés de balise au moment de l'exécution lors de l'intégration anonyme du tableau de bord.
Configurer des clés de balise sur les colonnes des ensembles de données utilisés pour créer le tableau de bord
Les éditeurs de logiciels ou les développeurs peuvent définir des colonnes sur les ensembles de données à l'aide de l'outil CreateDataset
or UpdateDataset
API comme suit :
Dans l'exemple de code précédent, row-level-permission-tag-configuration
est l'élément que vous pouvez utiliser pour définir des clés de balise sur les colonnes d'un ensemble de données. Pour chaque balise, vous pouvez définir les éléments facultatifs suivants :
- TagMultiValueDelimiter – Cette option, lorsqu'elle est définie sur une colonne, vous permet de transmettre plusieurs valeurs à la balise au moment de l'exécution, et les valeurs sont délimitées par la chaîne définie pour cette option. Dans cet exemple, une virgule est définie comme chaîne de délimitation.
- MatchAllValue – Cette option, lorsqu'elle est définie sur une colonne, vous permet de transmettre toutes les valeurs d'une colonne au moment de l'exécution, et les valeurs sont représentées par la chaîne définie pour cette option. Dans cet exemple, un astérisque est défini comme chaîne de correspondance totale.
Après avoir défini nos balises, nous pouvons activer ou désactiver ces règles à l'aide du Status
élément de l'API. Dans ce cas, la valeur est fixée à ENABLED
. Pour désactiver les règles, la valeur est DISABLED
. Une fois les balises activées, nous pouvons transmettre des valeurs aux balises au moment de l'exécution pour sécuriser les données affichées en fonction de la personne qui accède au tableau de bord.
Chaque ensemble de données peut contenir jusqu'à 50 clés de balise.
Nous recevons la réponse suivante pour le CreateDataset
or UpdateDataset
API:
Permettre aux auteurs d'accéder aux données protégées par des clés de balise lors de la création d'analyses
Une fois les clés de balises définies et activées sur l’ensemble de données, celui-ci est sécurisé. Les auteurs qui utilisent cet ensemble de données pour créer un tableau de bord ne voient aucune donnée. Ils doivent disposer d’autorisations pour voir toutes les données de l’ensemble de données lors de la création d’un tableau de bord. Pour autoriser les auteurs QuickSight à afficher les données de l'ensemble de données, créez un fichier d'autorisations ou un ensemble de données de règles. Pour plus d'informations, voir Création de règles d'ensemble de données pour la sécurité au niveau des lignes. Voici un exemple d'ensemble de données de règles.
UserName | nom_colonne_1 | nom_colonne_2 | nom_colonne_3 |
administrateur/auteur-échantillon |
Dans cet exemple d'ensemble de données, le nom d'utilisateur de l'auteur est répertorié dans la colonne UserName. Les trois autres colonnes sont les colonnes de l'ensemble de données sur lesquelles nous définissons les clés de balise. Les valeurs sont laissées vides pour ces colonnes pour l'auteur ajouté à ce tableau. Cela permet à l'auteur de voir toutes les données de ces colonnes sans aucune restriction lorsqu'il crée des analyses.
Définir les valeurs des clés de balise au moment de l'exécution lors de l'intégration du tableau de bord
Une fois les clés de balise définies pour les colonnes des ensembles de données, les développeurs définissent les valeurs des clés au moment de l'exécution lors de l'intégration du tableau de bord. Les développeurs appellent l'API GenerateDashboardEmbedURLForAnonymousUser
pour intégrer le tableau de bord et transmettre des valeurs aux clés de balise dans l'élément SessionTags
, comme illustré dans l'exemple de code suivant :
Étant donné que cette fonctionnalité sécurise les données des utilisateurs non provisionnés dans QuickSight, l'appel API est destiné AnonymousUser
uniquement et donc cette fonctionnalité ne fonctionne qu'avec l'API GenerateDashboardEmbedURLForAnonymousUser
.
L'exemple de code précédent comporte les composants suivants :
- Pour
tag_name_1
, vous définissez deux valeurs (value1
ainsi quevalue2
) en utilisant leTagMultiValueDelimiter
défini lors de la définition des clés de balise (dans ce cas, une virgule). - Pour
tag_name_2
, vous définissez une valeur sous forme d'astérisque. Cela permet à cette clé de balise de se voir attribuer toutes les valeurs de cette colonne, car nous avons défini un astérisque commeMatchAllValue
lors de la définition d'une clé de balise sur la colonne plus tôt. - Pour
tag_name_3
, vous définissez une valeur (value3
).
Définition de la réponse API
La réponse de l'API a le EmbedURL
, Status
et RequestID
. Vous pouvez intégrer cette URL dans votre page HTML. Les données de ce tableau de bord sont sécurisées en fonction des valeurs transmises aux clés de balise lors de l'appel de l'API d'intégration. GenerateDashboardEmbedURLForAnonymousUser
:
- IntégrerUrl (chaîne) – Une URL à usage unique que vous pouvez insérer dans votre page Web côté serveur pour intégrer votre tableau de bord. Cette URL est valide pendant 5 minutes. L'opération API fournit à l'URL un
auth_code
valeur qui permet une (et une seule) connexion à une session utilisateur valable jusqu'à 10 heures. Cette URL affiche le tableau de bord avec les règles RLS appliquées en fonction des valeurs définies pour les clés de balise RLS. - Statut (entier) – Le statut HTTP de la requête.
- ID de demande (chaîne) – L'ID de demande AWS pour cette opération.
Contrôle d'accès affiné
Vous pouvez obtenir un contrôle d'accès précis en utilisant des Gestion des identités et des accès AWS (IAM) génération de politiques. Pour plus d'informations, voir Isoler les locataires SaaS avec des stratégies IAM générées dynamiquement. Lors de l'utilisation du GenerateEmbedUrlForAnonymousUser
API pour l'intégration, vous devez mentionner deux types de ressources dans la stratégie IAM : les ARN d'espace de noms auxquels appartiennent virtuellement vos utilisateurs anonymes et les ARN de tableau de bord qui peuvent être utilisés dans l'API. AuthorizedResourceArns
valeur du paramètre d’entrée. Les sessions générées à l'aide de cette API peuvent accéder aux ressources autorisées et à celles (tableaux de bord) partagées avec l'espace de noms.
Étant donné que les utilisateurs anonymes font partie d'un espace de noms, tous les tableaux de bord partagés avec l'espace de noms leur sont accessibles, qu'ils soient transmis explicitement ou non via l'espace de noms. AuthorizedResourceArns
paramètre.
Pour permettre à l'identité de l'appelant de générer une URL pour n'importe quel utilisateur et n'importe quel tableau de bord, le Resource
Le bloc de la politique peut être défini sur *
. Pour permettre à l'identité de l'appelant de générer une URL pour tout utilisateur anonyme dans un espace de noms spécifique (tel que Tenant1
) et de Resource
une partie de la politique peut être définie sur arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. C'est la même chose pour l'ID du tableau de bord. Pour la génération dynamique de stratégies, vous pouvez également utiliser des espaces réservés pour l'espace de noms et les utilisateurs.
Le code suivant est un exemple de stratégie IAM :
Cas d'utilisation
OkTank est un ISV dans le domaine de la santé. Ils disposent d'une application SaaS utilisée par différents hôpitaux dans différentes régions du pays pour gérer leurs revenus. OkTank compte des milliers d'employés de la santé qui accèdent à son application et a intégré les opérations liées à leur entreprise dans un tableau de bord QuickSight dans leur application. OkTank ne souhaite pas gérer ses utilisateurs dans QuickSight séparément et souhaite sécuriser les données en fonction de l'utilisateur à partir duquel l'hôpital accède à son application. OkTank sécurise les données sur les tableaux de bord au moment de l'exécution à l'aide d'une sécurité au niveau des lignes à l'aide de balises.
OkTank possède des hôpitaux (Hôpital Nord, Hôpital Sud et Hôpital du centre-ville) dans les régions Centre, Est, Sud et Ouest.
Dans cet exemple, les utilisateurs suivants accèdent à l'application OkTank et au tableau de bord intégré. Chaque utilisateur dispose d'un certain niveau de règles de restriction qui définissent les données auxquelles il peut accéder dans les tableaux de bord. PowerUser
est un super utilisateur qui peut voir les données de tous les hôpitaux et régions.
Utilisateur de l'application OkTank | Hôpital | Région |
Utilisateur Nord | Hôpital du Nord | Centre et Est |
Administrateur Nord | Hôpital du Nord | Toutes les régions |
Utilisateur Sud | Hôpital Sud | Région Sud |
Administrateur Sud | Hôpital Sud | Toutes les régions |
utilisateur expérimenté | Tous les hôpitaux | Toutes les régions |
Aucun de ces utilisateurs n'a été provisionné dans QuickSight. OkTank gère ces utilisateurs dans sa propre application et sait donc à quelle région et à quel hôpital appartient chaque utilisateur. Lorsque l'un de ces utilisateurs accède au tableau de bord QuickSight intégré dans l'application, OkTank doit sécuriser les données sur le tableau de bord afin que les utilisateurs ne puissent voir que les données de leur région et de leur hôpital.
Tout d'abord, OkTank a créé des clés de balise sur l'ensemble de données qu'ils utilisent pour alimenter le tableau de bord. Dans leurs UpdateDataset
appel d'API, le RowLevelPermissionTagConfiguration
L'élément de l'ensemble de données est le suivant :
Deuxièmement, au moment de l'exécution, lors de l'intégration du tableau de bord via le GenerateDashboardEmbedURLForAnonymousUser
API, ils ont défini SessionTags
pour chaque utilisateur.
SessionTags
en NorthUser
dans l' GenerateDashboardEmbedURLForAnonymousUser
Les appels API sont les suivants :
SessionTags
en NorthAdmin
sont les suivants:
SessionTags
en SouthUser
sont les suivants:
SessionTags
en SouthAdmin
sont les suivants:
SessionTags
en PowerUser
sont les suivants:
La capture d'écran suivante montre ce que SouthUser
voit relatif à l’Hôpital Sud dans la région Sud.
La capture d'écran suivante montre ce que SouthAdmin
voit relatif à l'Hôpital Sud dans toutes les régions.
La capture d'écran suivante montre ce que PowerUser
voit relatif à tous les hôpitaux de toutes les régions.
Sur la base de balises de session, OkTank a sécurisé les données sur les tableaux de bord intégrés de telle sorte que chaque utilisateur ne voit que des données spécifiques en fonction de son accès. Tu peux accéder au tableau de bord en tant qu'un des utilisateurs (en changeant l'utilisateur dans le menu déroulant en haut à droite) et voyez comment les données changent en fonction de l'utilisateur sélectionné.
Dans l'ensemble, grâce à la sécurité au niveau des lignes utilisant des balises, OkTank est en mesure de fournir une expérience analytique convaincante au sein de son application SaaS, tout en garantissant que chaque utilisateur ne voit que les données appropriées sans avoir à provisionner et gérer les utilisateurs dans QuickSight. QuickSight fournit une option d'analyse sécurisée et hautement évolutive que vous pouvez configurer et déployer en production en quelques jours, au lieu de semaines ou de mois auparavant.
Conclusion
La combinaison d'un tableau de bord intégré pour les utilisateurs non provisionnés dans QuickSight et d'une sécurité au niveau des lignes à l'aide de balises permet aux développeurs et aux éditeurs de logiciels indépendants de configurer rapidement et facilement des analyses sophistiquées et personnalisées pour les utilisateurs de leurs applications, le tout sans aucune configuration ni gestion d'infrastructure tout en s'adaptant à des millions d'utilisateurs. . Pour plus de mises à jour de Analyse intégrée QuickSight, Voir Nouveautés du guide de l'utilisateur Amazon QuickSight.
À propos des auteurs
Raji Sivasubramaniam est un architecte de solutions spécialisé chez AWS, spécialisé dans l'analyse. Raji a 20 ans d'expérience dans l'architecture de solutions de bout en bout de gestion de données d'entreprise, de business intelligence et d'analyse pour les entreprises Fortune 500 et Fortune 100 à travers le monde. Elle possède une expérience approfondie des données et analyses intégrées de soins de santé avec une grande variété d’ensembles de données de soins de santé, notamment le marché géré, le ciblage des médecins et l’analyse des patients. Dans ses temps libres, Raji aime la randonnée, le yoga et le jardinage.
Srikanth Baheti est un architecte de solutions World Wide Sr. spécialisé pour Amazon QuickSight. Il a commencé sa carrière en tant que consultant et a travaillé pour plusieurs organisations privées et gouvernementales. Plus tard, il a travaillé pour PerkinElmer Health and Sciences & eResearch Technology Inc, où il était responsable de la conception et du développement d'applications Web à fort trafic, de pipelines de données hautement évolutifs et maintenables pour les plateformes de reporting utilisant les services AWS et l'informatique sans serveur.
Kareem Syed-Mohammed est chef de produit chez Amazon QuickSight. Il se concentre sur l'analyse intégrée, les API et l'expérience des développeurs. Avant QuickSight, il a travaillé pour AWS Marketplace et Amazon Retail en tant que PM. Kareem a commencé sa carrière en tant que développeur puis PM pour les technologies de centre d'appels, Local Expert et Ads pour Expedia. Il a travaillé pendant une courte période en tant que consultant chez McKinsey and Company.
- '
- "
- &
- 000
- 100
- 11
- accès
- Compte
- Action
- annonces
- Tous
- Amazon
- analytique
- api
- Apis
- appli
- Application
- applications
- applications
- auteurs
- AWS
- construire
- la performance des entreprises
- l'intelligence d'entreprise
- Appelez-nous
- Compétences
- Carrière
- code
- Colonne
- Sociétés
- Société
- informatique
- consultant
- Clients
- tableau de bord
- données
- gestion des données
- Développeur
- mobiles
- Downtown
- employés
- Entreprise
- Découvrez
- RAPIDE
- Fonctionnalité
- Gouvernement
- Santé
- la médecine
- ici
- Haute
- randonnée
- Hôpital
- les hôpitaux
- Comment
- HTTPS
- IAM
- Active
- Y compris
- d'information
- Infrastructure
- Intelligence
- Interactif
- IT
- clés / KEY :
- clés
- Niveau
- locales
- Fabrication
- gestion
- Marché
- marché
- Match
- mois
- nouvelle fonctionnalité
- Nord
- Opérations
- Option
- Autre
- performant
- médecin
- Plateformes
- politique
- power
- Privé
- Produit
- Vidéo
- ressource
- Ressources
- réponse
- détail
- de revenus
- Roulent
- SaaS.
- mise à l'échelle
- STARFLEET SCIENCES
- sécurité
- voit
- choisi
- Sans serveur
- Services
- set
- mise
- Partager
- commun
- Shorts
- Sites
- So
- Logiciels
- Solutions
- Région Sud
- Space
- j'ai commencé
- Déclaration
- Statut
- Les technologies
- Technologie
- fiable
- top
- circulation
- Actualités
- utilisateurs
- Plus-value
- web
- Applications Web
- Ouest
- WHO
- dans les
- workflow
- vos contrats
- world
- années
- Yoga