View a markdown version of this page

Permisos de IAM para Calidad de datos de AWS Glue - AWS Glue

Permisos de IAM para Calidad de datos de AWS Glue

En este tema se proporciona información para comprender las acciones y los recursos que usted, un administrador de IAM, puede utilizar en una política (de IAM) de AWS Identity and Access Management para Calidad de datos de AWS Glue. También incluye ejemplos de políticas de IAM con los permisos mínimos que necesita para usar Calidad de los datos de AWS Glue con el Catálogo de datos de AWS Glue.

Para obtener más información sobre la seguridad en Glue de AWS, consulte Seguridad en AWS Glue.

Permisos de IAM para Calidad de los datos de AWS Glue

En la siguiente tabla, se enumeran los permisos necesita un usuario para poder llevar a cabo operaciones específicas de la Calidad de datos de AWS Glue. Para establecer una autorización detallada para Calidad de datos de AWS Glue, puede especificar estas acciones en el elemento Action de una instrucción de política de IAM.

AWSAcciones de Calidad de datos de Glue
Action Descripción Tipos de recurso
glue:CreateDataQualityRuleset Concede permiso para crear un conjunto de reglas de calidad de datos. ::dataQualityRuleset/<name>
glue:DeleteDataQualityRuleset Concede permiso para eliminar un conjunto de reglas de calidad de datos. ::dataQualityRuleset/<name>
glue:GetDataQualityRuleset Concede permiso para recuperar un conjunto de reglas de calidad de datos. ::dataQualityRuleset/<name>
glue:ListDataQualityRulesets Concede permiso para recuperar todos los conjuntos de reglas de calidad de datos. ::dataQualityRuleset/*
glue:UpdateDataQualityRuleset Concede permiso para actualizar un conjunto de reglas de calidad de datos. ::dataQualityRuleset/<name>
glue:GetDataQualityResult Concede permiso para recuperar un resultado de la ejecución de tareas de calidad de datos. Esta acción de IAM también proporciona permisos a las siguientes API:
  • BatchGetDataQualityQualityResult

  • ListDataQualityStatistics

  • ListDataQualityStatisticAnnotations

::dataQualityRuleset/<name>
glue:ListDataQualityResults Concede permiso para recuperar todos los resultados de la ejecución de tareas de calidad de datos. ::dataQualityRuleset/*
glue:CancelDataQualityRuleRecommendationRun Concede permiso para detener una ejecución en curso de tareas de recomendación de calidad de datos. ::dataQualityRuleset/*
glue:GetDataQualityRuleRecommendationRun Concede permiso para recuperar una ejecución de tareas de recomendación de calidad de datos. ::dataQualityRuleset/*
glue:ListDataQualityRuleRecommendationRuns Concede permiso para recuperar todas las ejecuciones de tareas de recomendación de calidad de datos. ::dataQualityRuleset/*
glue:StartDataQualityRuleRecommendationRun Concede permiso para iniciar una ejecución de tareas de recomendación de calidad de datos. ::dataQualityRuleset/*
glue:CancelDataQualityRulesetEvaluationRun Concede permiso para detener una ejecución en curso de tareas de calidad de datos. ::dataQualityRuleset/*
glue:GetDataQualityRulesetEvaluationRun Concede permiso para recuperar una ejecución de tareas de calidad de datos. ::dataQualityRuleset/*
glue:ListDataQualityRulesetEvaluationRuns Concede permiso para recuperar todas las ejecuciones de tareas de calidad de datos. ::dataQualityRuleset/*
glue:StartDataQualityRulesetEvaluationRun Concede permiso para iniciar una ejecución de tareas de calidad de datos. ::dataQualityRuleset/<name>
glue:PublishDataQuality Concede permiso para publicar los resultados de calidad de datos ::dataQualityRuleset/<name>
glue:GetDataQualityModel Concede permiso para recuperar un modelo de calidad de datos ::dataQualityRuleset/<name>, ::job/<name>
glue:GetDataQualityModelResult Concede permiso para recuperar un resultado de modelo de calidad de datos ::dataQualityRuleset/<name>, ::job/<name>
glue:PutDataQualityStatisticAnnotation Concede permiso para agregar anotaciones a Estadísticas. Esta acción de IAM también proporciona permisos a las siguientes API:
  • BatchPutDataQualityStatisticAnnotation

::dataQualityRuleset/<name>, ::job/<name>
glue:PutDataQualityProfileAnnotation Concede permiso para incluir anotaciones en todas las estadísticas de un perfil. ::dataQualityRuleset/<name>, ::job/<name>

Se requiere una configuración de IAM para programar las ejecuciones de evaluación

Permisos de IAM

Para realizar ejecuciones programadas de evaluación de Calidad de los datos, debe agregar la acción IAM:PassRole a la política de permisos.

AWSPermisos necesarios para EventBridge Scheduler
Action Descripción Tipos de recurso
iam:PassRole Otorga permiso a IAM para que el usuario pueda pasar las funciones aprobadas. ARN del rol utilizado para llamar StartDataQualityRulesetEvaluationRun

Sin estos permisos, se produce el siguiente error:

"errorCode": "AccessDenied" "errorMessage": "User: arn:aws:sts::account_id:assumed-role/AWSGlueServiceRole is not authorized to perform: iam:PassRole on resource: arn:aws:iam::account_id:role/service-role/AWSGlueServiceRole because no identity-based policy allows the iam:PassRole action"

Entidades de confianza de IAM

Los servicios de AWS Glue y AWS EventBridge Scheduler deben figurar en las entidades de confianza para poder crear y ejecutar una StartDataQualityEvaluationRun programada.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Ejemplos de políticas de IAM

Un rol de IAM para Calidad de los datos de AWS Glue necesita los siguientes tipos de permisos:

  • Permisos para las operaciones de Calidad de los datos de AWS Glue, de modo que pueda obtener las reglas de calidad de datos recomendadas y ejecutar una tarea de calidad de datos en una tabla del Catálogo de datos de AWS Glue. Los ejemplos de políticas de IAM de esta sección incluyen los permisos mínimos necesarios para las operaciones de Calidad de los datos de AWS Glue.

  • Permisos que otorgan acceso a la tabla del Catálogo de datos y a los datos subyacentes. Estos permisos varían en función de su caso de uso. Por ejemplo, para los datos que cataloga en Amazon S3, los permisos deben incluir el acceso a Amazon S3.

    nota

    Debe configurar los permisos de Amazon S3 además de los permisos descritos en esta sección.

Permisos mínimos para obtener las reglas de calidad de datos recomendadas

Esta política de ejemplo incluye los permisos que necesita para generar las reglas de calidad de datos recomendadas.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGlueRuleRecommendationRunActions", "Effect": "Allow", "Action": [ "glue:GetDataQualityRuleRecommendationRun", "glue:PublishDataQuality", "glue:CreateDataQualityRuleset" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowCatalogPermissions", "Effect": "Allow", "Action": [ "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "*" ] }, { "Sid": "AllowS3GetObjectToRunRuleRecommendationTask", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::aws-glue-*" }, { "Sid": "AllowPublishingCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" } ] }

Permisos mínimos para obtener recomendaciones avanzadas sobre reglas de calidad de datos

Debe tener el permiso iam:PassRole para el rol de recomendación. El rol no necesita permisos de Amazon Bedrock.

Política de confianza

Utilice esta política de confianza para permitir que AWS Glue asuma el rol de recomendación para su tabla de origen.

Establezca aws:SourceArn en el ARN completo de la tabla de origen. Utilice el ID de cuenta de ese ARN para aws:SourceAccount.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:glue:us-east-1:111122223333:table/database-name/table-name" } } } ] }

Política de permisos

En la primera ejecución ADVANCED, AWS Glue crea los siguientes recursos en su cuenta:

  • El grupo de trabajo de Athena glue-dataquality-sampling para ejecutar consultas sobre recomendaciones de reglas.

  • El bucket de Amazon S3 aws-glue-dataquality-sampling-account-id-region para almacenar los resultados de las consultas.

Para las siguientes ejecuciones, AWS Glue reutiliza el grupo de trabajo y el bucket existentes. Para obtener más información, consulte Protección de datos para recomendaciones avanzadas sobre reglas de calidad de datos.

Asocie la siguiente política de permisos con su rol de recomendación.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCatalogRead", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name", "arn:aws:glue:us-east-1:111122223333:table/database-name/table-name" ] }, { "Sid": "AllowDataQualityRecommendationResults", "Effect": "Allow", "Action": "glue:PublishDataQuality", "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowDataAccess", "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution" ], "Resource": "arn:aws:athena:us-east-1:111122223333:workgroup/glue-dataquality-sampling" }, { "Sid": "AllowSourceRead", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::source-bucket", "arn:aws:s3:::source-bucket/*" ] }, { "Sid": "AllowSamplingBucket", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutLifecycleConfiguration", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::aws-glue-dataquality-sampling-111122223333-us-east-1", "arn:aws:s3:::aws-glue-dataquality-sampling-111122223333-us-east-1/athena-results/*" ] } ] }
nota

Si el bucket existe, puede eliminar s3:CreateBucket de esta política. Si elimina el bucket, AWS Glue volverá a necesitar este permiso. Todos los demás permisos de esta política siguen siendo necesarios para las siguientes ejecuciones.

Permisos adicionales

Si se aplica una condición de esta lista, agregue los permisos relacionados con su rol de recomendación.

  • Si Lake Formation controla el acceso a la tabla, agregue lakeformation:GetDataAccess. Otorgue el rol DESCRIBE en la base de datos y DESCRIBE y SELECT en la tabla.

  • Si especifica una configuración de seguridad de calidad de datos, agregue el permiso glue:GetSecurityConfiguration.

  • Si especifica CreatedRulesetName, agregue el permiso glue:CreateDataQualityRuleset.

  • Si especifica una configuración de seguridad de calidad de datos con una clave administrada por el cliente, agregue la siguiente instrucción para esa clave.

    { "Sid": "AllowDataQualityEncryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id" }

    Su rol de recomendación necesita estas acciones para el cifrado de los resultados de las consultas y el cifrado de activos de Calidad de datos de AWS Glue. La política de claves también debe permitir estas acciones para su rol. Para obtener más información, consulte Política de claves.

  • Si los objetos de origen utilizan SSE-KMS, agregue la siguiente instrucción.

    { "Sid": "AllowSourceDataDecryption", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-1:111122223333:key/source-key-id" }

    La política de claves de origen también debe permitir que el rol de recomendación descifre los objetos de origen.

Permisos mínimos para ejecutar una tarea de calidad de datos

Esta política de ejemplo incluye los permisos que necesita para ejecutar una tarea de evaluación de calidad de los datos.

Las siguientes instrucciones de políticas son opcionales en función de su caso de uso:

  • AllowCloudWatchPutMetricDataToPublishTaskMetrics - es obligatoria para publicar las métricas de ejecución de calidad de datos en Amazon CloudWatch.

  • AllowS3PutObjectToWriteTaskResults: es obligatoria para escribir los resultados de ejecución de calidad de datos en Amazon S3.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGlueGetDataQualityRuleset", "Effect": "Allow", "Action": [ "glue:GetDataQualityRuleset" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/YOUR-RULESET-NAME" }, { "Sid": "AllowGlueRulesetEvaluationRunActions", "Effect": "Allow", "Action": [ "glue:GetDataQualityRulesetEvaluationRun", "glue:PublishDataQuality" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowCatalogPermissions", "Effect": "Allow", "Action": [ "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "*" ] }, { "Sid": "AllowS3GetObjectForRulesetEvaluationRun", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::aws-glue-*" }, { "Sid": "AllowCloudWatchPutMetricDataToPublishTaskMetrics", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "Glue Data Quality" } } }, { "Sid": "AllowS3PutObjectToWriteTaskResults", "Effect": "Allow", "Action": [ "s3:PutObject*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Permisos mínimos para ejecutar un trabajo de ETL de calidad de datos

Esta política de ejemplo incluye los permisos que necesita para ejecutar un trabajo de ETL de calidad de los datos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGluePublishDataQualityResult", "Effect": "Allow", "Action": [ "glue:PublishDataQuality" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowGlueGetDataQualityResult", "Effect": "Allow", "Action": [ "glue:GetDataQualityResult" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowGlueDataQualityStatisticAnnotation", "Effect": "Allow", "Action": [ "glue:PutDataQualityStatisticAnnotation" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*", "arn:aws:glue:us-east-1:111122223333::job/{JobName}" ] }, { "Sid": "AllowGlueDataQualityProfileAnnotation", "Effect": "Allow", "Action": [ "glue:PutDataQualityProfileAnnotation" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*", "arn:aws:glue:us-east-1:111122223333::job/{JobName}" ] } ] }