Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Ejecución de consultas como rol de IAM en Amazon QuickSight

Modo de enfoque
Ejecución de consultas como rol de IAM en Amazon QuickSight - Amazon QuickSight

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ahora puede mejorar la seguridad de los datos mediante políticas de acceso detalladas en lugar de permisos más amplios para los orígenes de datos conectados a Amazon Athena, Amazon Redshift o Amazon S3. Comience por crear un rol de AWS Identity and Access Management (IAM) con permisos que se activarán cuando una persona o una API inicie una consulta. A continuación, un administrador o desarrollador de Amazon QuickSight asigna el rol de IAM a un origen de datos de Athena o Amazon S3. Una vez establecido el rol, cualquier persona o API que ejecute la consulta dispondrá de los permisos exactos necesarios para ejecutarla.

Estos son algunos aspectos que debe tener en cuenta antes de comprometerse a implementar roles Ejecutar como para mejorar la seguridad de los datos:

  • Explique cómo la seguridad adicional funciona a su favor.

  • Hable con el administrador de QuickSight para saber si agregar roles a los orígenes de datos le ayuda a cumplir mejor sus objetivos o requisitos de seguridad.

  • Pregúntese si su equipo puede documentar y mantener este tipo de seguridad, teniendo en cuenta la cantidad de orígenes de datos y personas y aplicaciones involucradas. Si no es así, ¿quién se encargará de esa parte del trabajo?

  • En una organización estructurada, ubique a las partes interesadas en equipos paralelos de Operaciones, Desarrollo y Soporte de TI. Solicite su experiencia, consejos y disposición para que respalden su plan.

  • Antes de lanzar su proyecto, considere la posibilidad de realizar una prueba de concepto en la que participen las personas que necesitan acceder a los datos.

Las siguientes reglas se aplican al uso de roles Ejecutar como con Athena, Amazon Redshift y Amazon S3:

  • Cada origen de datos solo puede tener un RoleArn asociado. Los consumidores del origen de datos, que suelen acceder a conjuntos de datos y elementos visuales, pueden generar muchos tipos diferentes de consultas. El rol establece límites entre las consultas que funcionan y las que no.

  • El ARN debe corresponder a un rol de IAM en la misma Cuenta de AWS que la instancia de QuickSight que lo usa.

  • El rol de IAM debe tener una relación de confianza que permita a QuickSight asumir el rol.

  • La identidad que llama a las API de QuickSight debe tener permiso para pasar la función antes de poder actualizar la propiedad RoleArn. Solo necesita pasar el rol al crear o actualizar el ARN del rol. Los permisos no se vuelven a evaluar más adelante. Del mismo modo, el permiso no es necesario cuando se omite el ARN del rol.

  • Si se omite el ARN del rol, el origen de datos de Athena o Amazon S3 utiliza el rol de toda la cuenta y las políticas de reducción del alcance.

  • Cuando el ARN del rol está presente, se ignora el rol de toda la cuenta y cualquier política de reducción del alcance. En el caso de los orígenes de datos de Athena, no se ignoran los permisos de Lake Formation.

  • En el caso de los orígenes de datos de Amazon S3, se debe poder acceder tanto al archivo de manifiesto como a los datos especificados en el archivo de manifiesto mediante el rol de IAM.

  • La cadena ARN debe coincidir con un rol de IAM existente en la Cuenta de AWS y la Región de AWS donde se encuentran y se consultan los datos.

Cuando QuickSight se conecta a otro servicio en AWS, utiliza un rol de IAM. De forma predeterminada, QuickSight crea esta versión menos detallada del rol para cada servicio que utiliza, y los administradores de la Cuenta de AWS administran el rol. Al agregar un ARN de rol de IAM con una política de permisos personalizada, se anula el rol más amplio de los orígenes de datos que necesitan protección adicional. Para obtener más información acerca de las políticas, consulte Creación de políticas administradas por el cliente en la Guía del usuario de IAM.

