

# Requisitos previos para generar estadísticas de columnas
<a name="column-stats-prereqs"></a>

Para generar o actualizar las estadísticas de las columnas, la tarea de generación de estadísticas adopta un rol de AWS Identity and Access Management (IAM) en su nombre. Según los permisos concedidos al rol, la tarea de generación de estadísticas de columnas puede leer los datos del almacén de datos de Amazon S3.

Al configurar la tarea de generación de estadísticas de la columna, AWS Glue le permite crear un rol que incluye la política administrada de AWS `AWSGlueServiceRole`, más la política insertada necesaria para el origen de datos especificado. 

Si especifica un rol existente para generar estadísticas de columnas, asegúrese de que incluya la política `AWSGlueServiceRole` o una equivalente (o una versión reducida de esta política), además de las políticas insertadas requeridas. Para crear un nuevo rol de IAM, siga estos pasos:

**nota**  
 Para generar estadísticas para las tablas administradas por Lake Formation, el rol de IAM utilizado para generar estadísticas requiere acceso total a las tablas. 

Al configurar la tarea de generación de estadísticas de la columna, AWS Glue le permite crear un rol que incluye la política administrada de AWS `AWSGlueServiceRole`, más la política insertada necesaria para el origen de datos especificado. También puede crear un rol y adjuntar los permisos que se indican en la política siguiente y agregarlo a la tarea de generación de estadísticas de la columna.

**Creación de un rol de IAM para generar estadísticas de columnas**

1. Para crear un rol de IAM;, consulte [Crear un rol de IAM para AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html).

1. Para actualizar un rol existente, en la consola de IAM, vaya al rol de IAM que está utilizando el proceso de generación de estadísticas de columnas.

1. En la sección **Agregar permisos**, elija **Asociar políticas**. En la ventana del navegador que se acaba de abrir, elija la política administrada de AWS `AWSGlueServiceRole`.

1. También debe incluir los permisos de lectura de los datos de la ubicación de datos de Amazon S3.

   En la sección **Agregar permisos**, elija **Crear política**. En la ventana del navegador que se acaba de abrir, cree una nueva política para utilizarla con su rol.

1. En la página **Crear política**, elija la pestaña **JSON**. Copie el siguiente código `JSON` en el campo del editor de política.
**nota**  
En las políticas a continuación, reemplace la ID de cuenta con una Cuenta de AWS válida, `region` con la Región de la tabla y `bucket-name` con el nombre del bucket de Amazon S3.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
               	"arn:aws:s3:::amzn-s3-demo-bucket/*",
   							"arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           }
        ]
   }
   ```

------

1. (Opcional) Si utiliza los permisos de Lake Formation para acceder a sus datos, el rol de IAM requiere permisos `lakeformation:GetDataAccess`.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "LakeFormationDataAccess",
         "Effect": "Allow",
         "Action": "lakeformation:GetDataAccess",
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

    Si la ubicación de datos de Amazon S3 está registrada en Lake Formation y el rol de IAM que asume la tarea de generación de estadísticas de columnas no tiene permisos de grupos `IAM_ALLOWED_PRINCIPALS` concedidos en la tabla, el rol requiere los permisos de Lake Formation `ALTER` y `DESCRIBE` en la tabla. El rol utilizado para registrar el bucket de Amazon S3 requiere los permisos de Lake Formation `INSERT` y `DELETE` en la tabla. 

   Si la ubicación de datos de Amazon S3 no está registrada en Lake Formation y el rol de IAM no tiene permisos de grupo `IAM_ALLOWED_PRINCIPALS` otorgados en la tabla, el rol requiere los permisos de Lake Formation `ALTER`, `DESCRIBE`, `INSERT` y `DELETE` en la tabla. 

1. Si ha habilitado la opción `Automatic statistics generation` a nivel de catálogo, el rol de IAM debe tener el permiso `glue:UpdateCatalog` o el permiso `ALTER CATALOG` de Lake Formation en el catálogo de datos predeterminado. Puede utilizar la operación `GetCatalog` para verificar las propiedades del catálogo. 

1. (Opcional) La tarea de generación de estadísticas de columnas que escribe Amazon CloudWatch Logs cifrado necesita los siguientes permisos en la política de claves.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "CWLogsKmsPermissions",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:AssociateKmsKey"
         ],
         "Resource": [
           "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue:*"
         ]
       },
       {
         "Sid": "KmsPermissions",
         "Effect": "Allow",
         "Action": [
           "kms:GenerateDataKey",
           "kms:Decrypt",
           "kms:Encrypt"
         ],
         "Resource": [
           "arn:aws:kms:us-east-1:111122223333:key/arn of key used for ETL cloudwatch encryption"
         ],
         "Condition": {
           "StringEquals": {
             "kms:ViaService": [
               "glue.us-east-1.amazonaws.com"
             ]
           }
         }
       }
     ]
   }
   ```

------

1. El rol que utilice para ejecutar las estadística de columnas debe contener el permiso `iam:PassRole` en el rol.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "iam:PassRole"
         ],
         "Resource": [
           "arn:aws:iam::111122223333:role/columnstats-role-name"
         ]
       }
     ]
   }
   ```

------

1. Al crear un rol de IAM para generar estadísticas de columnas, el rol también debe tener la siguiente política de confianza que permita al servicio asumirlo. 

------
#### [ JSON ]

****  

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

------