View a markdown version of this page

Exigences d'autorisation pour le SSE-KMS chiffrement des tables S3 - Amazon Simple Storage Service

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.

Exigences d'autorisation pour le SSE-KMS chiffrement des tables S3

Lorsque vous utilisez le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) keys (SSE-KMS) pour les tables des compartiments de tables S3, vous devez accorder des autorisations pour les différentes identités de votre compte. Au minimum, votre identité d’accès et le principal de maintenance de S3 Tables doivent avoir accès à votre clé, les autres autorisations requises dépendent de votre cas d’utilisation.

Autorisations nécessaires

Pour accéder à une table chiffrée avec une clé KMS, vous devez disposer des autorisations suivantes sur cette clé :

  • kms:GenerateDataKey

  • kms:Decrypt

Important

Pour utiliser SSE-KMS sur des tables, le principal du service de maintenance Amazon S3 Tables (maintenance.s3tables.amazonaws.com) a besoin kms:GenerateDataKey et kms:Decrypt des autorisations sur la clé.

Autorisations supplémentaires

Ces autorisations supplémentaires sont requises en fonction de votre cas d’utilisation :

  • Autorisations pour les services AWS d'analyse et l'accès direct — Si vous travaillez avec des tables SSE-KMS chiffrées via des services AWS d'analyse ou des moteurs tiers accédant directement aux tables S3, le rôle IAM que vous utilisez doit être autorisé à utiliser votre clé KMS.

  • Autorisations avec Lake Formation activée  : si vous avez activé le contrôle AWS Lake Formation d'accès, le rôle de service Lake Formation doit être autorisé à utiliser votre clé KMS.

  • Autorisations pour les tables de métadonnées S3  : si vous utilisez SSE-KMS le chiffrement pour les tables de métadonnées S3, vous devez fournir au principal du service de métadonnées S3 l'accès (metadata.s3.amazonaws.com) à votre clé KMS. Cela permet aux métadonnées S3 de mettre à jour les tables chiffrées afin qu’elles reflètent vos dernières modifications de données.

Note

Pour les clés KMS entre comptes, votre rôle IAM nécessite à la fois une autorisation d’accès par clé et une autorisation explicite dans la stratégie de clé. Pour plus d'informations sur les autorisations entre comptes pour les clés KMS, consultez la section Autoriser AWS les comptes externes à utiliser une clé KMS dans le AWS Key Management Service Service Developer Guide.

Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS

Cette autorisation est requise pour créer des tables SSE-KMS chiffrées et pour permettre la maintenance automatique des tables, comme le compactage, la gestion des instantanés et la suppression des fichiers non référencés sur les tables chiffrées.

Note

Chaque fois que vous faites une demande pour créer une table SSE-KMS chiffrée, S3 Tables vérifie que le maintenance.s3tables.amazonaws.com principal a accès à votre clé KMS. Pour effectuer cette vérification, un objet de zéro octet est temporairement créé dans votre compartiment de table. Cet objet sera automatiquement supprimé par les opérations de maintenance de suppression de fichiers non référencés. Si la clé KMS que vous avez spécifiée pour le chiffrement ne dispose pas d’un accès de maintenance, l’opération createTable échoue.

Pour accorder l'accès de maintenance aux tables SSE-KMS chiffrées, vous pouvez utiliser l'exemple de politique clé suivant. Dans cette politique, le principal du service maintenance.s3tables.amazonaws.com est autorisé à utiliser une clé KMS spécifique pour chiffrer et déchiffrer les tables d’un compartiment de table spécifique. Pour utiliser la politique, remplacez-la user input placeholders par vos propres informations :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }

Octroi aux principaux administrateurs IAM des autorisations leur permettant de travailler avec des tables chiffrées en mode intégré AWS services d'analyse

Pour utiliser les tables S3 dans les services AWS d'analyse, vous devez intégrer vos compartiments de tables à AWS Glue Data Catalog. Cette intégration permet aux services AWS d'analyse de découvrir et d'accéder automatiquement aux données des tableaux. Pour plus d’informations sur l’intégration, consultez Intégrer Amazon S3 Tables à AWS services d'analyse.

Lorsque vous travaillez avec des tables SSE-KMS chiffrées via des services AWS d'analyse ou des moteurs tiers et open source accédant directement aux tables S3, le rôle IAM que vous utilisez doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement.

Vous pouvez accorder l'accès à la clé KMS par le biais d'une politique IAM associée à votre rôle ou par le biais d'une politique de clé KMS.

IAM policy

Associez cette politique en ligne au rôle IAM que vous utilisez pour effectuer des requêtes afin d'autoriser l'accès à la clé KMS. Remplacez l'ARN de la clé KMS par le vôtre.

{ "Version":"2012-10-17",, "Statement": [ { "Sid": "AllowKMSKeyUsage", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
KMS key policy

Vous pouvez également joindre cette instruction à votre politique de clé KMS pour permettre au rôle IAM spécifié d'utiliser la clé. Remplacez le rôle ARN par le rôle IAM que vous utilisez pour les requêtes.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*" }

Octroi aux principaux administrateurs d'IAM des autorisations leur permettant de travailler avec des tables chiffrées lorsque Lake Formation est activé

Si vous avez choisi de contrôler l'accès AWS Lake Formation à votre intégration à S3 Tables, le rôle de service Lake Formation doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement. Lake Formation utilise ce rôle pour vendre des informations d'identification au nom des principaux utilisateurs qui accèdent à vos tables.

L'exemple de politique de clé KMS suivant accorde au rôle de service Lake Formation l'autorisation d'utiliser une clé KMS spécifique dans votre compte pour les opérations de chiffrement. Remplacez les valeurs des espaces réservés par les vôtres.

{ "Sid": "AllowTableRoleAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>" }

Octroi des autorisations de principal de service de métadonnées S3 pour utiliser votre clé KMS

Pour permettre à Amazon S3 de mettre à jour les tables de métadonnées SSE-KMS chiffrées et d'effectuer la maintenance de ces tables de métadonnées, vous pouvez utiliser l'exemple de politique clé suivant. Dans cette stratégie, vous autorisez les principaux de service metadata.s3.amazonaws.com et maintenance.s3tables.amazonaws.com à chiffrer et déchiffrer les tables d’un compartiment de table spécifique à l’aide d’une clé spécifique. Pour utiliser la politique, remplacez-la user input placeholders par vos propres informations :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": [ "maintenance.s3tables.amazonaws.com", "metadata.s3.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }