View a markdown version of this page

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 i servizi di AWS analisi e accesso diretto: se lavori con tabelle crittografate SSE-KMS tramite servizi di AWS analisi o motori di terze parti che accedono direttamente alle tabelle S3, il ruolo IAM che utilizzi necessita dell'autorizzazione per utilizzare la tua chiave KMS.

  • Autorizzazioni con Lake Formation abilitata: se hai optato AWS Lake Formation per il controllo degli accessi, il ruolo del servizio Lake Formation richiede l'autorizzazione per utilizzare la tua chiave KMS.

  • 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 per più 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, devi integrare i tuoi table bucket con. AWS Glue Data Catalog 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 tramite servizi di AWS analisi o motori di terze parti e open source che accedono direttamente alle tabelle S3, il ruolo IAM che utilizzi necessita dell'autorizzazione per utilizzare la tua AWS KMS chiave per le operazioni di crittografia.

Puoi concedere l'accesso alle chiavi KMS tramite una policy IAM associata al tuo ruolo o tramite una policy chiave KMS.

IAM policy

Allega questa policy in linea al ruolo IAM che utilizzi per le interrogazioni per consentire l'accesso alla chiave KMS. Sostituisci la chiave KMS ARN con la tua.

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

In alternativa, allega questa dichiarazione alla tua politica delle chiavi KMS per consentire al ruolo IAM specificato di utilizzare la chiave. Sostituisci il ruolo ARN con il ruolo IAM che usi per le interrogazioni.

{ "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 ai principali IAM delle autorizzazioni per lavorare con tabelle crittografate quando Lake Formation è abilitato

Se hai optato AWS Lake Formation per il controllo degli accessi sulla tua integrazione con S3 Tables, il ruolo del servizio Lake Formation richiede l'autorizzazione per utilizzare la tua AWS KMS chiave per le operazioni di crittografia. Lake Formation utilizza questo ruolo per vendere le credenziali per conto dei responsabili che accedono ai tavoli.

Il seguente esempio di politica delle chiavi KMS concede al ruolo del servizio Lake Formation l'autorizzazione a utilizzare una chiave KMS specifica nel tuo account per le operazioni di crittografia. Sostituisci i valori segnaposto con i tuoi.

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