

# Permisos de IAM para Calidad de datos de AWS Glue
<a name="data-quality-authorization"></a>

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](security.md).

## Permisos de IAM para Calidad de los datos de AWS Glue
<a name="data-quality-authorization-permissions"></a>

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. 


**Acciones de Calidad de datos de AWS 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/\$1 | 
| 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/data-quality-authorization.html)  | ::dataQualityRuleset/<name> | 
| glue:ListDataQualityResults | Concede permiso para recuperar todos los resultados de la ejecución de tareas de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:CancelDataQualityRuleRecommendationRun | Concede permiso para detener una ejecución en curso de tareas de recomendación de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:GetDataQualityRuleRecommendationRun | Concede permiso para recuperar una ejecución de tareas de recomendación de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:ListDataQualityRuleRecommendationRuns | Concede permiso para recuperar todas las ejecuciones de tareas de recomendación de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:StartDataQualityRuleRecommendationRun | Concede permiso para iniciar una ejecución de tareas de recomendación de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:CancelDataQualityRulesetEvaluationRun | Concede permiso para detener una ejecución en curso de tareas de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:GetDataQualityRulesetEvaluationRun | Concede permiso para recuperar una ejecución de tareas de calidad de datos. | ::dataQualityRuleset/\$1 | 
| glue:ListDataQualityRulesetEvaluationRuns | Concede permiso para recuperar todas las ejecuciones de tareas de calidad de datos. | ::dataQualityRuleset/\$1 | 
| 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/data-quality-authorization.html)  | ::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
<a name="data-quality-iam-setup-evaluation-runs"></a>

### Permisos de IAM
<a name="data-quality-iam-setup-evaluation-runs-permissions"></a>

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.


**Permisos necesarios para AWS 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
<a name="data-quality-iam-setup-evaluation-runs-trusted-entities"></a>

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
<a name="data-quality-authorization-example-policy"></a>

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
<a name="example-policy-get-dq-rule-recommendations"></a>

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 ejecutar una tarea de calidad de datos
<a name="example-policy-run-dq-task"></a>

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
<a name="example-policy-run-dq-etl-job"></a>

 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}"
      ]
    }
	]
}
```

------