Utilizzo della crittografia lato server con AWS KMS chiavi (SSE-KMS) nei bucket di directory - 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à.

Utilizzo della crittografia lato server con AWS KMS chiavi (SSE-KMS) nei bucket di directory

I controlli di sicurezza in AWS KMS può aiutarti a soddisfare i requisiti di conformità relativi alla crittografia. È possibile scegliere di configurare i bucket di directory per utilizzare la crittografia lato server con AWS Key Management Service (AWS KMS) keys (SSE-KMS) e usa queste KMS chiavi per proteggere i tuoi dati nei bucket di directory di Amazon S3. Per ulteriori informazioni su SSE -KMS, consulta. Utilizzo della crittografia lato server con AWS KMS tasti (-) SSE KMS

Autorizzazioni

Per caricare o scaricare un oggetto crittografato con un AWS KMS key da o verso Amazon S3, sono necessari i permessi kms:GenerateDataKey e kms:Decrypt le autorizzazioni sulla chiave. Per ulteriori informazioni, consulta Consentire agli utenti chiave di utilizzare una KMS chiave per operazioni crittografiche in AWS Key Management Service Guida per gli sviluppatori. Per informazioni su AWS KMS autorizzazioni necessarie per i caricamenti in più parti, consulta. Caricamento API e autorizzazioni in più parti

Per ulteriori informazioni sui KMS tasti per SSE -KMS, consulta. Specificare la crittografia lato server con AWS KMS (SSE-KMS)

AWS KMS keys

La tua SSE KMS configurazione può supportare solo 1 chiave gestita dal cliente per bucket di directory per tutta la durata del bucket. Chiave gestita da AWS(aws/s3) non è supportato. Inoltre, dopo aver specificato una chiave gestita dal cliente per SSE -KMS, non è possibile sostituire la chiave gestita dal cliente per la configurazione del SSE bucket. KMS

È possibile identificare la chiave gestita dal cliente specificata per la KMS configurazione del bucket nel modo seguenteSSE:

  • Fai una richiesta HeadObject API operativa per trovare il valore di x-amz-server-side-encryption-aws-kms-key-id nella tua risposta.

Per utilizzare una nuova chiave gestita dal cliente per i tuoi dati, ti consigliamo di copiare gli oggetti esistenti in un nuovo bucket di directory con una nuova chiave gestita dal cliente.

Quando si specifica un AWS KMS chiave gestita dal cliente per la crittografia nel bucket di directory, utilizza solo l'ID o la chiave della chiaveARN. Il formato dell'alias della KMS chiave non è supportato.

Per ulteriori informazioni sulle KMS chiavi per SSE -KMS, vedereAWS KMS keys.

Utilizzo di SSE - KMS per operazioni su più account

Quando utilizzate la crittografia per le operazioni tra account nei bucket di directory, tenete presente quanto segue:

  • Se desideri concedere l'accesso a più account ai tuoi oggetti S3, configura una politica di chiave gestita dal cliente per consentire l'accesso da un altro account.

  • Per specificare una chiave gestita dal cliente, devi utilizzare una chiave completamente qualificataKMS. ARN

Chiavi bucket Amazon S3

Le chiavi S3 Bucket sono sempre abilitate per GET PUT tutte le operazioni in un bucket di directory e non possono essere disabilitate. Le S3 Bucket Keys non sono supportate, quando copiSSE: oggetti KMS crittografati da bucket generici a bucket di directory, da bucket di directory a bucket generici o tra bucket di directory, tramite CopyObject, UploadPartCopy, il Copy operazione in Batch Operations, oppure import lavori. In questo caso, Amazon S3 effettua una chiamata a AWS KMS ogni volta che viene effettuata una richiesta di copia per un oggetto KMS crittografato.

Per le APIoperazioni sugli endpoint zonali (a livello di oggetto), ad eccezione di CopyObjecte UploadPartCopy, è possibile autenticare e autorizzare le richieste tramite CreateSessionper una bassa latenza. Si consiglia che la crittografia predefinita del bucket utilizzi la configurazione di crittografia desiderata e di non sovrascrivere la crittografia predefinita del bucket nelle richieste o nelle CreateSession richieste di oggetti. PUT Quindi, i nuovi oggetti vengono crittografati automaticamente con le impostazioni di crittografia desiderate. Per crittografare nuovi oggetti in un bucket di directory con SSE -KMS, è necessario specificare SSE - KMS come configurazione di crittografia predefinita del bucket di directory con una KMS chiave (in particolare, una chiave gestita dal cliente). Quindi, quando viene creata una sessione per API le operazioni degli endpoint zonali, i nuovi oggetti vengono automaticamente crittografati e decrittografati con SSE - KMS e S3 Bucket Keys durante la sessione. Per ulteriori informazioni sui comportamenti di sovrascrittura della crittografia nei bucket di directory, consulta Specificare la crittografia lato server con AWS KMS per il caricamento di nuovi oggetti.

