Requisitos previos para la optimización de tablas - AWS Glue

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.

Requisitos previos para la optimización de tablas

El optimizador de tablas asume los permisos del rol AWS Identity and Access Management (IAM) que especificas al habilitar las opciones de optimización para una tabla. Puede crear un único rol para todos los optimizadores o crear roles separados para cada optimizador. El IAM rol debe tener los permisos para leer los datos y actualizar los metadatos en el catálogo de datos. Puede crear un IAM rol y adjuntar las siguientes políticas integradas:

  • Agregue la siguiente política en línea que conceda a Amazon S3 permisos de lectura y escritura en la ubicación para los datos que no estén registrados en Lake Formation. Esta política también incluye permisos para actualizar la tabla del catálogo de datos y para permitir añadir registros AWS Glue a los Amazon CloudWatch registros y publicar métricas. En el caso de los datos fuente de Amazon S3 que no estén registrados en Lake Formation, el acceso viene determinado por las políticas de IAM permisos y las AWS Glue acciones de Amazon S3.

    En las siguientes políticas en línea, sustituya bucket-name por el nombre de su bucket de Amazon S3, aws-account-id y region por un número de cuenta y región del catálogo de datos de AWS válidos, database_name por el nombre de su base de datos y table_name por el nombre de la tabla.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<bucket-name>" ] }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<database-name>/<table-name>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }
  • Utilice la siguiente política para habilitar la compactación de los datos registrados en Lake Formation.

    Si el rol de optimización 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 de la tabla.

    Para obtener más información sobre cómo registrar un bucket de Amazon S3 con Lake Formation, consulte Cómo añadir una ubicación de Amazon S3 a su lago de datos.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<databaseName>/<tableName>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }
  • (Opcional) Para optimizar tablas Iceberg con datos de buckets de Amazon S3 cifrados mediante cifrado del servidor, el rol de compactación requiere permisos para descifrar los objetos de Amazon S3 y generar una nueva clave de datos para escribir los objetos en los buckets cifrados. Añada la siguiente política a la AWS KMS clave deseada. Solo admitimos el cifrado a nivel de bucket.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Opcional) Para la ubicación de datos registrada en Lake Formation, el rol utilizado para registrar la ubicación requiere permisos para descifrar los objetos de Amazon S3 y generar una nueva clave de datos para escribir los objetos en los buckets cifrados. Para obtener más información, consulte Registro de una ubicación de Amazon S3.

  • (Opcional) Si la AWS KMS clave está almacenada en una AWS cuenta diferente, debe incluir los siguientes permisos para la función de compactación.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • El rol que utilice para ejecutar la compactación debe tener el permiso iam:PassRole correspondiente al rol.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • Agregue la siguiente política de confianza a la función para que el AWS Glue servicio asuma la IAM función de ejecutar el proceso de compactación.

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