Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables - 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 chiffrement SSE-KMS de S3 Tables

Lorsque vous utilisez le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (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 d’Amazon S3 Tables (maintenance.s3tables.amazonaws.com) a besoin de kms:GenerateDataKey et d’autorisations kms:Decrypt sur la clé.

Autorisations supplémentaires

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

  • Autorisations pour l'intégration des services d' AWS analyse : si vous utilisez des tables chiffrées SSE-KMS dans les services AWS d'analyse, votre rôle d'intégration doit être autorisé à utiliser votre clé KMS.

  • Autorisations pour un accès direct : si vous travaillez directement avec des tables chiffrées SSE-KMS, par le biais de méthodes telles que le point de terminaison Iceberg REST d’Amazon S3 Tables ou le catalogue d’Amazon S3 Tables pour Apache Iceberg, vous devez accorder le rôle IAM utilisé par votre client à accéder à votre clé.

  • Autorisations pour les tables de métadonnées S3 : si vous utilisez le chiffrement SSE-KMS pour les tables de métadonnées S3, vous devez fournir au principal de service de métadonnées S3 (metadata.s3.amazonaws.com) l’accès à 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, voir Autoriser les AWS comptes externes à utiliser une clé KMS dans le Guide du développeur AWS Key Management Service de services.

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 chiffrées SSE-KMS et pour permettre la maintenance automatique des tables, comme le compactage, la gestion des instantanés et la suppression de fichiers non référencés sur les tables chiffrées.

Note

Chaque fois que vous demandez la création d’une table chiffrée SSE-KMS, S3 Tables vérifie que le principal maintenance.s3tables.amazonaws.com 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 un accès de maintenance aux tables chiffrées SSE-KMS, vous pouvez utiliser l’exemple de stratégie de 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 cette 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 IAM des autorisations leur permettant de travailler avec des tables chiffrées dans les services d'analyse intégrés AWS

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

Lorsque vous utilisez des tables chiffrées SSE-KMS dans ces services, le rôle que vous utilisez doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement. Vous pouvez appliquer ces autorisations au rôle S3TablesRoleForLakeFormation créé lors de l’intégration ou à votre propre rôle IAM.

L’exemple de politique IAM intégrée suivant peut être utilisé pour accorder au rôle de service S3TablesRoleForLakeFormation l’autorisation d’utiliser une clé KMS spécifique dans votre compte pour les opérations de chiffrement. Pour utiliser cette politique, remplacez-la input placeholder values par la vôtre.

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

Octroi aux principaux IAM des autorisations leur permettant d’utiliser directement des tables chiffrées

Lorsque vous utilisez des tables chiffrées à l’aide de méthodes tierces ou d’accès direct, vous devez accorder au rôle que vous utilisez l’accès à votre clé KMS. Les exemples suivants montrent comment accorder l’accès par le biais d’une politique IAM ou d’une stratégie de clé KMS.

IAM policy

Associez cette stratégie en ligne à votre rôle IAM pour autoriser l’accès aux clés KMS. Pour utiliser cette politique, input placeholder values remplacez-la par votre propre code KMS.

JSON
JSON
{ "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

Associez cette politique intégrée à une clé KMS pour autoriser le AWS KMS rôle spécifié à utiliser la clé. Pour utiliser cette politique, remplacez le input placeholder values par votre rôle IAM.

{ "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 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 chiffrées SSE-KMS et d’effectuer la maintenance de ces tables de métadonnées, vous pouvez utiliser l’exemple de stratégie de 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 cette 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>/*" } } } ] }