Pré-requisitos de otimização de tabelas - AWS Glue

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pré-requisitos de otimização de tabelas

O otimizador de tabela assume as permissões da função AWS Identity and Access Management (IAM) que você especifica ao ativar as opções de otimização para uma tabela. Você pode criar um único perfil para todos os otimizadores ou criar perfis separados para cada otimizador. A IAM função deve ter as permissões para ler dados e atualizar metadados no Catálogo de Dados. Você pode criar uma IAM função e anexar as seguintes políticas em linha:

  • Adicione a seguinte política em linha que concede ao Amazon S3 permissões de leitura/gravação no local para dados que não estão registrados no Lake Formation. Essa política também inclui permissões para atualizar a tabela no Catálogo de Dados e permitir AWS Glue a adição de registros em Amazon CloudWatch registros e a publicação de métricas. Para dados de origem no Amazon S3 que não estão registrados no Lake Formation, o acesso é determinado pelas políticas de IAM permissões e ações do Amazon AWS Glue S3.

    Nas políticas em linha a seguir, substitua bucket-name pelo nome do bucket do Amazon S3, aws-account-id e region por um número de conta da AWS e por uma região do catálogo de dados válidos, database_name pelo nome do seu banco de dados e table_name pelo nome da tabela.

    { "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:*" } ] }
  • Use a política a seguir para habilitar a compactação de dados registrados no Lake Formation.

    Se o perfil de otimização não tiver permissões do grupo IAM_ALLOWED_PRINCIPALS concedidas na tabela, ele exigirá as permissões ALTER, DESCRIBE, INSERT e DELETE do Lake Formation na tabela.

    Para obter mais informações sobre o registro de um bucket do Amazon S3 com o Lake Formation, consulte Adicionar um local do Amazon S3 ao seu data lake.

    { "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 otimizar tabelas Iceberg com dados em buckets criptografados do Amazon S3 usando criptografia no lado do servidor, o perfil de compactação exigirá permissões para descriptografar objetos do Amazon S3 e gerar uma nova chave de dados para gravar objetos nos buckets criptografados. Adicione a política a seguir à AWS KMS chave desejada. Oferecemos suporte somente à criptografia em nível de bucket.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Opcional) Para locais de dados registrados no Lake Formation, o perfil usado para registrar a localização exige permissões para descriptografar objetos do Amazon S3 e gerar uma nova chave de dados para gravar objetos nos buckets criptografados. Para obter mais informações, consulte Registrar um local do Amazon S3.

  • (Opcional) Se a AWS KMS chave estiver armazenada em uma AWS conta diferente, você precisará incluir as seguintes permissões na função de compactação.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • A função que você usa para executar a compactação deve ter a permissão iam:PassRole da função.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • Adicione a seguinte política de confiança à função para que o AWS Glue serviço assuma a IAM função de executar o processo de compactação.

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