Prerequisiti per l'ottimizzazione delle tabelle - AWS Lake Formation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Prerequisiti per l'ottimizzazione delle tabelle

L'ottimizzatore di tabelle presuppone le autorizzazioni del ruolo AWS Identity and Access Management (IAM) specificato quando si abilita la compattazione per una tabella. Il ruolo IAM deve disporre delle autorizzazioni per leggere i dati e aggiornare i metadati nel Catalogo dati. Puoi creare un ruolo IAM e collegare le seguenti policy in linea:

  • Aggiungi la seguente policy in linea che concede le autorizzazioni di lettura/scrittura di Amazon S3 sulla posizione per i dati non registrati con Lake Formation. Questa politica include anche le autorizzazioni per aggiornare la tabella nel Data Catalog e per consentire l'aggiunta di log nei log e AWS Glue la pubblicazione di metriche. Amazon CloudWatch Per i dati di origine in Amazon S3 che non sono registrati con Lake Formation, l'accesso è determinato dalle policy di autorizzazione IAM per Amazon S3 e dalle operazioni AWS Glue .

    Nelle seguenti policy in linea, sostituisci bucket-name con il nome del bucket Amazon S3, aws-account-id e region con un numero di account AWS valido e una regione del Catalogo dati, database_name con il nome del database e table_name con il nome della tabella.

    { "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:*" } ] }
  • Utilizza la seguente policy per abilitare la compattazione dei dati registrati con Lake Formation.

    Se al ruolo di compattazione non sono concesse le autorizzazioni di IAM_ALLOWED_PRINCIPALS gruppo sulla tabella, il ruolo richiede Lake Formation ALTER INSERT e DELETE le autorizzazioni sulla tabella. DESCRIBE

    Per ulteriori informazioni sulla registrazione di un bucket Amazon S3 con Lake Formation, consulta. Aggiungere una posizione Amazon S3 al tuo 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:*" } ] }
  • (Facoltativo) Per compattare le tabelle Iceberg con i dati nei bucket Amazon S3 crittografati utilizzando la Crittografia lato server, il ruolo di compattazione richiede le autorizzazioni per decrittografare gli oggetti Amazon S3 e per generare una nuova chiave dati per scrivere oggetti nei bucket crittografati. Aggiungi la seguente politica alla chiave desiderata. AWS KMS Supportiamo solo la crittografia a livello di bucket.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<compaction-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Facoltativo) Per la posizione dei dati registrati con Lake Formation, il ruolo utilizzato per registrare la posizione richiede le autorizzazioni per decrittografare gli oggetti Amazon S3 e generare una nuova chiave dati per scrivere oggetti nei bucket crittografati. Per ulteriori informazioni, consulta Registrazione di una posizione Amazon S3 crittografata.

  • (Facoltativo) Se la AWS KMS chiave è archiviata in un altro AWS account, è necessario includere le seguenti autorizzazioni per il ruolo di compattazione.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • Il ruolo utilizzato per eseguire la compattazione deve disporre dell'autorizzazione iam:PassRole relativa al ruolo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<compaction-role-name>" ] } ] }
  • Aggiungi la seguente policy di fiducia al ruolo affinché il AWS Glue servizio assuma il ruolo IAM per eseguire il processo di compattazione.

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