Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Intégrez des composants visuels Amazon Quick Sight dans des applications Web à l'aide d'Amazon Cognito et de l'automatisation iAc
Ishita Gupta et Srishti Wadhwa, Amazon Web Services
Résumé
Ce modèle propose une approche spécialisée pour intégrer les composants visuels Amazon Quick Sight dans les applications React en utilisant l'intégration des utilisateurs enregistrés avec une authentification Amazon Cognito rationalisée. Ces ressources sont ensuite déployées via un modèle d'infrastructure en tant que code (IaC). Contrairement à l'intégration traditionnelle de tableaux de bord, cette solution isole des tableaux et des graphiques spécifiques pour une intégration directe dans les applications React, ce qui améliore considérablement les performances et l'expérience utilisateur.
L'architecture établit un flux d'authentification efficace entre la gestion des utilisateurs d'Amazon Cognito et les autorisations de Quick Sight : les utilisateurs s'authentifient via Amazon Cognito et accèdent à leurs visualisations autorisées conformément aux règles de partage du tableau de bord de Quick Sight. Cette approche rationalisée élimine le besoin d'un accès direct à la console Quick Sight tout en maintenant des contrôles de sécurité robustes.
L'environnement complet est déployé via un AWS CloudFormation modèle unique qui fournit tous les composants d'infrastructure nécessaires, notamment :
Un backend sans serveur qui utilise Amazon AWS Lambda API Gateway
Hébergement frontal sécurisé via Amazon CloudFront, Amazon Simple Storage Service (Amazon S3), et AWS WAF
Gestion des identités à l'aide d'Amazon Cognito
Tous les composants sont configurés conformément aux meilleures pratiques de sécurité en matière de politiques de moindre privilège Gestion des identités et des accès AWS (IAM), de AWS WAF protection et de chiffrement. end-to-end
Cette solution est idéale pour les équipes de développement et les organisations qui souhaitent intégrer des analyses sécurisées et interactives dans leurs applications tout en maintenant un contrôle précis de l'accès des utilisateurs. La solution utilise des services AWS gérés et l'automatisation pour simplifier le processus d'intégration, améliorer la sécurité et garantir l'évolutivité afin de répondre aux besoins évolutifs de l'entreprise.
Public cible et cas d'utilisation :
Développeurs frontaux qui souhaitent intégrer des analyses dans les applications React
Les équipes de production de logiciels en tant que service (SaaS) qui souhaitent proposer des visualisations de données par utilisateur ou basées sur les rôles
Architectes de solutions intéressés par l'intégration de l' AWS analytique dans des portails personnalisés
Développeurs de business intelligence (BI) qui souhaitent exposer des visuels à des utilisateurs authentifiés sans avoir besoin d'un accès complet au tableau de bord
Les équipes d'entreprise qui souhaitent intégrer des graphiques Quick Sight interactifs dans les outils internes
Conditions préalables et limitations
Conditions préalables
Pour implémenter ce modèle avec succès, assurez-vous que les éléments suivants sont en place :
Active Compte AWS : Compte AWS avec les autorisations nécessaires pour déployer des CloudFormation piles et créer des ressources Lambda, API Gateway, Amazon Cognito CloudFront et Amazon S3.
Compte Amazon Quick Sight : compte Quick Sight actif avec au moins un tableau de bord contenant des visuels. Pour les instructions de configuration, consultez Tutoriel : Création d'un tableau de bord Amazon Quick Sight à l'aide d'exemples de données figurant dans la documentation Amazon Quick Suite.
Un environnement de développement composé de :
Node.js (version 16 ou ultérieure)
npm ou fil installé
Vite en tant qu'outil de construction de React
React (version 19.1.1)
Partage de tableaux de bord — Les tableaux de bord doivent être partagés dans Quick Sight et l'implémenteur doit se connecter pour accéder aux visuels ou aux tableaux de bord intégrés.
Limites
Ce modèle utilise la méthode d'intégration des utilisateurs enregistrés, qui nécessite que les implémenteurs disposent d'un compte Quick Sight actif.
L'accès est limité aux tableaux de bord et aux visuels qui sont explicitement partagés avec l'utilisateur authentifié de Quick Sight qui implémente ce modèle. Si l'implémenteur ne dispose pas des droits d'accès appropriés, la génération de l'URL d'intégration échouera et les visuels ne se chargeront pas.
La CloudFormation pile doit être déployée dans un environnement Région AWS où Quick Sight, API Gateway et Amazon Cognito sont pris en charge. Pour connaître la disponibilité par région, voir Services AWS par région
.
Versions du produit
SDK d'intégration Quick Sight
version 2.10.1 Version 19.1.1 de React
Node.js
version 16 ou ultérieure pour garantir la compatibilité avec les dernières versions de React et Vite utilisées dans cette solution
Architecture
Architecture cible
Le schéma suivant montre l'architecture et le flux de travail de ce modèle.

