Embedded Analytics-Tutorial

mit Amazon QuickSight

Modul 6: QuickSight Benutzer- und Domäneneinrichtung

In diesem Modul werden wir einen Demo-Benutzer registrieren, eine eingebettete Lesergruppe erstellen und den Demo-Benutzer zu dieser Gruppe hinzufügen.

Einführung

In diesem Modul erstellen und registrieren wir einen Demo-Benutzer, erstellen eine eingebettete Lesergruppe und fügen den Demo-Benutzer zu dieser Gruppe hinzu, damit er auf die eingebetteten Dashboards oder Sitzungen zugreifen kann.

Was werden Sie lernen?

  • Erstellen und Ausführen der Erstkonfiguration Lambda für Dashboard-Einbettung: Zum Erstellen von QuickSight-Benutzern, -Gruppen und -Berechtigungen.
  • Erstellen und Ausführen der Erstkonfiguration Lambda für Sitzungseinbettung: Zum Erstellen von QuickSight-Benutzern, -Gruppen und -Berechtigungen.
  • Domäne whitelisten: Um die Einbettung von QuickSight-Seiten zu ermöglichen.

 Veranschlagte Zeit

15 Minuten

 Verwendete Services

Implementierung

  • Erstellen und Ausführen der Erstkonfiguration von Lambda (zur Einbettung in das Dashboard)

    Springen Sie zum nächsten Abschnitt, wenn Sie die Sitzungseinbettung ausprobieren
    Wir werden eine Lambda-Funktion erstellen, um einige anfängliche Setup-API-Aufrufe gegen QuickSight auszuführen. Diese API-Aufrufe registrieren DemoUser in QuickSight, erstellen eine EmbeddedReader-Gruppe, fügen DemoUser zu dieser Gruppe hinzu und bieten Viewer-Zugriff für ein Dashboard zu dieser Gruppe.

    Stellen Sie sicher, dass QSInitialSetupTempPolicy an QSLambdaBasicExecutionRole angehängt ist.

    1. Starten Sie Lambda und klicken Sie auf die Schaltfläche Funktion erstellen.

    139

    2. Treffen Sie die folgenden Auswahlen.
    Wählen Sie Von Grund auf neu verfassen
    Funktionsname: QSEmbedSetup
    Laufzeit: Python 3.8
    Ausführende Rolle: Verwenden Sie eine vorhandene Rolle, wählen Sie QSLambdaBasicExecutionRole aus der Dropdown-Liste und klicken Sie auf Funktion erstellen

    140
    141

    3. Kopieren Sie folgenden Python-Code in die Lambda-Funktion und klicken Sie auf Speichern.

     

    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. Scrollen Sie nach unten zum Abschnitt Umgebungsvariablen und klicken Sie auf Umgebungsvariablen verwalten.

    143

    5. Fügen Sie die folgenden Umgebungsvariablen hinzu.
    AwsAccountId
    E-Mail
    DashboardId - DashboardId
    in Ihrem Notizblock gespeichert. (oder von der Dashboard-URL)
    RoleArn - QSER-Rollen-ARN in Ihrem Notizblock gespeichert.
    QuickSightIdentityRegion - Region, in der Ihre QuickSight-Identitäten eingerichtet werden.
    DashboardRegion - DashboardRegion in Ihrem Notizblock gespeichert. (oder von der Dashboard-URL)
    Klicken Sie auf die Schaltfläche Speichern.

    144

    6. Scrollen Sie nach unten zu Grundeinstellungen und klicken Sie auf die Schaltfläche Bearbeiten.

    145

    7. Erhöhen Sie den Timeout-Wert auf 2 Minuten und klicken Sie auf die Schaltfläche Speichern

    146

    8. Wählen Sie im Dropdown-Menü Wählen Sie ein Test-Ereignis die Option Konfigurieren von Test-Ereignissen.

    147

    9. Geben Sie den Ereignisnamen als Test ein und klicken Sie auf die Schaltfläche Erstellen.

    148

    10. Klicken Sie auf die Schaltfläche Test.

    149

    11. Starten Sie IAM, klicken Sie auf Rollen im linken Bereich, suchen Sie nach QSLambdaBasicExecutionRole und löschen Sie die temp. Richtlinie.

    (Überspringen Sie diesen und den nächsten Schritt vorerst. / Denken Sie daran, diese Richtlinie wieder zu der Rolle vor der Ausführung der Setup-Lambda-Funktion hinzuzufügen, wenn Sie die Dashboard-Einbettung jetzt versuchen und danach die Sitzungseinbettung versuchen möchten).

    150

    12. Klicken Sie auf die Schaltfläche Lösen.

    151
  • Erste Konfiguration für Lambda (Für die Sitzungseinbettung)

    Springen Sie zum nächsten Abschnitt, wenn Sie die Dashboard-Einbettung ausprobieren.
    Wir werden eine Lambda-Funktion erstellen, um einige anfängliche Setup-API-Aufrufe gegen QuickSight auszuführen. Diese API-Aufrufe registrieren DemoUser in QuickSight als Autor. Stellen Sie sicher, dass QSInitialSetupTempPolicy an QSLambdaBasicExecutionRole angehängt ist.

    1. Starten Sie Lambda und klicken Sie auf die Schaltfläche Funktion erstellen.

    155

    2. Treffen Sie die folgenden Auswahlen.
    Wählen Sie Von Grund auf neu verfassen
    Funktionsname: QSEmbedSetup
    Laufzeit: Python 3.8
    Ausführende Rolle: Verwenden Sie eine vorhandene Rolle Wählen Sie QSLambdaBasicExecutionRole aus der Dropdown-Liste. Klicken Sie auf Funktion erstellen

    156
    157

    3. Kopieren Sie folgenden Python-Code in die Lambda-Funktion und klicken Sie auf Speichern.
     

    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. Scrollen Sie nach unten zum Abschnitt Umgebungsvariablen und klicken Sie auf Umgebungsvariablen verwalten.

    159

    5. Fügen Sie die folgenden Umgebungsvariablen hinzu.
    AwsAccountId
    E-Mail
    RoleArn - QSER-Rollen-ARN in Ihrem Notizblock gespeichert.
    QuickSightIdentityRegion - Region, in der Ihre QuickSight-Identitäten eingerichtet werden.
    Klicken Sie auf die Schaltfläche Speichern.

    160

    6. Scrollen Sie nach unten zu Grundeinstellungen und klicken Sie auf die Schaltfläche Bearbeiten.

    161

    7. Erhöhen Sie den Timeout-Wert auf 2 Minuten und klicken Sie auf die Schaltfläche Speichern

    162

    8. Wählen Sie im Dropdown-Menü Wählen Sie ein Test-Ereignis die Option Konfigurieren von Test-Ereignissen.

    163

    9. Geben Sie den Ereignisnamen als Test ein und klicken Sie auf die Schaltfläche Erstellen.

    164

    10. Scrollen Sie nach oben und klicken Sie auf die Schaltfläche Test.

    165

    11. Starten Sie IAM, klicken Sie auf Rollen im linken Bereich, suchen Sie nach QSLambdaBasicExecutionRole und löschen Sie die temp. Richtlinie.

    (Überspringen Sie diesen und den nächsten Schritt vorerst. / Denken Sie daran, diese Richtlinie wieder zu der Rolle vor der Ausführung der Setup-Lambda-Funktion hinzuzufügen, wenn Sie die Dashboard-Einbettung jetzt versuchen und danach die Sitzungseinbettung versuchen möchten oder umgekehrt).

    166

    12. Klicken Sie auf die Schaltfläche Lösen.

    167
  • Domäne whitelisten

    Im letzten Schritt werden wir die CloudFront-Domäne in QuickSight whitelisten

    1. Starten Sie QuickSight und ändern Sie die Region, in der Sie Ihr Dashboard haben.

    171

    2. Klicken Sie auf das Personensymbol oben rechts und wählen Sie aus der Dropdown-Liste QuickSight verwalten.

    172

    3. Klicken Sie im linken Fensterbereich auf Domänen und Einbetten.

    173

    4. Geben Sie https://CloudFront Domain Name in Domäne ein und klicken Sie auf die Schaltfläche Hinzufügen.

    174

Fazit

Sie haben Modul 6 erfolgreich abgeschlossen! Als Nächstes starten wir die Anwendung in Modul 7.

War das Modul hilfreich?

Anwendung starten