Utilizzo della crittografia lato server con AWS KMS tasti (-) SSE KMS - 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 tasti (-) SSE KMS

Importante

Amazon S3 ora applica la crittografia lato server con chiavi gestite di Amazon S3 (SSE-S3) come livello base di crittografia per ogni bucket in Amazon S3. A partire dal 5 gennaio 2023, tutti i caricamenti di nuovi oggetti su Amazon S3 vengono crittografati automaticamente senza costi aggiuntivi e senza alcun impatto sulle prestazioni. Lo stato di crittografia automatico per la configurazione di crittografia predefinita del bucket S3 e per il caricamento di nuovi oggetti è disponibile in AWS CloudTrail log, S3 Inventory, S3 Storage Lens, console Amazon S3 e come intestazione di risposta Amazon S3 aggiuntiva nel API AWS Command Line Interface e AWS SDKs. Per ulteriori informazioni, vedere Crittografia predefinita FAQ.

La crittografia lato server è la crittografia dei dati nella posizione di destinazione eseguita dall'applicazione o dal servizio che li riceve.

Amazon S3 abilita automaticamente la crittografia lato server con chiavi gestite di Amazon S3 (SSE-S3) per il caricamento di nuovi oggetti.

Se non diversamente specificato, i bucket utilizzano -S3 per impostazione predefinita per crittografare gli oggetti. SSE Tuttavia, puoi scegliere di configurare i bucket per utilizzare la crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (SSE-KMS) invece. Per ulteriori informazioni, consulta Specificare la crittografia lato server con AWS KMS (SSE-KMS).

AWS KMS è un servizio che combina hardware e software sicuri e ad alta disponibilità per fornire un sistema di gestione delle chiavi scalabile per il cloud. Amazon S3 utilizza la crittografia lato server con AWS KMS (SSE-KMS) per crittografare i dati degli oggetti S3. Inoltre, quando KMS è richiesto SSE - per l'oggetto, il checksum S3 (come parte dei metadati dell'oggetto) viene archiviato in forma crittografata. Per ulteriori informazioni sui checksum, consulta Verifica dell'integrità degli oggetti.

Se usi KMS le chiavi, puoi usare AWS KMS attraverso il AWS Management Consoleo il AWS KMS APIper effettuare le seguenti operazioni:

  • Crea, visualizza, modifica, monitora, abilita o disabilita, ruota e pianifica l'eliminazione delle KMS chiavi in modo centralizzato.

  • Definisci le politiche che controllano come e da chi possono essere utilizzate KMS le chiavi.

  • Verificare il loro utilizzo per dimostrare che sono state utilizzate correttamente. Il controllo è supportato da AWS KMS API, ma non dal AWS KMSAWS Management Console.

I controlli di sicurezza in AWS KMS può aiutarti a soddisfare i requisiti di conformità relativi alla crittografia. Puoi usare queste KMS chiavi per proteggere i tuoi dati nei bucket Amazon S3. Quando usi SSE la KMS crittografia con un bucket S3, AWS KMS keys deve trovarsi nella stessa regione del bucket.

Sono previsti costi aggiuntivi per l'utilizzo AWS KMS keys Per ulteriori informazioni, consulta .AWS KMS key concetti in AWS Key Management Service Guida per gli sviluppatori e AWS KMS prezzi.

Autorizzazioni

Per caricare un oggetto crittografato con un AWS KMS key per Amazon S3, sono necessarie kms:GenerateDataKey le autorizzazioni sulla chiave. Per scaricare un oggetto crittografato con un AWS KMS key, sono necessarie kms:Decrypt le autorizzazioni. Per informazioni sul AWS KMS autorizzazioni necessarie per i caricamenti in più parti, consulta. Caricamento API e autorizzazioni in più parti

Importante

Esamina attentamente le autorizzazioni concesse nelle tue politiche chiave. KMS Limita sempre le autorizzazioni relative alle policy KMS chiave gestite dal cliente solo ai responsabili e IAM AWS servizi che devono accedere ai dati pertinenti AWS KMS azione chiave. Per ulteriori informazioni, vedere Politiche chiave in AWS KMS.

