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

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à.

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

Quando utilizzi la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS) per le tabelle nei bucket di tabella S3, devi concedere le autorizzazioni per le diverse identità del tuo 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 AWS analisi: se lavori con tabelle crittografate SSE-KMS nei servizi di AWS analisi, il tuo ruolo di integrazione deve essere autorizzato a utilizzare la tua 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 tra account per le chiavi KMS, consulta Consentire agli AWS account esterni di utilizzare una chiave KMS nella Service Developer Guide.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 la politica, sostituiscila user input placeholders con le tue informazioni:

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 ai dirigenti IAM delle autorizzazioni per l'utilizzo di tabelle crittografate nei servizi di analisi integrati AWS

Per utilizzare le tabelle S3 nei servizi di AWS analisi, integra i bucket da tavolo con Amazon SageMaker Lakehouse. Questa integrazione consente ai servizi di AWS analisi di scoprire e accedere automaticamente ai dati delle tabelle. Per ulteriori informazioni sull’integrazione, consulta Integrazione delle tabelle AWS Amazon S3 con i servizi di analisi.

Quando lavori con tabelle crittografate SSE-KMS in questi servizi, il ruolo che utilizzi deve avere l'autorizzazione a usare la tua AWS KMS chiave 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 la policy sostituiscila input placeholder values con la tua.

{ "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 politica, input placeholder values sostituiscila con la tua 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

Allega questa politica in linea a una chiave KMS per consentire al AWS KMS ruolo specificato di utilizzare la chiave. Per utilizzare questa politica, sostituiscila input placeholder values con il tuo 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 la politica, sostituiscila user input placeholders con le tue informazioni:

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