Specifica della crittografia lato server a doppio livello con chiavi AWS KMS (DSSE-KMS)
È possibile applicare la crittografia quando si carica un nuovo oggetto o si copia un oggetto esistente.
È possibile specificare DSSE-KMS utilizzando la console Amazon S3, la REST API di Amazon S3 e la AWS Command Line Interface (AWS CLI). Per ulteriori informazioni, consulta i seguenti argomenti.
Nota
È possibile utilizzare AWS KMS keys per più Regioni in Amazon S3. Tuttavia, Amazon S3 attualmente tratta le chiavi multiregionali come se fossero chiavi monoregionali e non utilizza le caratteristiche multiregionali della chiave. Per ulteriori informazioni, consulta Utilizzo delle chiavi multiregione nella Guida per gli sviluppatori di AWS Key Management Service.
Nota
Se si desidera utilizzare una chiave KMS di proprietà di un altro account, è necessario disporre dell'autorizzazione all'uso della chiave. Per ulteriori informazioni sulle autorizzazioni per gli account incrociati per le chiavi KMS, consulta Creazione di chiavi KMS utilizzabili da altri account nella Guida per gli sviluppatori di AWS Key Management Service.
Questa sezione descrive come impostare o modificare il tipo di crittografia di un oggetto per utilizzare la crittografia dual-layer lato server con chiavi AWS Key Management Service (AWS KMS) (DSSE-KMS) utilizzando la console Amazon S3.
Nota
-
È possibile modificare la crittografia di un oggetto se l'oggetto è inferiore a 5 GB. Se l'oggetto è superiore a 5 GB, è necessario utilizzare gli SDK AWS CLI o AWS per modificare la crittografia di un oggetto.
-
Per un elenco delle autorizzazioni aggiuntive necessarie per modificare la crittografia di un oggetto, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3. Per esempi di policy che concedono questa autorizzazione, consulta Esempi di policy basate sull'identità per Amazon S3.
Se si modifica la codifica di un oggetto, viene creato un nuovo oggetto in sostituzione di quello vecchio. Se il controllo delle versioni S3 è abilitato, viene creata una nuova versione dell'oggetto e l'oggetto esistente torna a una versione precedente. Il ruolo che modifica la proprietà diventa anche il proprietario del nuovo oggetto o della versione dell'oggetto.
Per aggiungere o modificare la crittografia di un oggetto
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione, scegli Bucket, quindi scegli la scheda Bucket per uso generico. Naviga al bucket o alla cartella Amazon S3 che contiene gli oggetti da modificare.
-
Seleziona la casella di controllo degli oggetti da modificare.
-
Nel menu Azioni, scegli Modifica crittografia lato server dall'elenco di opzioni visualizzato.
Scorrere fino alla sezione Crittografia lato server.
In Impostazioni di crittografia, scegli Usa le impostazioni del bucket per la crittografia predefinita o Sostituisci le impostazioni del bucket per la crittografia predefinita.
-
Se si è scelto di sovrascrivere le impostazioni del bucket per la crittografia predefinita, configurare le seguenti impostazioni di crittografia.
-
In Tipo di crittografia, scegli Crittografia lato server dual-layer con chiavi AWS Key Management Service (DSSE-KMS).
-
In AWS KMS key, esegui una delle seguenti operazioni per scegliere la chiave KMS:
-
Per scegliere da un elenco di chiavi KMS disponibili, seleziona Scegli tra le chiavi AWS KMS keys, quindi scegli la chiave KMS dall'elenco delle chiavi disponibili.
In questo elenco compaiono sia le chiavi Chiave gestita da AWS (
aws/s3
) sia quelle gestite dal cliente. Per ulteriori informazioni sulle chiavi gestite dal cliente, consulta Chiavi gestite dal cliente e chiavi AWS nella Guida per gli sviluppatori di AWS Key Management Service. -
Per inserire la chiave KMS ARN, scegli Inserisci l'ARN della AWS KMS key, quindi inserisci l'ARN della tua chiave KMS nel campo visualizzato.
-
Per creare una chiave gestita dal cliente, scegli Crea una chiave KMS nella console AWS KMS.
Per ulteriori informazioni sulla creazione di AWS KMS key, consulta Creazione di chiavi nella Guida per gli sviluppatori AWS Key Management Service.
Importante
Puoi utilizzare solo le chiavi KMS disponibili nella stessa Regione AWS del bucket. La console Amazon S3 elenca solo le prime 100 chiavi KMS nella stessa Regione del bucket. Per utilizzare una chiave KMS non elencata, devi inserire l'ARN della chiave KMS. Se desideri utilizzare una chiave KMS di proprietà di un account diverso, è necessario innanzitutto disporre dell'autorizzazione necessaria per l'uso della chiave e quindi inserire l'ARN della chiave KMS.
Amazon S3 supporta solo le chiavi KMS di crittografia simmetrica e non quelle asimmetriche. Per ulteriori informazioni, consulta Identificazione delle chiavi KMS asimmetriche nella Guida per gli sviluppatori di AWS Key Management Service.
-
-
-
Per Chiave bucket scegli Disabilita. Le chiavi bucket S3 non sono supportate per DSSE-KMS.
-
In Impostazioni di copia aggiuntive, scegli se eseguire Copia impostazioni dell'origine, Non specificare le impostazioni o Specifica le impostazioni. Copia impostazioni dell'origine è l'opzione predefinita. Se desideri copiare solo l'oggetto senza gli attributi delle impostazioni dell'origine, scegli Non specificare le impostazioni. Scegli Specifica le impostazioni per specificare le impostazioni per la classe di storage, le ACL, i tag degli oggetti, i metadati, la crittografia lato server e i checksum aggiuntivi.
-
Scegli Salva modifiche.
Nota
Questa azione applica la crittografia a tutti gli oggetti specificati. Durante la crittografia delle cartelle, attendere il completamento dell'operazione di salvataggio prima di aggiungere nuovi oggetti alla cartella.
Quando crei un oggetto, ovvero quando carichi un nuovo oggetto o copi un oggetto esistente, puoi specificare l'uso della crittografia lato server a doppio livello con le AWS KMS keys (DSSE-KMS) per crittografare i dati. A tal fine, aggiungere l'intestazione x-amz-server-side-encryption
alla richiesta. Impostare il valore dell'intestazione sull'algoritmo di crittografia aws:kms:dsse
. Amazon S3 conferma che l'oggetto è stato archiviato utilizzando la crittografia DSSE-KMS restituendo l'intestazione della risposta x-amz-server-side-encryption
.
Se si specifica l'intestazione x-amz-server-side-encryption
con un valore di aws:kms:dsse
, è possibile utilizzare anche le seguenti intestazioni di richiesta:
-
x-amz-server-side-encryption-aws-kms-key-id:
SSEKMSKeyId
-
x-amz-server-side-encryption-context:
SSEKMSEncryptionContext
Argomenti
Operazioni API REST di Amazon S3 che supportano DSSE-KMS
Le operazioni REST API seguenti accettano le intestazioni di richiesta x-amz-server-side-encryption
, x-amz-server-side-encryption-aws-kms-key-id
e x-amz-server-side-encryption-context
.
-
PutObject - Quando si caricano i dati utilizzando l'operazione API
PUT
, è possibile specificare le intestazioni della richiesta. -
CopyObject - Quando si copia un oggetto, si ha un oggetto di origine e un oggetto di destinazione. Tuttavia, le intestazioni DSSE-KMS passate con l'operazione
CopyObject
vengono applicate solo all'oggetto di destinazione. Quando si copia un oggetto esistente, indipendentemente dal fatto che l'oggetto di origine sia stato o meno crittografato, l'oggetto di destinazione non viene crittografato, a meno che non si richieda esplicitamente la crittografia lato server. -
POST Object: quando utilizzi un'operazione
POST
per caricare un oggetto, anziché le intestazioni di richiesta, specifica le stesse informazioni dei campi del modulo. -
CreateMultipartUpload: quando carichi oggetti di grandi dimensioni utilizzando il caricamento in più parti, puoi specificare queste intestazioni nella richiesta
CreateMultipartUpload
.
Quando un oggetto viene archiviato con la crittografia lato server, le intestazioni di risposta delle seguenti operazioni REST API restituiscono l'intestazione x-amz-server-side-encryption
.
Importante
-
Tutte le richieste
GET
ePUT
per un oggetto protetto da AWS KMS restituiscono esito negativo se non vengono create utilizzando Secure Sockets Layer (SSL), Transport Layer Security (TLS) o Signature Version 4. -
Se l'oggetto utilizza DSSE-KMS, non inviare intestazioni di richiesta di crittografia per le richieste
GET
eHEAD
per evitare di ricevere un erroreHTTP 400 (richiesta non valida)
.
Contesto di crittografia (x-amz-server-side-encryption-context
)
Se si specifica x-amz-server-side-encryption:aws:kms:dsse
, l'API di Amazon S3 supporta un contesto di crittografia con l'intestazione x-amz-server-side-encryption-context
. Un contesto di crittografia è un set di coppie chiave-valore che possono contenere ulteriori informazioni contestuali sui dati.
Amazon S3 utilizza automaticamente il nome della risorsa Amazon (ARN) dell'oggetto come coppia di contesto di crittografia; ad esempio, arn:aws:s3:::
.object_ARN
È possibile fornire facoltativamente un'ulteriore coppia di contesti di crittografia utilizzando l'intestazione x-amz-server-side-encryption-context
. Tuttavia, poiché il contesto di crittografia non è criptato, assicurarsi che non contenga informazioni sensibili. Amazon S3 memorizza questa coppia di chiavi aggiuntiva insieme al contesto di crittografia predefinito.
Per informazioni sul contesto di crittografia in Amazon S3, consulta la sezione Contesto di crittografia. Per informazioni generali sul contesto di crittografia, consulta AWS Key Management Service Concetti - Contesto di crittografia nella Guida per gli sviluppatori AWS Key Management Service.
ID chiave AWS KMS (x-amz-server-side-encryption-aws-kms-key-id
)
È possibile utilizzare l'intestazione x-amz-server-side-encryption-aws-kms-key-id
per specificare l'ID della chiave gestita dal cliente utilizzata per proteggere i dati. Se specifichi l'intestazione x-amz-server-side-encryption:aws:kms:dsse
, ma non fornisci l'intestazione x-amz-server-side-encryption-aws-kms-key-id
, Amazon S3 utilizza la Chiave gestita da AWS (aws/s3
) per proteggere i dati. Se si desidera utilizzare una chiave gestita dal cliente, è necessario fornire l'intestazione x-amz-server-side-encryption-aws-kms-key-id
della chiave gestita dal cliente.
Importante
Quando si utilizza AWS KMS key per la crittografia lato server in Amazon S3, è necessario scegliere una chiave KMS di crittografia simmetrica. Amazon S3 supporta solo chiavi KMS di crittografia simmetrica. Per ulteriori informazioni su queste chiavi, consulta Chiavi KMS di crittografia simmetrica nella Guida per gli sviluppatori di AWS Key Management Service.
Quando carichi un nuovo oggetto o copi un oggetto esistente, puoi specificare l'uso di DSSE-KMS per crittografare i dati. Per farlo, aggiungi il parametro --server-side-encryption
aws:kms:dsse
alla richiesta. Usa il parametro --ssekms-key-id
per aggiungere la chiave AWS KMS gestita dal cliente che hai creato. Se si specifica example-key-id
--server-side-encryption aws:kms:dsse
, ma non si fornisce un ID chiave AWS KMS , Amazon S3 utilizzerà la chiave gestita AWS (aws/s3
).
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyexample-object-key
--server-side-encryption aws:kms:dsse --ssekms-key-idexample-key-id
--bodyfilepath
È possibile crittografare un oggetto non crittografato per utilizzare DSSE-KMS copiando l'oggetto al suo posto.
aws s3api copy-object --bucket
amzn-s3-demo-bucket
--keyexample-object-key
--bodyfilepath
--bucketamzn-s3-demo-bucket
--keyexample-object-key
--sse aws:kms:dsse --sse-kms-key-idexample-key-id
--bodyfilepath