Tutoriel sur les analyses intégrées

avec Amazon QuickSight

Module 6 : configuration d'utilisateurs et de domaines QuickSight

Dans ce module, nous allons enregistrer un utilisateur à des fins de démonstration, créer un groupe de lecteurs intégrés et ajouter l'utilisateur à ce groupe.

Introduction

Dans ce module, nous allons créer et enregistrer un utilisateur à des fins de démonstration, créer un groupe de lecteurs intégrés et ajouter l'utilisateur à ce groupe afin qu'il puisse accéder aux séances ou tableaux de bord intégrées

Qu'allez-vous apprendre ?

  • Créer et exécuter la configuration initiale Lambda pour l'intégration du tableau de bord. Cela servira à créer un utilisateur, des groupes et des autorisations QuickSight.
  • Créer et exécuter la configuration initiale Lambda pour l'intégration d'une séance. Cela servira à créer un utilisateur, des groupes et des autorisations QuickSight.
  • Domaine de la liste blanche afin d'autoriser l'intégration des pages QuickSight.

 Durée

15 minutes

 Services utilisés

Implémentation

  • Créer et exécuter la configuration initiale Lambda (pour l'intégration du tableau de bord)

    Passez à la section suivante si vous voulez vous exercer pour l'intégration d'une séance
    Nous allons créer une fonction Lambda pour exécuter quelques appels d'API pour la configuration initiale de QuickSight. Ces appels d'API permettront d'enregistrer un utilisateur dans QuickSight à des fins de démonstration, de créer un groupe de lecteurs intégrés, d'ajouter l'utilisateur à ce groupe et de donner au groupe l'accès en lecture seule au tableau de bord.

    Veillez à ce que le la stratégie QSInitialSetupTempPolicy soit jointe au rôle QSLambdaBasicExecutionRole.

    1. Lancez Lambda, puis cliquez sur le bouton Créer une fonction.

    139

    2. Effectuez les choix suivants.
    Choisissez Créer à partir de zéro
    Nom de fonction : QSEmbedSetup
    Exécution : Python 3.8
    Rôle d'exécution : utilisez un rôle existant. Sélectionnez le rôle QSLambdaBasicExecutionRole dans la liste déroulante. Cliquez sur Créer une fonction

    140
    141

    3. Copiez le code Python suivant dans la fonction Lambda, puis cliquez sur Enregistrer.

     

    def lambda_handler(event, context):
        import json,re,boto3,os,botocore
        AAI = os.environ["AwsAccountId"]
        email = os.environ["Email"]
        dashboardId = os.environ["DashboardId"]
        roleArn = os.environ["RoleArn"]
        identityRegion = os.environ["QuickSightIdentityRegion"]
        dashboardRegion = os.environ["DashboardRegion"]
        group = 'EmbeddedReaderGrp'
        groupArn='arn:aws:quicksight:'+identityRegion+':'+AAI+':group/default/'+group
    
        qs = boto3.client('quicksight',region_name=identityRegion)
        qsd = boto3.client('quicksight',region_name=dashboardRegion)
    
        try:
            res = qs.create_group(GroupName=group,AwsAccountId=AAI,Namespace='default')
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('GroupExists')
            else:
                raise e
    
        try:
            res = qs.register_user(IdentityType='IAM',Email=email,UserRole='READER',IamArn=roleArn,SessionName='DemoUser',Namespace='default',AwsAccountId=AAI)
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('UserExists')
            else:
                raise e
    
        res = qs.create_group_membership(MemberName='QSER/DemoUser',GroupName=group,AwsAccountId=AAI,Namespace='default')
        res = qsd.update_dashboard_permissions(AwsAccountId=AAI,DashboardId=dashboardId,GrantPermissions=[{'Principal':groupArn,'Actions':['quicksight:DescribeDashboard','quicksight:ListDashboardVersions','quicksight:QueryDashboard']}])
    142

    4. Faites défiler la page vers le bas jusqu'à la section Variables d'environnement, puis cliquez sur Gérer les variables d'environnement.

    143

    5. Ajoutez les variables d'environnement suivantes.
    AwsAccountId
    E-mail
    DashboardId -
    ID du tableau de bord enregistré dans votre bloc-notes (ou à partir de l'URL du tableau de bord)
    RoleArn - ARN du rôle QSER enregistré dans votre bloc-notes.
    QuickSightIdentityRegion - Région où sont configurées vos identités QuickSight.
    DashboardRegion - Région du tableau de bord enregistrée dans votre bloc-notes (ou à partir de l'URL du tableau de bord)
    Cliquez sur le bouton Enregistrer.

    144

    6. Faites défiler la page vers le bas pour accéder à Paramètres de base, puis cliquez sur le bouton Modifier.

    145

    7. Augmentez la valeur Expiration à 2 minutes, puis cliquez sur Enregistrer

    146

    8. Dans le menu déroulant Sélectionner un événement de test, sélectionnez Configurer des événements de test.

    147

    9. Indiquez Test comme nom d'événement, puis cliquez sur le bouton Créer.

    148

    10. Cliquez sur le bouton Test.

    149

    11. Lancez IAM, cliquez sur les rôles dans le volet de gauche, recherchez QSLambdaBasicExecutionRole, puis supprimez la stratégie temporaire.

    (Passez cette étape ainsi que la suivante pour l'instant. N'oubliez pas de remettre cette stratégie dans le rôle avant d'exécuter la fonction de configuration Lambda si vous essayez l'intégration du tableau de bord maintenant et que vous voulez ensuite essayer l'intégration de séance).

    150

    12. Cliquez sur le bouton Détacher.

    151
  • Configuration initiale Lambda (pour l'intégration de séance)

    Passez à la section suivante si vous voulez vous exercer pour l'intégration d'un tableau de bord
    Nous allons créer une fonction Lambda pour exécuter quelques appels d'API pour la configuration initiale de QuickSight. Ces appels d'API enregistreront l'utilisateur à des fins de démonstration dans QuickSight en tant qu'auteur. Veillez à ce que le la stratégie QSInitialSetupTempPolicy soit jointe au rôle QSLambdaBasicExecutionRole.

    1. Lancez Lambda, puis cliquez sur le bouton Créer une fonction.

    155

    2. Effectuez les choix suivants.
    Choisissez Créer à partir de zéro
    Nom de fonction : QSEmbedSetup
    Exécution : Python 3.8
    Rôle d'exécution : utilisez un rôle existant. Sélectionnez le rôle QSLambdaBasicExecutionRole dans la liste déroulante. Cliquez sur Créer une fonction.

    156
    157

    3. Copiez le code Python suivant dans la fonction Lambda, puis cliquez sur Enregistrer.
     

    def lambda_handler(event, context):
        import json,re,boto3,os,botocore
        AAI = os.environ["AwsAccountId"]
        email = os.environ["Email"]
        roleArn = os.environ["RoleArn"]
        identityRegion = os.environ["QuickSightIdentityRegion"]
    
        qs = boto3.client('quicksight',region_name=identityRegion)
    
        try:
            res = qs.register_user(IdentityType='IAM',Email=email,UserRole='AUTHOR',IamArn=roleArn,SessionName='DemoUser',Namespace='default',AwsAccountId=AAI)
        except Exception as e:
            if (str(type(e)) == "<class 'botocore.errorfactory.ResourceExistsException'>"):
                print('UserExists')
                res = qs.describe_user(Namespace='default',AwsAccountId=AAI, UserName='QSER/DemoUser')
                if (res['User']['Role'] == 'READER'):
                    print('Upgrading user')
                    qs.update_user(Namespace='default',AwsAccountId=AAI, UserName='QSER/DemoUser', Email=email, Role='AUTHOR')
            else:
                raise e
    158

    4. Faites défiler la page vers le bas jusqu'à la section Variables d'environnement, puis cliquez sur Gérer les variables d'environnement.

    159

    5. Ajoutez les variables d'environnement suivantes.
    AwsAccountId
    E-mail
    RoleArn - ARN du rôle QSER enregistré dans votre bloc-notes.
    QuickSightIdentityRegion - Region où sont configurées vos identités QuickSight.
    Cliquez sur le bouton Enregistrer.
    .

    160

    6. Faites défiler la page vers le bas pour accéder à Paramètres de base, puis cliquez sur le bouton Modifier.

    161

    7. Augmentez la valeur Expiration à 2 minutes, puis cliquez sur Enregistrer

    162

    8. Dans le menu déroulant Sélectionner un événement de test, sélectionnez Configurer des événements de test.

    163

    9. Indiquez Test comme nom d'événement, puis cliquez sur le bouton Créer.

    164

    10. Faites défiler la page vers le haut, puis cliquez sur le bouton Test.

    165

    11. Lancez IAM, cliquez sur les rôles dans le volet de gauche, recherchez QSLambdaBasicExecutionRole, puis supprimez la stratégie temporaire.

    (Passez cette étape ainsi que la suivante pour l'instant.N'oubliez pas de remettre cette stratégie dans le rôle avant d'exécuter la fonction de configuration Lambda si vous essayez l'intégration du tableau de bord maintenant et que vous voulez ensuite essayer l'intégration de séance ou inversement).

    166

    12. Cliquez sur le bouton Détacher.

    167
  • Domaine de la liste blanche

    Lors de la dernière étape, nous mettrons sur liste blanche le domaine CloudFront dans QuickSight

    1. Lancez QuickSight, puis modifiez la région dans laquelle se trouve votre tableau de bord.

    171

    2. Cliquez sur l'icône Personne en haut à droite, puis sur Gérer QuickSight dans la liste déroulante.

    172

    3. Cliquez sur Domaines et Intégration dans le volet de gauche.

    173

    4. Entrez https://nom de domaine CloudFront dans Domaine, puis cliquez sur le bouton Ajouter.

    174

Conclusion

Vous avez terminé le module 6 avec succès ! Ensuite, lançons l'application dans le module 7.

Ce module vous a-t-il été utile ?

Lancer une application