Tutorial sobre análisis integrado

con Amazon QuickSight

Módulo seis: configuración del usuario y el dominio de QuickSight

En este módulo, registraremos un usuario de demostración, crearemos un grupo de lectores integrado y agregaremos el usuario de demostración a este grupo.

Introducción

En este módulo, crearemos y registraremos un usuario de demostración, crearemos un grupo de lectores integrado y agregaremos el usuario de demostración a este grupo para que pueda tener acceso a las sesiones o los paneles integrados.

Lo que aprenderá

  • Crear y ejecutar la configuración inicial de Lambda para paneles integrados: a fin de crear usuarios, grupos y permisos de QuickSight.
  • Crear y ejecutar la configuración inicial de Lambda para sesiones integradas: a fin de crear usuarios, grupos y permisos de QuickSight.
  • Dominio de lista blanca: para permitir la integración de las páginas de QuickSight.

 Tiempo de realización

15 minutos

 Servicios utilizados

Implementación

  • Crear y ejecutar la configuración inicial de Lambda (para integrar un panel)

    Omita esta sección si intenta integrar una sesión
    Crearemos una función Lambda para ejecutar algunas llamadas a la API de configuración inicial hacia QuickSight. Estas llamadas a la API registrarán un DemoUser en QuickSight, crearán un grupo EmbeddedReader, agregarán el DemoUser a este grupo y proporcionarán acceso al espectador para un panel del grupo.

    Garantice que QSInitialSetupTempPolicy se adjunte a QSLambdaBasicExecutionRole.

    1. Lance Lambda y haga clic en el botón Create function (Crear función).

    139

    2. Realice las siguientes selecciones.
    Elija Author from scratch (Crear desde cero).
    Nombre de función: QSEmbedSetup
    Tiempo de ejecución: Python 3.8
    Rol de ejecución: utilice un rol existente. Seleccione QSLambdaBasicExecutionRole del menú desplegable. Haga clic en Create function (Crear función).

    140
    141

    3. Copie el siguiente código Python en la función Lambda y haga clic en Save (Guardar).

     

    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. Desplácese hacia abajo hasta la sección Environment variables (Variables del entorno) y haga clic en Manage environment variables (Administrar variables del entorno).

    143

    5. Agregue las siguientes variables del entorno.
    AwsAccountId
    Correo electrónico
    DashboardId: DashboardId
    guardado en el bloc de notas (o del url del panel).
    RoleArn: ARN del rol QSER guardado en el bloc de notas.
    QuickSightIdentityRegion: región donde se configuran las identidades QuickSight.
    DashboardRegion: DashboardRegion guardado en el bloc de notas (o del url del panel).
    Haga clic en el botón Save (Guardar).

    144

    6. Desplácese hacia abajo hasta Basic Settings (Configuración básica) y haga clic en el botón Edit (Editar).

    145

    7. Aumente el valor Timeout (Tiempo de espera) a 2 minutos y haga clic en el botón Save (Guardar)

    146

    8. Desde el menú desplegable, elija Select a test event (Seleccionar un evento de prueba) y, a continuación, seleccione Configure test events (Configurar eventos de prueba).

    147

    9. Escriba el nombre del evento como Test (Probar) y haga clic en el botón Create (Crear).

    148

    10. Haga clic en el botón Test (Probar).

    149

    11. Lance IAM, haga clic en los roles en el panel izquierdo, busque QSLambdaBasicExecutionRole y elimine la política temporal.

    (Omita este paso y el siguiente por ahora. Recuerde volver a agregar esta política al rol antes de ejecutar la función de configuración de Lambda si intenta realizar la integración del panel ahora y desea probar la integración de la sesión después).

    150

    12. Haga clic en el botón Detach (Desconectar).

    151
  • Configuración inicial de Lambda (para integrar una sesión)

    Omita esta sección si intenta integrar un panel
    Crearemos una función Lambda para ejecutar algunas llamadas a la API de configuración inicial hacia QuickSight. Estas llamadas a la API registrarán a DemoUser en QuickSight como autor. Garantice que QSInitialSetupTempPolicy se adjunte a QSLambdaBasicExecutionRole.

    1. Lance Lambda y haga clic en el botón Create function (Crear función).

    155

    2. Realice las siguientes selecciones.
    Elija Author from scratch (Crear desde cero).
    Nombre de función: QSEmbedSetup
    Tiempo de ejecución: Python 3.8
    Rol de ejecución: utilice un rol existente. Seleccione QSLambdaBasicExecutionRole del menú desplegable. Haga clic en Create function (Crear función).

    156
    157

    3. Copie el siguiente código Python en la función Lambda y haga clic en Save (Guardar).
     

    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. Desplácese hacia abajo hasta la sección Environment variables (Variables del entorno) y haga clic en Manage environment variables (Administrar variables del entorno).

    159

    5. Agregue las siguientes variables del entorno.
    AwsAccountId
    Correo electrónico
    RoleArn: ARN del rol QSER guardado en el bloc de notas.
    QuickSightIdentityRegion: región donde se configuran las identidades QuickSight.
    Haga clic en el botón Save (Guardar).

    160

    6. Desplácese hacia abajo hasta Basic Settings (Configuración básica) y haga clic en el botón Edit (Editar).

    161

    7. Aumente el valor Timeout (Tiempo de espera) a 2 minutos y haga clic en el botón Save (Guardar)

    162

    8. Desde el menú desplegable, elija Select a test event (Seleccionar un evento de prueba) y, a continuación, seleccione Configure test events (Configurar eventos de prueba).

    163

    9. Escriba el nombre del evento como Test (Probar) y haga clic en el botón Create (Crear).

    164

    10. Desplácese hacia arriba y haga clic en el botón Test (Probar).

    165

    11. Lance IAM, haga clic en los roles en el panel izquierdo, busque QSLambdaBasicExecutionRole y elimine la política temporal.

    (Omita este paso y el siguiente por ahora. Recuerde volver a agregar esta política al rol antes de ejecutar la función de configuración de Lambda si intenta la integración del panel ahora y desea probar la integración de la sesión después o viceversa).

    166

    12. Haga clic en el botón Detach (Desconectar).

    167
  • Dominio de lista blanca

    En la etapa final, incluiremos en la lista blanca el dominio de CloudFront en QuickSight

    1. Lance QuickSight y cambie la región a donde tenga el panel.

    171

    2. Haga clic en el icono de persona en la esquina superior derecha y, a continuación, en Manage QuickSight del menú desplegable.

    172

    3. Haga clic en Domains and Embedding (Dominios e integraciones) del panel izquierdo.

    173

    4. Escriba https://CloudFront Domain Name en el dominio y haga clic en el botón Add (Agregar).

    174

Conclusión

¡Completó correctamente el módulo seis! A continuación, lancemos la aplicación en el módulo siete.

¿Este módulo le resultó útil?

Lanzar la aplicación