Ejecución de consultas con orígenes de datos de Athena

Utilice la API para adjuntar el ARN al origen de datos de Athena. Para ello, agregue el ARN del rol en la propiedad RoleArn de AthenaParameters. Para verificarlo, puede ver el ARN del rol en el cuadro de diálogo Editar origen de datos de Athena. Sin embargo, el campo Rol ARN es un campo de solo lectura.

Ventana emergente Editar origen de datos de Athena que muestra el ARN del rol.

Para empezar, necesita un rol de IAM personalizado, como demostramos en el siguiente ejemplo.

Tenga en cuenta que el siguiente ejemplo de código es solo para fines de aprendizaje. Utilice este ejemplo únicamente en un entorno temporal de desarrollo y pruebas, y no en un entorno de producción. La política de este ejemplo no protege ningún recurso específico, que debe estar en una política desplegable. Además, incluso para el desarrollo, debe agregar la información de su propia cuenta de AWS.

Los siguientes comandos crean un nuevo rol simple y adjuntan algunas políticas que otorgan permisos a QuickSight.

aws iam create-role \ --role-name TestAthenaRoleForQuickSight \ --description "Test Athena Role For QuickSight" \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

Una vez que haya identificado o creado un rol de IAM para usarlo con cada origen de datos, adjunte las políticas mediante la política attach-role-policy.

aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::222222222222:policy/service-role/AWSQuickSightS3Policy1 aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess1 aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::aws:policy/AmazonS3Access1

Después de verificar sus permisos, puede usar el rol en los orígenes de datos de QuickSight mediante la creación de un rol nuevo o la actualización de uno existente. Cuando utilice estos comandos, actualice el ID de Cuenta de AWS y la Región de AWS para que coincidan con sus valores.

Recuerde que estos fragmentos de código de ejemplo no son para entornos de producción. AWS recomienda encarecidamente que identifique y utilice un conjunto de políticas de privilegios mínimos para sus casos de producción.

aws quicksight create-data-source --aws-account-id 222222222222 \ --region us-east-1 \ --data-source-id "athena-with-custom-role" \ --cli-input-json '{ "Name": "Athena with a custom Role", "Type": "ATHENA", "data sourceParameters": { "AthenaParameters": { "RoleArn": "arn:aws:iam::222222222222:role/TestAthenaRoleForQuickSight" } } }'

Ejecución de consultas con orígenes de datos de Amazon Redshift

Conecte los datos de Amazon Redshift con el rol Ejecutar como para mejorar la seguridad de los datos con políticas de acceso detalladas. Puede crear un rol Ejecutar como para los orígenes de datos de Amazon Redshift que utilizan una red pública o una conexión de VPC. Especifique el tipo de conexión que desee utilizar en el cuadro de diálogo Editar origen de datos de Amazon Redshift. Los orígenes de datos de Amazon Redshift sin servidor no admiten el rol de ejecución como usuario.

La imagen siguiente muestra un origen de datos de Amazon Redshift que utiliza el tipo de conexión Red pública.

Ventana emergente Editar origen de datos de Amazon S3 que muestra el tipo de conexión.

Para empezar, necesita un rol de IAM personalizado, como demostramos en el siguiente ejemplo. Los siguientes comandos crean un nuevo rol de ejemplo y adjuntan políticas que otorgan permisos a QuickSight.

aws iam create-role \ --role-name TestRedshiftRoleForQuickSight \ --description "Test Redshift Role For QuickSight" \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

Después de identificar o crear un rol de IAM para usarlo con cada origen de datos, adjunte las políticas a una política attach-role-policy. Si el permiso redshift:GetClusterCredentialsWithIAM está asociado al rol que desea usar, los valores para DatabaseUser y DatabaseGroups son opcionales.

aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/service-role/AWSQuickSightRedshiftPolicy aws iam create-policy --policy-name RedshiftGetClusterCredentialsPolicy1 \ --policy-document file://redshift-get-cluster-credentials-policy.json aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/RedshiftGetClusterCredentialsPolicy1 // redshift-get-cluster-credentials-policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftGetClusterCredentialsPolicy", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "*" ] } ] }