AWS KMS keys

Quando si utilizza la crittografia lato server con AWS KMS (SSE-KMS), è possibile utilizzare l'impostazione predefinita AWS chiave gestita oppure puoi specificare una chiave gestita dal cliente che hai già creato. AWS KMS supporta la crittografia delle buste. S3 utilizza il AWS KMS funzionalità di crittografia delle buste per proteggere ulteriormente i dati. La crittografia a busta è la pratica di crittografare i dati in chiaro con una chiave dati e quindi di crittografare tale chiave con una chiave. KMS Per ulteriori informazioni sulla crittografia delle buste, vedere Envelope encryption nel AWS Key Management Service Guida per gli sviluppatori.

Se non specifichi una chiave gestita dal cliente, Amazon S3 crea automaticamente un Chiave gestita da AWS nel tuo Account AWS la prima volta che aggiungi un oggetto crittografato con SSE - KMS a un bucket. Per impostazione predefinita, Amazon S3 utilizza questa KMS chiave per SSE -. KMS

Nota

Oggetti crittografati utilizzando SSE - KMS con Chiavi gestite da AWSnon può essere condiviso tra più account. Se hai bisogno di condividere SSE KMS dati su più account, devi utilizzare una chiave gestita dal cliente di AWS KMS.

Se desideri utilizzare una chiave gestita dal cliente per SSE -KMS, crea una chiave di crittografia simmetrica gestita dal cliente prima di configurare -. SSE KMS Quindi, quando SSE configuri, KMS per il tuo bucket, specifica la chiave gestita dal cliente esistente. Per ulteriori informazioni sulla chiave di crittografia simmetrica, consulta Chiavi di crittografia simmetriche nel KMS AWS Key Management Service Guida per gli sviluppatori.

La creazione di una chiave gestita dal cliente offre maggiore flessibilità e controllo. Ad esempio, puoi creare, ruotare e disabilitare le chiavi gestite dal cliente. Puoi anche definire controlli di accesso e controllare le chiavi gestite dal cliente utilizzate per proteggere i dati. Per ulteriori informazioni su Customer Managed e AWS chiavi gestite, vedere Customer keys e AWS chiavi in AWS Key Management Service Guida per gli sviluppatori.

Nota

Quando utilizzi la crittografia lato server con una chiave gestita dal cliente archiviata in un archivio di chiavi esterno, a differenza delle KMS chiavi standard, hai la responsabilità di garantire la disponibilità e la durabilità del materiale chiave. Per ulteriori informazioni sugli archivi di chiavi esterni e su come essi modificano il modello di responsabilità condivisa, consulta Archivi di chiavi esterni nel AWS Key Management Service Guida per gli sviluppatori.

Utilizzo SSE della KMS crittografia per operazioni su più account

Quando si utilizza la crittografia per operazioni multi-account, tieni presente quanto segue:

  • Se un AWS KMS key Amazon Resource Name (ARN) o l'alias non vengono forniti al momento della richiesta o tramite la configurazione di crittografia predefinita del bucket, la Chiave gestita da AWS (aws/s3) viene utilizzato.

  • Se stai caricando o accedendo a oggetti S3 utilizzando AWS Identity and Access Management (IAM) principi che coincidono Account AWS come KMS chiave, puoi usare il Chiave gestita da AWS (aws/s3).

  • Se desideri concedere l'accesso multi-account agli oggetti S3, utilizza una chiave gestita dal cliente. Puoi configurare la policy di una chiave gestita dal cliente per consentire l'accesso da un altro account.

  • Se stai specificando una KMS chiave gestita dal cliente, ti consigliamo di utilizzare una KMS chiave ARN completamente qualificata. Se invece utilizzi un alias KMS chiave, AWS KMS risolve la chiave all'interno dell'account del richiedente. Questo comportamento può comportare la crittografia dei dati con una KMS chiave che appartiene al richiedente e non al proprietario del bucket.

  • È necessario specificare una chiave per cui il richiedente ha ottenuto l'autorizzazione Encrypt. 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 ulteriori informazioni su quando utilizzare le chiavi gestite dai clienti e AWS KMSchiavi gestite, vedi Dovrei usare un Chiave gestita da AWS o una chiave gestita dal cliente per crittografare i miei oggetti in Amazon S3?