Le S3 Bucket Key vengono utilizzate per un periodo di tempo limitato all'interno di Amazon S3, riducendo ulteriormente la necessità per Amazon S3 di effettuare richieste a AWS KMS per completare le operazioni di crittografia. Per ulteriori informazioni sull'utilizzo di S3 Bucket Keys, consulta Chiavi bucket Amazon S3 e. Riduzione del costo di SSE - KMS con Amazon S3 Bucket Keys

Richiede - SSE KMS

Per richiedereSSE, KMS tra tutti gli oggetti in un determinato bucket di directory, puoi utilizzare una policy relativa ai bucket. Ad esempio, quando utilizzi l'CreateSessionAPIoperazione per concedere l'autorizzazione a caricare un nuovo oggetto (PutObject, eCreateMultipartUpload)CopyObject, la seguente politica del bucket nega l'autorizzazione di caricamento dell'oggetto (s3express:CreateSession) a tutti se la CreateSession richiesta non include un'x-amz-server-side-encryption-aws-kms-key-idintestazione che richiede -. SSE KMS

{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Richiedere che un particolare AWS KMS key da utilizzare per crittografare gli oggetti in un bucket, è possibile utilizzare la chiave di s3express:x-amz-server-side-encryption-aws-kms-key-id condizione. Per specificare la KMS chiave, devi utilizzare una chiave Amazon Resource Name (ARN) nel arn:aws:kms:region:acct-id:key/key-id formato. AWS Identity and Access Management non convalida se la stringa for s3express:x-amz-server-side-encryption-aws-kms-key-id esiste. Il AWS KMS l'ID chiave utilizzato da Amazon S3 per la crittografia degli oggetti deve corrispondere al AWS KMS ID chiave nella policy, altrimenti Amazon S3 nega la richiesta.

Per ulteriori informazioni sull'usoSSE, per il caricamento di nuovi oggetti, consulta. KMS Specificare la crittografia lato server con AWS KMS (SSE-KMS) per il caricamento di nuovi oggetti nei bucket di directory

Per un elenco completo delle chiavi di condizione specifiche per i bucket di directory, consulta. AWS Identity and Access Management (IAM) per S3 Express One Zone

Contesto di crittografia

Per i bucket di directory, un contesto di crittografia è un insieme di coppie chiave-valore che contiene informazioni contestuali sui dati. Un valore di contesto di crittografia aggiuntivo non è supportato. Per ulteriori informazioni sul contesto di crittografia, consulta Contesto di crittografia.

Per impostazione predefinita, se utilizzi SSE - KMS su un bucket di directory, Amazon S3 utilizza il bucket Amazon Resource Name ARN () come coppia di contesti di crittografia:

arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3

Assicurati che le tue politiche o IAM AWS KMS le politiche chiave utilizzano il bucket ARN come contesto di crittografia.

Facoltativamente, puoi fornire una coppia di contesti di crittografia esplicita utilizzando l'x-amz-server-side-encryption-contextintestazione in una richiesta di endpoint API Zonal, ad esempio. CreateSession Il valore di questa intestazione è una stringa con codifica Base64 con codifica UTF -8, che contiene il contesto di crittografia come coppie chiave-valore. JSON Per i bucket di directory, il contesto di crittografia deve corrispondere al contesto di crittografia predefinito, il bucket Amazon Resource Name ()ARN. Inoltre, poiché il contesto di crittografia non è crittografato, assicurati che non includa informazioni sensibili.

È possibile utilizzare il contesto di crittografia per identificare e categorizzare le operazioni di crittografia. È inoltre possibile utilizzare il ARN valore del contesto di crittografia predefinito per tenere traccia delle richieste pertinenti in AWS CloudTrail visualizzando quale bucket di directory ARN è stato utilizzato con quale chiave di crittografia.

Nel requestParameters campo di un file di CloudTrail registro, se si utilizza SSE - KMS su un bucket di directory, il valore del contesto di crittografia è il valore ARN del bucket.

"encryptionContext": { "aws:s3express:arn": "arn:aws:s3:::arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3" }

Inoltre, per la crittografia degli oggetti con SSE - KMS in un bucket di directory, AWS KMS CloudTrail gli eventi registrano il tuo bucket ARN anziché il tuo oggetto. ARN

Invio di richieste per AWS KMS oggetti crittografati

È possibile accedere ai bucket di directory solo tramite HTTPS (TLS). Inoltre, i bucket di directory firmano le richieste utilizzando AWS Signature Version 4 (SigV4). Per ulteriori informazioni sull'invio di richieste di AWS KMS oggetti crittografati, vedereInvio di richieste per AWS KMS oggetti crittografati.

Se l'oggetto utilizza SSE -KMS, non inviare intestazioni di richieste di crittografia per GET richieste e HEAD richieste. Altrimenti, riceverai un errore HTTP400 Bad Request.

ControlloSSE: KMS crittografia nei bucket di directory

Per verificare l'utilizzo del tuo AWS KMS chiavi per i tuoi SSE dati KMS crittografati, che puoi usare AWS CloudTrail registri. È possibile ottenere informazioni dettagliate sulle operazioni crittografiche, ad esempio GenerateDataKey e Decrypt. CloudTrail supporta numerosi valori di attributo per filtrare la ricerca, tra cui il nome dell'evento, il nome utente e l'origine dell'evento.