El ejemplo anterior crea un origen de datos que usa los parámetros de IAM RoleARN, DatabaseUser y DatabaseGroups. Si desea establecer la conexión únicamente a través del parámetro RoleARN de IAM, adjunte el permiso redshift:GetClusterCredentialsWithIAM a su rol, tal y como se muestra en el ejemplo siguiente.

aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/RedshiftGetClusterCredentialsPolicy1 // redshift-get-cluster-credentials-policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftGetClusterCredentialsPolicy", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentialsWithIAM" ], "Resource": [ "*" ] } ] }"

Después de verificar sus permisos, puede usar el rol en los orígenes de datos de QuickSight mediante la creación de un rol nuevo o la actualización de uno existente. Cuando utilice estos comandos, actualice el ID de la cuenta de AWS y la región de AWS para que coincidan con sus valores.

aws quicksight create-data-source \ --region us-west-2 \ --endpoint https://quicksight.us-west-2.quicksight.aws.com/ \ --cli-input-json file://redshift-data-source-iam.json \ redshift-data-source-iam.json is shown as below { "AwsAccountId": "AWSACCOUNTID", "DataSourceId": "DATSOURCEID", "Name": "Test redshift demo iam", "Type": "REDSHIFT", "DataSourceParameters": { "RedshiftParameters": { "Database": "integ", "Host": "redshiftdemocluster.us-west-2.redshift.amazonaws.com", "Port": 8192, "ClusterId": "redshiftdemocluster", "IAMParameters": { "RoleArn": "arn:aws:iam::222222222222:role/TestRedshiftRoleForQuickSight", "DatabaseUser": "user", "DatabaseGroups": ["admin_group", "guest_group", "guest_group_1"] } } }, "Permissions": [ { "Principal": "arn:aws:quicksight:us-east-1:AWSACCOUNTID:user/default/demoname", "Actions": [ "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:DeleteDataSource", "quicksight:UpdateDataSourcePermissions" ] } ] }

Si el origen de datos utiliza el tipo de conexión de VPC, utilice la siguiente configuración de VPC.

{ "AwsAccountId": "AWSACCOUNTID", "DataSourceId": "DATSOURCEID", "Name": "Test redshift demo iam vpc", "Type": "REDSHIFT", "DataSourceParameters": { "RedshiftParameters": { "Database": "mydb", "Host": "vpcdemo.us-west-2.redshift.amazonaws.com", "Port": 8192, "ClusterId": "vpcdemo", "IAMParameters": { "RoleArn": "arn:aws:iam::222222222222:role/TestRedshiftRoleForQuickSight", "DatabaseUser": "user", "AutoCreateDatabaseUser": true } } }, "VpcConnectionProperties": { "VpcConnectionArn": "arn:aws:quicksight:us-west-2:222222222222:vpcConnection/VPC Name" }, "Permissions": [ { "Principal": "arn:aws:quicksight:us-east-1:222222222222:user/default/demoname", "Actions": [ "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:DeleteDataSource", "quicksight:UpdateDataSourcePermissions" ] } ] }

Si el origen de datos usa el permiso redshift:GetClusterCredentialsWithIAM y no usa los parámetros DatabaseUser o DatabaseGroups, conceda al rol acceso a algunas o a todas las tablas del esquema. Para comprobar si un rol tiene permisos SELECT para una tabla específica, especifique el siguiente comando en el editor de consultas de Amazon Redshift.

SELECT u.usename, t.schemaname||'.'||t.tablename, has_table_privilege(u.usename,t.tablename,'select') AS user_has_select_permission FROM pg_user u CROSS JOIN pg_tables t WHERE u.usename = 'IAMR:RoleName' AND t.tablename = tableName

Para obtener más información sobre la acción SELECT del editor de consultas de Amazon Redshift, consulte SELECT.

