Conditions préalables requises pour l'optimisation des tables - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conditions préalables requises pour l'optimisation des tables

L'optimiseur de table assume les autorisations du rôle AWS Identity and Access Management (IAM) que vous spécifiez lorsque vous activez les options d'optimisation pour une table. Vous pouvez créer un rôle unique pour tous les optimiseurs ou créer des rôles distincts pour chaque optimiseur. Le IAM rôle doit disposer des autorisations nécessaires pour lire les données et mettre à jour les métadonnées dans le catalogue de données. Vous pouvez créer un IAM rôle et y associer les politiques intégrées suivantes :

  • Ajoutez la stratégie en ligne suivante qui accorde à Amazon S3 des autorisations de lecture/écriture sur l'emplacement pour les données qui ne sont pas enregistrées auprès de Lake Formation. Cette politique inclut également des autorisations pour mettre à jour le tableau dans le catalogue de données, ainsi que AWS Glue pour autoriser l'ajout de journaux dans les Amazon CloudWatch journaux et la publication de métriques. Pour les données source dans Amazon S3 qui ne sont pas enregistrées auprès de Lake Formation, l'accès est déterminé par IAM les politiques d'autorisation et les AWS Glue actions d'Amazon S3.

    Dans les stratégies en ligne suivantes, remplacez le bucket-name par le nom de votre compartiment Amazon S3, aws-account-id et region par un numéro valide du compte AWS et une région du catalogue de données, database_name par le nom de votre base de données et table_name par le nom de la table.

    { "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:*" } ] }
  • Utilisez la stratégie suivante pour activer le compactage des données enregistrées auprès de Lake Formation.

    Si le rôle d'optimisation ne dispose pas d'autorisations de IAM_ALLOWED_PRINCIPALS groupe accordées sur la table, le rôle nécessite Lake Formation ALTER INSERT et DELETE des autorisations sur la table. DESCRIBE

    Pour plus d'informations sur l'enregistrement d'un bucket Amazon S3 auprès de Lake Formation, consultez Ajouter un emplacement Amazon S3 à votre lac de données.

    { "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:*" } ] }
  • (Facultatif) Pour optimiser les tables Iceberg avec les données des compartiments Amazon S3 chiffrées à l'aide du chiffrement côté serveur, le rôle de compactage nécessite des autorisations pour déchiffrer les objets Amazon S3 et générer une nouvelle clé de données pour écrire des objets dans les compartiments chiffrés. Ajoutez la politique suivante à la AWS KMS clé souhaitée. Nous prenons uniquement en charge le chiffrement au niveau du compartiment.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Facultatif) Pour l'emplacement des données enregistré auprès de Lake Formation, le rôle utilisé pour enregistrer l'emplacement nécessite des autorisations pour déchiffrer les objets Amazon S3 et générer une nouvelle clé de données pour écrire des objets dans les compartiments chiffrés. Pour plus d'informations, consultez la rubrique Enregistrement d'un emplacement Amazon S3 chiffré.

  • (Facultatif) Si la AWS KMS clé est stockée dans un autre AWS compte, vous devez inclure les autorisations suivantes pour le rôle de compactage.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • Le rôle que vous utilisez pour exécuter le compactage doit disposer de l'autorisation iam:PassRole correspondante.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • Ajoutez la politique de confiance suivante au rôle pour que le AWS Glue service assume le IAM rôle d'exécuter le processus de compactage.

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