Utilizzo della crittografia lato server con chiavi (-) AWS KMS 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 chiavi (-) AWS KMS 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 nei AWS CloudTrail log, in S3 Inventory, S3 Storage Lens, nella console Amazon S3 e come intestazione di risposta Amazon S3 aggiuntiva nella finestra e. API AWS Command Line Interface AWS SDKs Per ulteriori informazioni, consulta Crittografia FAQ predefinita.

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 invece la crittografia lato server con AWS Key Management Service () chiavi (AWS KMS-). SSE KMS 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 SSE - KMS è richiesto 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 si utilizzano KMS le chiavi, è possibile utilizzare AWS KMS tramite AWS Management Consoleo 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 da. AWS KMSAWS Management Console

I controlli di sicurezza integrati AWS KMS possono aiutarvi a soddisfare i requisiti di conformità relativi alla crittografia. Puoi usare queste KMS chiavi per proteggere i tuoi dati nei bucket Amazon S3. Quando utilizzi 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 la sezione Concetti di AWS KMS key nella Guida per gli sviluppatori di AWS Key Management Service e i Prezzi di AWS KMS.

Autorizzazioni

Per caricare un oggetto crittografato con un AWS KMS key su 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 sulle 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 IAM responsabili e ai AWS servizi che devono accedere all'azione chiave pertinente. AWS KMS Per ulteriori informazioni, consulta la sezione Politiche chiave in. AWS KMS

AWS KMS keys

Quando si utilizza la crittografia lato server con AWS KMS (SSE-KMS), è possibile utilizzare la chiave AWS gestita predefinita oppure specificare una chiave gestita dal cliente che è già stata creata. AWS KMS supporta la crittografia delle buste. S3 utilizza le 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 envelope, consulta Crittografia envelope nella Guida per sviluppatori di AWS Key Management Service .

Se non specifichi una chiave gestita dal cliente, Amazon S3 crea automaticamente una Chiave gestita da AWS chiave per 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

Gli oggetti crittografati utilizzando SSE - KMS with non Chiavi gestite da AWSpossono essere condivisi 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 gestita dal cliente con crittografia simmetrica 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 KMSChiavi di crittografia simmetriche nella Guida per gli sviluppatori.AWS Key Management Service

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 sulle chiavi gestite e AWS gestite dai clienti, consulta Customer keys and AWS keys nella Developer Guide.AWS Key Management Service

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 sul loro impatto sul modello di responsabilità condivisa, vedi Archivi di chiavi esterni nella Guida per gli sviluppatori di AWS Key Management Service .

Utilizzo SSE della KMS crittografia per le operazioni tra account

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

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

  • Se stai caricando o accedendo a oggetti S3 utilizzando i principi AWS Identity and Access Management (IAM) che sono uguali Account AWS alla tua 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 chiave completamente qualificata. KMS ARN 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 nella Guida per gli AWS Key Management Service sviluppatori.

Per ulteriori informazioni su quando utilizzare le chiavi gestite dal cliente e le KMS chiavi AWS gestite, consulta Devo usare una chiave Chiave gestita da AWS o una chiave gestita dal cliente per crittografare i miei oggetti in Amazon S3?

SSE- KMS flusso di lavoro di crittografia

Se scegli di crittografare i tuoi dati utilizzando una chiave Chiave gestita da AWS o una chiave gestita dal cliente AWS KMS e Amazon S3 esegue le seguenti azioni di crittografia della busta:

  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 che i tuoi dati vengano decrittografati, usa Amazon S3 AWS KMS ed esegui le seguenti azioni:

  1. Amazon S3 invia la chiave dati crittografata AWS KMS a 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 utilizzi una AWS KMS key 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 KMS simmetriche nella Guida per gli sviluppatori.AWS Key Management Service

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 delle AWS KMS chiavi per i dati KMS crittografati, è possibile utilizzare i log. SSE AWS CloudTrail Puoi ottenere informazioni dettagliate sulle tue 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 configuri la crittografia lato server utilizzando AWS KMS (SSE-KMS), puoi configurare i bucket in modo che utilizzino S3 Bucket Keys per -. SSE KMS L'utilizzo di una chiave a livello di bucket per SSE - KMS può ridurre i costi delle AWS KMS richieste 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 per SSE - KMS su nuovi oggetti, 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 per completare le operazioni di crittografia. AWS KMS 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" } } } ] }

Per richiedere che un particolare AWS KMS key venga utilizzato per crittografare gli oggetti in un bucket, puoi utilizzare la chiave condition. s3:x-amz-server-side-encryption-aws-kms-key-id 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 il. Chiave gestita da AWS Indipendentemente da ciò, l'ID della AWS KMS chiave utilizzato da Amazon S3 per la crittografia degli oggetti deve corrispondere all'ID della AWS KMS 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 non riesce. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata. Per ulteriori informazioni sul contesto di crittografia, consulta il Contesto di crittografia nella Guida per gli sviluppatori di AWS Key Management Service .

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. Puoi anche utilizzare il ARN valore del contesto di crittografia predefinito per tenere traccia delle richieste pertinenti 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 oggetti crittografati AWS KMS

Importante

Tutte GET le PUT richieste di oggetti AWS KMS crittografati devono essere effettuate utilizzando Secure Sockets Layer (SSL) o Transport Layer Security (TLS). Le richieste devono inoltre essere firmate utilizzando credenziali valide, come AWS Signature Version 4 (o AWS Signature Version 2).

AWS Signature Version 4 è il processo di aggiunta di informazioni di autenticazione alle AWS richieste inviate daHTTP. Per motivi di sicurezza, la maggior parte delle richieste AWS deve essere firmata 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, consulta le sezioni Autenticazione delle richieste (AWS Signature Version 4) e Processo di firma Signature Version 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.