SSE- flusso di lavoro di KMS crittografia

Se scegli di crittografare i tuoi dati utilizzando un Chiave gestita da AWS o una chiave gestita dal cliente, AWS KMS e Amazon S3 eseguono le seguenti azioni di crittografia delle buste:

  1. Amazon S3 richiede una chiave dati in testo semplice e una copia della chiave crittografata con la chiave specificata. KMS

  2. AWS KMS genera una chiave dati, la crittografa sotto la KMS chiave e invia sia la chiave dati in testo semplice che la chiave dati crittografata ad Amazon S3.

  3. Amazon S3 crittografa i dati utilizzando la chiave di dati ed eliminando appena possibile la chiave di testo normale dalla memoria dopo l'utilizzo.

  4. Amazon S3 archivia la chiave di dati crittografata come metadati con i dati crittografati.

Quando richiedi la decrittografia dei tuoi dati, Amazon S3 e AWS KMS esegui le seguenti azioni:

  1. Amazon S3 invia la chiave dati crittografata a AWS KMS in una Decrypt richiesta.

  2. AWS KMS decrittografa la chiave dati crittografata utilizzando la stessa chiave e restituisce la KMS chiave dati in testo semplice ad Amazon S3.

  3. Amazon S3 utilizza la chiave di dati non crittografati per decrittografare i dati crittografati, quindi rimuove il prima possibile la chiave di dati non crittografati dalla memoria.

Importante

Quando usi un AWS KMS key per la crittografia lato server in Amazon S3, devi scegliere una chiave di crittografia simmetrica. KMS Amazon S3 supporta solo chiavi di crittografia simmetriche. KMS Per ulteriori informazioni su queste chiavi, consulta Chiavi di crittografia simmetriche nel KMS AWS Key Management Service Guida per gli sviluppatori.

ControlloSSE: crittografia KMS

Per identificare le richieste che specificano SSE -KMS, puoi utilizzare i parametri All SSE - KMS requests e% all SSE - KMS requests nei parametri di Amazon S3 Storage Lens. S3 Storage Lens è una funzionalità di analisi dell'archiviazione su cloud che puoi utilizzare per avere una panoramica completa a livello di organizzazione sull'utilizzo e sulle attività relative all'archiviazione di oggetti. Puoi anche utilizzare i bucket SSE - KMS enabled bucket e% SSE - KMS enabled per comprendere il numero di bucket utilizzati (SSE-KMS) per la crittografia predefinita dei bucket. Per ulteriori informazioni, consulta Valutazione dell'attività e dell'utilizzo dello storage con S3 Storage Lens. Per un elenco completo dei parametri, consulta Glossario dei parametri di S3 Storage.

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.

Chiavi bucket Amazon S3

Quando si configura la crittografia lato server utilizzando AWS KMS (SSE-KMS), puoi configurare i tuoi bucket per utilizzare S3 Bucket Keys per -. SSE KMS L'utilizzo di una chiave a livello di bucket per - può ridurre i SSE KMS AWS KMS costi di richiesta fino al 99 percento diminuendo il traffico delle richieste da Amazon S3 a AWS KMS.

Quando configuri un bucket per utilizzare una chiave S3 Bucket perSSE: su nuovi oggetti, KMS AWS KMS genera una chiave a livello di bucket che viene utilizzata per creare chiavi dati univoche per gli oggetti nel bucket. Questa S3 Bucket Key viene utilizzata 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 delle chiavi del bucket S3, consulta la sezione Riduzione del costo di SSE - KMS con Amazon S3 Bucket Keys.

Richiesta della crittografia lato server

Per richiedere la crittografia lato server di tutti gli oggetti in uno specifico bucket Amazon S3, è possibile utilizzare una policy di bucket. Ad esempio, la seguente policy sui bucket nega l'autorizzazione upload object (s3:PutObject) a tutti se la richiesta non include un'x-amz-server-side-encryption-aws-kms-key-idintestazione che richiede la crittografia lato server con -. SSE KMS