Para conceder permisos SELECT al rol, especifique el siguiente comando en el editor de consultas de Amazon Redshift.

GRANT SELECT ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO "IAMR:Rolename";

Para obtener más información sobre la acción GRANT del editor de consultas de Amazon Redshift, consulte GRANT.

Ejecución de consultas con orígenes de datos de Amazon S3

Los orígenes de datos de Amazon S3 contienen un archivo de manifiesto que QuickSight utiliza para buscar y analizar los datos. Puede cargar un archivo de manifiesto JSON a través de la consola de QuickSight o puede proporcionar una URL que apunte a un archivo JSON de un bucket de S3. Si decide proporcionar una URL, debe concederse permiso a QuickSight para acceder al archivo en Amazon S3. Utilice la consola de administración de QuickSight para controlar el acceso al archivo de manifiesto y a los datos a los que hace referencia.

Con la propiedad RoleArn, puede conceder acceso al archivo de manifiesto y a los datos a los que hace referencia mediante un rol de IAM personalizado que anula el rol de toda la cuenta. Utilice la API para adjuntar el ARN al archivo de manifiesto del origen de datos de Amazon S3. Para ello, incluya el ARN del rol en la propiedad RoleArn de S3Parameters. Para verificarlo, puede ver el ARN del rol en el cuadro de diálogo Editar origen de datos de S3. Sin embargo, el ARN del rol es un campo de solo lectura, tal y como se muestra en la captura de pantalla a continuación.

Ventana emergente Editar origen de datos de Amazon S3 que muestra el ARN del rol.

Para empezar, cree un archivo de manifiesto de Amazon S3. A continuación, puede cargarlo en Amazon QuickSight cuando cree un nuevo conjunto de datos de Amazon S3 o colocar el archivo en el bucket de Amazon S3 que contiene sus archivos de datos. Consulte el siguiente ejemplo para ver el aspecto que tendría un archivo de manifiesto:

{ "fileLocations": [ { "URIPrefixes": [ "s3://quicksightUser-run-as-role/data/" ] } ], "globalUploadSettings": { "format": "CSV", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }

Para obtener instrucciones acerca de cómo crear un manifiesto, consulte Formatos compatibles con los archivos de manifiesto de Amazon S3.

Una vez que haya creado un archivo de manifiesto y lo haya añadido a su bucket de Amazon S3 o lo haya subido a QuickSight, cree o actualice un rol existente en IAM que conceda acceso s3:GetObject. En el siguiente ejemplo, se ilustra cómo actualizar un rol de IAM existente con la API de AWS:

aws iam put-role-policy \ --role-name QuickSightAccessToS3RunAsRoleBucket \ --policy-name GrantS3RunAsRoleAccess \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::s3-bucket-name" }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::s3-bucket-name/manifest.json" }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::s3-bucket-name/*" } ] }'

Una vez que su política le conceda el acceso s3:GetObject, puede empezar a crear orígenes de datos que apliquen la actualización de put-role-policy al archivo de manifiesto del origen de datos de Amazon S3.

aws quicksight create-data-source --aws-account-id 111222333444 --region us-west-2 --endpoint https://quicksight.us-west-2.quicksight.aws.com/ \ --data-source-id "s3-run-as-role-demo-source" \ --cli-input-json '{ "Name": "S3 with a custom Role", "Type": "S3", "DataSourceParameters": { "S3Parameters": { "RoleArn": "arn:aws:iam::111222333444:role/QuickSightAccessRunAsRoleBucket", "ManifestFileLocation": { "Bucket": "s3-bucket-name", "Key": "manifest.json" } } } }'

Después de verificar sus permisos, puede usar el rol en los orígenes de datos de QuickSight mediante la creación de un rol nuevo o la actualización de uno existente. Cuando utilice estos comandos, asegúrese de actualizar el ID de Cuenta de AWS y la Región de AWS para que coincidan con sus valores.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.