Requisiti di autorizzazione per la crittografia SSE-KMS di Tabelle S3 - Amazon Simple Storage Service

Requisiti di autorizzazione per la crittografia SSE-KMS di Tabelle S3

Quando si utilizza la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS) per bucket di tabelle S3, è necessario fornire le autorizzazioni per le diverse identità dell’account. Come minimo, l’identità di accesso e il principale della manutenzione di Tabelle S3 devono avere accesso alla chiave, le altre autorizzazioni richieste dipendono dal caso d’uso.

Autorizzazioni richieste

Per accedere a una tabella crittografata con una chiave KMS, sono necessarie le seguenti autorizzazioni per la chiave:

  • kms:GenerateDataKey

  • kms:Decrypt

Importante

Per utilizzare SSE-KMS sulle tabelle, il principale del servizio di manutenzione (maintenance.s3tables.amazonaws.com) di Tabelle Amazon S3 ha bisogno delle autorizzazioni kms:GenerateDataKey e kms:Decrypt per la chiave.

Autorizzazioni aggiuntive

Queste autorizzazioni aggiuntive sono necessarie a seconda del caso d’uso:

  • Autorizzazioni per l’integrazione dei servizi di analisi AWS: se si utilizzano le tabelle crittografate SSE-KMS nei servizi di analisi AWS, il ruolo di integrazione necessita dell’autorizzazione per utilizzare la chiave KMS.

  • Autorizzazioni per l’accesso diretto: se si utilizzano direttamente le tabelle crittografate SSE-KMS, tramite metodi come l’endpoint Iceberg REST di Tabelle Amazon S3 o il Catalogo di Tabelle Amazon S3 per Apache Iceberg, è necessario fornire l’accesso alla chiave al ruolo IAM utilizzato dal client.

  • Autorizzazioni per le tabelle di S3 Metadata: se si utilizza la crittografia SSE-KMS per le tabelle di S3 Metadata, è necessario fornire l’accesso alla chiave KMS al principale del servizio S3 Metadata (metadata.s3.amazonaws.com). Ciò consente a S3 Metadata di aggiornare le tabelle crittografate in modo che riflettano le ultime modifiche apportate ai dati.

Nota

Per le chiavi KMS multi-account, il ruolo IAM richiede sia l’autorizzazione di accesso alla chiave sia l’autorizzazione esplicita nella policy della chiave. Per ulteriori informazioni sulle autorizzazioni multi-account per le chiavi KMS, consulta Consentire agli account AWS esterni di utilizzare una chiave KMS nella Guida per gli sviluppatori di AWS Key Management Service.

Concessione delle autorizzazioni per la chiave KMS al principale del servizio di manutenzione di Tabelle S3

Questa autorizzazione è necessaria per creare tabelle crittografate SSE-KMS e per consentire la manutenzione automatica delle tabelle, ad esempio la compattazione, la gestione degli snapshot e la rimozione dei file senza riferimenti nelle tabelle crittografate.

Nota

Ogni volta che si effettua una richiesta per creare una tabella crittografata SSE-KMS, Tabelle S3 verifica che il principale maintenance.s3tables.amazonaws.com abbia accesso alla chiave KMS. Per eseguire questo controllo, viene creato temporaneamente un oggetto a zero byte nel bucket di tabelle, che verrà rimosso automaticamente dalle operazioni di manutenzione con la rimozione dei file senza riferimenti. Se la chiave KMS specificata per la crittografia non dispone dell’accesso di manutenzione, l’operazione createTable avrà esito negativo.

Per fornire l’accesso di manutenzione alle tabelle crittografate SSE-KMS, è possibile utilizzare il seguente esempio di policy della chiave. In questa policy, al principale del servizio maintenance.s3tables.amazonaws.com viene fornita l’autorizzazione a utilizzare una chiave KMS specifica per crittografare e decrittografare le tabelle in un bucket di tabelle specifico. Per utilizzare questa policy, sostituisci i segnaposto per l’input dell’utente con le informazioni appropriate.

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>/*" } } } ] }

Concessione delle autorizzazioni per l’utilizzo di tabelle crittografate in servizi di analisi AWS integrati ai principali IAM

Per utilizzare tabelle S3 nei servizi di analisi AWS, si integrano i bucket di tabelle con Amazon SageMaker Lakehouse. Questa integrazione consente ai servizi di analisi AWS di individuare e accedere automaticamente ai dati delle tabelle. Per ulteriori informazioni sull’integrazione, consulta Integrazione di Tabelle Amazon S3 con i servizi di analisi AWS.

Quando si utilizzano tabelle crittografate SSE-KMS in questi servizi, il ruolo in uso deve disporre dell’autorizzazione a utilizzare la chiave AWS KMS per le operazioni di crittografia. È possibile applicare queste autorizzazioni al ruolo S3TablesRoleForLakeFormation creato durante l’integrazione o al ruolo IAM.

Il seguente esempio di policy IAM inline può essere utilizzato per fornire al ruolo di servizio S3TablesRoleForLakeFormation l’autorizzazione a utilizzare una chiave KMS specifica nell’account per le operazioni di crittografia. Per utilizzare questa policy, sostituisci i valori segnaposto per l’input con le informazioni appropriate.

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

Concessione delle autorizzazioni per utilizzare direttamente le tabelle crittografate ai principali IAM

Quando si utilizzano tabelle crittografate utilizzando metodi di accesso diretto o di terze parti, è necessario fornire al ruolo in uso l’accesso alla chiave KMS. Gli esempi seguenti mostrano come fornire l’accesso tramite una policy IAM o una policy della chiave KMS.

IAM policy

Collega questa policy inline al ruolo IAM per consentire l’accesso alla chiave KMS. Per utilizzare questa policy, sostituisci i valori segnaposto per l’input con l’ARN della chiave 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

Collega questa policy inline a una chiave KMS per consentire al ruolo AWS KMS specificato di utilizzare la chiave. Per utilizzare questa policy, sostituisci i valori segnaposto per l’input con il ruolo 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": "*" }

Concessione delle autorizzazioni per l’utilizzo della chiave KMS al principale del servizio S3 Metadata

È possibile utilizzare la seguente policy della chiave di esempio per consentire ad Amazon S3 di aggiornare le tabelle di metadati crittografate SSE-KMS ed eseguire la manutenzione su tali tabelle di metadati. In questa policy, si consente ai principali del servizio metadata.s3.amazonaws.com e maintenance.s3tables.amazonaws.com di crittografare e decrittografare le tabelle in un bucket di tabelle specifico utilizzando una chiave specifica. Per utilizzare questa policy, sostituisci i segnaposto per l’input dell’utente con le informazioni appropriate.

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>/*" } } } ] }