{ "Version":"2012-10-17", "Id":"PutObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3:PutObject", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition":{ "Null":{ "s3: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 s3: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 s3:x-amz-server-side-encryption-aws-kms-key-id esiste.

Nota

Quando carichi un oggetto, puoi specificare la KMS chiave utilizzando l'x-amz-server-side-encryption-aws-kms-key-idintestazione o affidarti alla configurazione di crittografia del bucket predefinita. Se la tua PutObject richiesta è specificata aws:kms nell'x-amz-server-side-encryptionintestazione, ma non specifica l'x-amz-server-side-encryption-aws-kms-key-idintestazione, Amazon S3 presume che tu voglia utilizzare Chiave gestita da AWS. Indipendentemente, 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 un elenco completo delle chiavi di condizione specifiche di Amazon S3, consulta Condition keys for Amazon S3 nel Service Authorization Reference.

Contesto di crittografia

Un contesto di crittografia è un set di coppie chiave-valore che contiene ulteriori informazioni contestuali sui dati. Il contesto di crittografia non è crittografato. Quando viene specificato un contesto di crittografia per un'operazione di crittografia, Amazon S3 deve specificare lo stesso contesto di crittografia per l'operazione di decrittografia. In caso contrario, la decrittografia ha esito negativo. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata. Per ulteriori informazioni sul contesto di crittografia, vedere Contesto di crittografia nella AWS Key Management Service Guida per gli sviluppatori.

Per impostazione predefinita, Amazon S3 utilizza l'oggetto o il bucket Amazon Resource Name ARN () come coppia di contesti di crittografia:

  • Se utilizzi SSE - KMS senza abilitare una S3 Bucket Key, l'oggetto ARN viene utilizzato come contesto di crittografia.

    arn:aws:s3:::object_ARN
  • Se usi SSE - KMS e abiliti una S3 Bucket Key, il bucket ARN viene utilizzato come contesto di crittografia. Per ulteriori informazioni sui bucket S3, consulta la sezione Riduzione del costo di SSE - KMS con Amazon S3 Bucket Keys.

    arn:aws:s3:::bucket_ARN

Facoltativamente, puoi fornire una coppia di contesti di crittografia aggiuntiva utilizzando l'x-amz-server-side-encryption-contextintestazione in una richiesta s3:. PutObject Tuttavia, poiché il contesto di crittografia non è crittografato, assicurati che non includa informazioni sensibili. Amazon S3 archivia questa coppia di chiavi aggiuntiva insieme al contesto di crittografia predefinito. Quando elabora la tua richiesta PUT, Amazon S3 aggiunge il contesto di crittografia predefinito di aws:s3:arn a quello che fornisci.

È 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 Amazon S3 ARN è stato utilizzato con quale chiave di crittografia.

Nel requestParameters campo di un file di CloudTrail registro, il contesto di crittografia è simile al seguente.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1/file_name" }

Quando si utilizza SSE - KMS con la funzione opzionale S3 Bucket Keys, il valore del contesto di crittografia è quello ARN del bucket.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1" }

Invio di richieste per AWS KMS oggetti crittografati

Importante

Tutto GET e PUT richieste per AWS KMS gli oggetti crittografati devono essere creati utilizzando Secure Sockets Layer (SSL) o Transport Layer Security (TLS). Le richieste devono inoltre essere firmate utilizzando credenziali valide, ad esempio AWS Signature Version 4 (o AWS Signature (versione 2).

AWS Signature (versione 4) è il processo di aggiunta di informazioni di autenticazione a AWS richieste inviate daHTTP. Per motivi di sicurezza, la maggior parte delle richieste a AWS deve essere firmato con una chiave di accesso, che consiste in un ID della chiave di accesso e una chiave di accesso segreta. Queste due chiavi in genere vengono definite come le tue credenziali di sicurezza. Per ulteriori informazioni, vedere Authenticating Requests (AWS Processo di firma Signature (versione 4) e Signature (versione 4).

Importante

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