Dans ce flux de travail :
L'utilisateur accède à l'application. L'utilisateur ouvre l'application Web React à l'aide d'un navigateur. La demande est acheminée vers une CloudFront distribution qui agit comme un réseau de diffusion de contenu pour l'application.
AWS WAF filtre les requêtes malveillantes. Avant que la demande n'arrive CloudFront, elle est transmise AWS WAF. AWS WAF inspecte le trafic et bloque toute demande malveillante ou suspecte conformément aux règles de sécurité.
Amazon S3 fournit des fichiers statiques. Si la demande est propre, CloudFront extrait les ressources statiques du frontend (HTML, JS, CSS) d'un compartiment S3 privé à l'aide du contrôle d'accès à l'origine (OAC) et les transmet au navigateur.
L'utilisateur se connecte. Une fois l'application chargée, l'utilisateur se connecte via Amazon Cognito, qui authentifie l'utilisateur et renvoie un jeton Web JSON sécurisé (JWT) pour un accès autorisé à l'API.
L'application envoie une demande d'API. Après la connexion, l'application React effectue un appel sécurisé vers le
/get-embed-urlpoint de terminaison sur API Gateway et transmet le jeton JWT dans l'en-tête de la demande pour authentification.Le jeton est validé. API Gateway valide le jeton à l'aide d'un autorisateur Amazon Cognito. Si le jeton est valide, la demande est traitée ; dans le cas contraire, elle est refusée avec une réponse 401 (non autorisée).
La demande est dirigée vers Lambda pour traitement. La demande validée est ensuite transmise à une fonction Lambda principale. Cette fonction est chargée de générer l'URL d'intégration pour le visuel Quick Sight demandé.
Lambda génère l'URL d'intégration à partir de Quick Sight. IAM utilise un rôle IAM doté des autorisations appropriées pour appeler l'
GenerateEmbedUrlForRegisteredUserAPI Quick Sight afin de générer une URL visuelle sécurisée et adaptée à l'utilisateur.Lambda renvoie l'URL d'intégration à API Gateway. Lambda renvoie l'URL d'intégration générée à API Gateway dans le cadre d'une réponse JSON. Cette réponse est ensuite préparée pour être envoyée au frontend.
L'URL d'intégration est envoyée au navigateur. L'URL d'intégration est renvoyée au navigateur en tant que réponse de l'API.
Le visuel est présenté à l'utilisateur. L'application React reçoit la réponse et utilise le SDK d'intégration Quick Sight pour rendre le visuel spécifique à l'utilisateur.
Automatisation et mise à l'échelle
Les déploiements du backend et du frontend sont entièrement automatisés à l'aide CloudFormation de ce qui fournit toutes les AWS ressources requises, notamment Amazon Cognito, Lambda, API Gateway, Amazon S3,,,, les rôles IAM et Amazon en un seul déploiement. CloudFront AWS WAF CloudWatch
Cette automatisation garantit une infrastructure cohérente et reproductible dans tous les environnements. Tous les composants évoluent automatiquement : Lambda s'adapte aux appels de fonctions, CloudFront diffuse le contenu mis en cache dans le monde entier et API Gateway s'adapte aux demandes entrantes.
Outils
Services AWS
Amazon Quick Sight
est un service de business intelligence natif dans le cloud qui vous aide à créer, gérer et intégrer des tableaux de bord et des visuels interactifs. Amazon API Gateway
gère APIs cela en tant que pont entre l'application React et les services principaux. AWS Lambda
est un service de calcul sans serveur que ce modèle utilise pour générer une intégration Quick Sight sécurisée de URLs manière dynamique, et qui évolue automatiquement en fonction des demandes. Amazon Cognito
fournit une authentification et une autorisation aux utilisateurs, et émet des jetons sécurisés pour l'accès aux API. Amazon S3
héberge des ressources frontales statiques pour ce modèle et les diffuse en toute sécurité via CloudFront ce modèle. Amazon CloudFront
diffuse du contenu frontal dans le monde entier avec une faible latence et s'intègre au AWS WAF filtrage du trafic. AWS WAF
protège l'application Web contre le trafic malveillant en appliquant des règles de sécurité et en limitant le débit. AWS CloudFormationautomatise le provisionnement et la configuration de toutes les ressources de l'application en un seul déploiement.
Amazon CloudWatch
collecte des journaux et des métriques auprès de Lambda, d'API Gateway et à des AWS WAF fins de surveillance et de résolution des problèmes.
Outils de développement
React JS
est un framework frontal que ce modèle utilise pour créer l'application Web et intégrer les visuels Quick Sight intégrés. Vite
est un outil de construction utilisé pour le développement rapide et l'optimisation des versions de production de l'application React. Le SDK d'intégration Quick Sight
facilite l'intégration des visuels Quick Sight dans l'application React et permet une interaction fluide entre l'application et les visuels.
Référentiel de code
Le code de ce modèle est disponible dans le référentiel GitHub Amazon Quick Sight Visual Embedding in React
Bonnes pratiques
Ce modèle met automatiquement en œuvre les meilleures pratiques de sécurité suivantes :
Utilise les groupes d'utilisateurs Amazon Cognito pour l'authentification basée sur JWT, avec authentification multifactorielle (MFA) en option.
Sécurise APIs avec les autorisateurs Amazon Cognito et applique les politiques IAM du moindre privilège dans tous les services.
Implémente l'intégration des utilisateurs enregistrés dans Quick Sight et attribue automatiquement le rôle de lecteur aux utilisateurs.
Applique un chiffrement en transit compatible avec le protocole TLS 1.2 et les versions CloudFront ultérieures, ainsi que le protocole HTTPS.
Chiffre les données au repos en utilisant AES-256 pour Amazon S3 avec gestion des versions et OAC.
Configure les plans d'utilisation d'API Gateway avec régulation et quotas.
Sécurise Lambda grâce à la simultanéité réservée et à la protection des variables d'environnement.
Active la journalisation pour Amazon S3 CloudFront, Lambda et API Gateway ; surveille les services en utilisant. CloudWatch
Chiffre les journaux, applique des contrôles d'accès et applique des politiques de refus pour les téléchargements non HTTPS ou non chiffrés.
En outre, nous recommandons ce qui suit :
Utilisez-le CloudFormation pour automatiser les déploiements et maintenir des configurations cohérentes dans tous les environnements.
Assurez-vous que chaque utilisateur dispose des autorisations Quick Sight appropriées pour accéder aux visuels intégrés.
Protégez les points de terminaison d'API Gateway avec les autorisateurs Amazon Cognito et appliquez le principe du moindre privilège pour tous les rôles IAM.
Stockez des informations sensibles telles que Amazon Resource Names (ARNs) et IDs dans des variables d'environnement au lieu de les coder en dur.
Optimisez les fonctions Lambda en réduisant les dépendances et en améliorant les performances de démarrage à froid. Pour plus d'informations, consultez le billet de AWS blog Optimisation des performances de démarrage à froid AWS Lambda en utilisant des stratégies d'amorçage avancées avec SnapStart
. Ajoutez votre CloudFront domaine à la liste d'autorisation de Quick Sight pour permettre une intégration visuelle sécurisée.
Surveillez les performances et la sécurité en utilisant CloudWatch et AWS WAF pour la journalisation, les alertes et la protection du trafic.
Autres bonnes pratiques recommandées
Utilisez des domaines personnalisés dotés de certificats SSL AWS Certificate Manager pour offrir une expérience utilisateur sécurisée et personnalisée.
Chiffrez les données et les CloudWatch journaux Amazon S3 à l'aide de clés gérées par le client AWS Key Management Service (AWS KMS) pour un meilleur contrôle du chiffrement.
AWS WAF Élargissez les règles grâce au blocage géographique, à l'injection SQL (SQLi), à la protection par script intersite (XSS) et à des filtres personnalisés pour une meilleure prévention des menaces.
Activez CloudWatch les alarmes et AWS Config bénéficiez d' AWS CloudTrail une surveillance, d'un audit et d'une conformité de configuration en temps réel.
Appliquez des politiques IAM granulaires, appliquez la rotation des clés d'API et autorisez l'accès entre comptes uniquement lorsque cela est absolument nécessaire.
Réalisez des évaluations de sécurité régulières pour garantir l'alignement avec les cadres de conformité tels que System and Organization Controls 2 (SOC 2), le règlement général sur la protection des données (RGPD) et la loi HIPAA (Health Insurance Portability and Accountability Act).
Épopées
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Pour cloner le référentiel. | Clonez le GitHub référentiel de cette solution sur votre système local et accédez au répertoire du projet :
Ce référentiel contient le CloudFormation modèle et le code source React nécessaires au déploiement de la solution. | Développeur d’applications |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Déployez le modèle. |
Pour plus d'informations, consultez la section Création et gestion des piles dans la CloudFormation documentation. | Administrateur AWS |
Surveillez la création de piles. | Surveillez la pile dans l'onglet Events jusqu'à ce que son statut soit CREATE_COMPLETE. | Administrateur AWS |
Récupérez les sorties de la pile. |
| Administrateur AWS |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Récupérez les identifiants visuels de Quick Sight. |
| Administrateur Quick Sight |
Configurez votre environnement React local. | Pour configurer votre environnement React local et le lier aux AWS ressources, créez un
Voici un exemple de
| Développeur d’applications |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Création ou gestion d'utilisateurs dans Cognito | Pour permettre aux utilisateurs authentifiés d'accéder aux visuels Quick Sight intégrés, vous devez d'abord créer des utilisateurs dans Amazon Cognito :
| Administrateur AWS |
Fournir un accès au tableau de bord Quick Sight | Pour donner accès aux visuels de Quick Sight, accordez l'autorisation d'accès Viewer aux utilisateurs authentifiés :
Chaque utilisateur recevra un e-mail contenant un lien vers le tableau de bord. Vous pouvez modifier les autorisations à tout moment via le menu Partager. Pour plus d'informations, consultez la section Accorder à des utilisateurs individuels et à des groupes d'Amazon Quick Sight l'accès à un tableau de bord dans Amazon Quick Sight dans la documentation Amazon Quick Suite. | Administrateur Quick Sight |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Installez les dépendances et créez le projet. | Dans le répertoire de l'application React, exécutez les commandes suivantes pour générer des fichiers de production optimisés :
| Développeur d’applications |
Téléchargez les fichiers de compilation sur Amazon S3. | Téléchargez tous les fichiers du | Développeur d’applications |
Créez une CloudFront invalidation. | Sur la CloudFront console | Administrateur AWS |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Ajoutez le CloudFront domaine à la liste d'autorisation de Quick Sight. | Pour permettre à votre CloudFront domaine d'intégrer en toute sécurité des visuels Quick Sight :
| Administrateur Quick Sight |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Ouvrez l'application React. | Utilisez le CloudFront domaine (à partir des CloudFormation sorties) pour ouvrir l'application Web React déployée dans un navigateur. | Propriétaire de l'application |
Vérifiez l'authentification. | Connectez-vous à l'application en utilisant les informations d'identification Amazon Cognito pour vérifier le flux d'authentification et la validation JWT via API Gateway. | Propriétaire de l'application |
Vérifiez les éléments visuels intégrés. | Vérifiez que les visuels de Quick Sight se chargent correctement dans l'application en fonction des autorisations d'accès spécifiques à l'utilisateur. | Propriétaire de l'application |
Validez l'API et la connectivité Lambda. | Vérifiez que l'application peut appeler correctement l' | Propriétaire de l'application |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Surveillez en utilisant CloudWatch. | Vous pouvez utiliser des outils AWS d'observabilité pour surveiller l'application et maintenir des performances sécurisées et évolutives en production. Consultez les journaux Lambda, les métriques d'API Gateway et les événements d'authentification Amazon Cognito afin de garantir l' CloudWatch intégrité des applications et de détecter les anomalies. | Administrateur AWS |
Suivi AWS WAF et CloudFront journaux. | Inspectez les AWS WAF journaux pour détecter les demandes bloquées ou suspectes et les journaux CloudFront d'accès pour connaître les indicateurs de performance et de mise en cache. | Administrateur AWS |
Résolution des problèmes
| Problème | Solution |
|---|---|
Erreur « Domaine non autorisé » |
|
Erreurs d’authentification | Causes possibles :
Solutions :
|
Erreurs d'API Gateway | Causes possibles :
Solutions :
|
Les visuels de Quick Sight ne se chargent pas | Causes possibles :
Solutions :
|
Erreur « L'utilisateur n'a pas accès » | Causes possibles :
Solution :
|
Ressources connexes
AWS documentation
Tutoriels et vidéos