

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 a due livelli con AWS KMS chiavi (DSSE-KMS)
<a name="UsingDSSEncryption"></a>

L'utilizzo della crittografia lato server a due livelli con AWS Key Management Service (AWS KMS) chiavi (DSSE-KMS) applica due livelli di crittografia agli oggetti quando vengono caricati su Amazon S3. DSSE-KMS consente di soddisfare più facilmente gli standard di conformità che richiedono l'applicazione della crittografia a più livelli ai dati e il pieno controllo delle chiavi di crittografia.

Il termine “doppio” in DSSE-KMS si riferisce a due livelli indipendenti di crittografia AES-256 applicati ai dati:
+ *Primo livello:* i dati vengono crittografati utilizzando una chiave di crittografia dei dati unica (DEK) generata da AWS KMS
+ *Secondo livello:* i dati già crittografati vengono crittografati nuovamente utilizzando una chiave di crittografia AES-256 separata gestita da Amazon S3

Questo comportamento differisce dallo standard SSE-KMS, che applica solo un singolo livello di crittografia. L’approccio a doppio livello offre una maggiore sicurezza garantendo che, anche se un livello di crittografia fosse compromesso, i dati rimangano protetti dal secondo livello. Questa sicurezza aggiuntiva comporta un aumento del sovraccarico di elaborazione e delle chiamate AWS KMS API, il che rappresenta il costo più elevato rispetto allo SSE-KMS standard. [Per ulteriori informazioni sui prezzi di DSSE-KMS, consulta i [AWS KMS key concetti](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) nella Guida per gli sviluppatori e i prezzi. AWS Key Management ServiceAWS KMS](https://aws.amazon.com/kms/pricing)

Quando usi DSSE-KMS con un bucket Amazon S3, AWS KMS le chiavi devono trovarsi nella stessa regione del bucket. Inoltre, quando per l'oggetto è richiesta la crittografia DSSE-KMS, il checksum S3 come parte dei metadati dell'oggetto viene archiviato in formato crittografato. Per ulteriori informazioni sui checksum, consulta [Verifica dell'integrità degli oggetti in Amazon S3](checking-object-integrity.md).

**Nota**  
Le chiavi bucket S3 non sono supportate per DSSE-KMS.

Le principali differenze tra DSSE-KMS e SSE-KMS standard sono:
+ **Livelli di crittografia:** DSSE-KMS applica due livelli indipendenti di crittografia AES-256, mentre lo standard SSE-KMS applica un solo livello
+ **Sicurezza:** DSSE-KMS offre una protezione avanzata contro potenziali vulnerabilità di crittografia
+ **Conformità:** DSSE-KMS consente di soddisfare i requisiti normativi che impongono la crittografia a più livelli
+ **Prestazioni:** DSSE-KMS ha una latenza leggermente superiore grazie all’ulteriore elaborazione della crittografia
+ **Costo:** DSSE-KMS comporta costi più elevati a causa dell'aumento del sovraccarico di calcolo e delle operazioni aggiuntive AWS KMS 

**Richiede la crittografia lato server a doppio livello con (DSSE-KMS) AWS KMS keys**  
Per richiedere la crittografia lato server a doppio livello di tutti gli oggetti in uno specifico bucket Amazon S3, è possibile utilizzare una policy del bucket. Ad esempio, la seguente policy del bucket rifiuta a chiunque l'autorizzazione al caricamento dell'oggetto (`s3:PutObject`) se la richiesta non include un'intestazione `x-amz-server-side-encryption` che richiede la crittografia lato server con DSSE-KMS.

------
#### [ JSON ]

****  

```
{
             "Version":"2012-10-17",		 	 	 
             "Id": "PutObjectPolicy",
             "Statement": [{
                   "Sid": "DenyUnEncryptedObjectUploads",
                   "Effect": "Deny",
                   "Principal": {
                       "AWS": "arn:aws:iam::111122223333:root"
                   },
                   "Action": "s3:PutObject",
                   "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
                   "Condition": {
                      "StringNotEquals": {
                         "s3:x-amz-server-side-encryption": "aws:kms:dsse"
                      }
                   }
                }
             ]
          }
```

------

**Topics**
+ [

# Specificazione della crittografia lato server a doppio livello con chiavi (DSSE-KMS) AWS KMS
](specifying-dsse-encryption.md)

# Specificazione della crittografia lato server a doppio livello con chiavi (DSSE-KMS) AWS KMS
<a name="specifying-dsse-encryption"></a>

È possibile applicare la crittografia quando stai caricando un nuovo oggetto o copiando 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**  
Puoi usare più regioni AWS KMS keys 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](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

**Nota**  
Se desideri utilizzare una chiave KMS di proprietà di un account diverso, devi avere l'autorizzazione necessaria per l'uso della chiave. Per ulteriori informazioni sulle autorizzazioni tra account per le chiavi KMS, vedi [Creazione di chiavi KMS utilizzabili da altri account](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) nella *Guida per gli sviluppatori di AWS Key Management Service *. 

## Utilizzo della console S3
<a name="add-object-encryption-dsse"></a>

Questa sezione descrive come impostare o modificare il tipo di crittografia di un oggetto per utilizzare la crittografia lato server a doppio livello con AWS Key Management Service (AWS KMS) chiavi (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 o per modificare la [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)crittografia di un oggetto. [AWS SDKs](CopyingObjectsMPUapi.md)
Per un elenco delle autorizzazioni aggiuntive necessarie per modificare la crittografia di un oggetto, consulta [Autorizzazioni necessarie per le operazioni API di Amazon S3](using-with-s3-policy-actions.md). Per esempi di policy che concedono questa autorizzazione, consulta [Esempi di policy basate sull'identità per Amazon S3](example-policies-s3.md).
Se si modifica la crittografia di un oggetto, viene creato un nuovo oggetto per sostituire quello precedente. Se è abilitata la funzione Controllo delle versioni S3, viene creata una nuova versione dell'oggetto e l'oggetto esistente diventa 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**

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. 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.

1. Seleziona la casella di controllo degli oggetti da modificare.

1. Nel menu **Azioni**, scegli **Modifica crittografia lato server** dall'elenco di opzioni visualizzato.

1. Scorrere fino alla sezione **Crittografia lato server**.

1. In **Impostazioni di crittografia**, scegli **Utilizza le impostazioni del bucket per la crittografia predefinita** o **Ignora le impostazioni del bucket per la crittografia predefinita**.

1. Se scegli **Sostituisci impostazioni del bucket per la crittografia predefinita**, configura le seguenti impostazioni di crittografia.

   1. In **Tipo di crittografia**, scegli Crittografia **lato server a doppio livello con AWS Key Management Service chiavi (DSSE-KMS**). 

   1. 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 vengono visualizzate sia la Chiave gestita da AWS chiave (`aws/s3`) che quella gestita dal cliente. Per ulteriori informazioni sulle chiavi gestite dal cliente, consulta [Chiavi gestite dal cliente e chiavi AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) nella *Guida per gli sviluppatori di AWS Key Management Service *.
      + Per inserire l'ARN della chiave KMS, scegli **Inserisci AWS KMS key ARN**, quindi inserisci l'ARN della chiave KMS nel campo visualizzato. 
      + **Per creare una nuova chiave gestita dal cliente nella AWS KMS console, scegli Crea una chiave KMS.**

        Per ulteriori informazioni sulla creazione di una AWS KMS key, consulta [Creating keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) nella *AWS Key Management Service Developer Guide*.
**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 chiavi KMS di crittografia simmetriche e non chiavi KMS asimmetriche. Per ulteriori informazioni, consulta [Identificazione delle chiavi KMS asimmetriche](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

1. Per **Chiave bucket** scegli **Disabilita**. Le chiavi bucket S3 non sono supportate per DSSE-KMS.

1. 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**. Scegliete **Specificate impostazioni** per specificare le impostazioni per la classe di archiviazione ACLs, i tag degli oggetti, i metadati, la crittografia lato server e i checksum aggiuntivi.

1. Scegli **Save changes** (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.

## Utilizzo della REST API
<a name="DSSEUsingRESTAPI"></a>

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 (DSSE-KMS) per crittografare i dati. AWS KMS keys Per fare ciò, aggiungi 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 specifichi l'intestazione `x-amz-server-side-encryption` con il valore `aws:kms:dsse`, puoi anche utilizzare le intestazioni di richiesta seguenti:
+ `x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId`
+ `x-amz-server-side-encryption-context: SSEKMSEncryptionContext`

**Topics**
+ [

### Operazioni REST API di Amazon S3 che supportano DSSE-KMS
](#dsse-request-headers-kms)
+ [

### Contesto di crittografia (`x-amz-server-side-encryption-context`)
](#s3-dsse-encryption-context)
+ [

### AWS KMS ID chiave () `x-amz-server-side-encryption-aws-kms-key-id`
](#s3-dsse-key-id-api)

### Operazioni REST API di Amazon S3 che supportano DSSE-KMS
<a name="dsse-request-headers-kms"></a>

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`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html): quando carichi i dati utilizzando l'operazione API `PUT`, è possibile specificare queste intestazioni di richiesta. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html): quando copi un oggetto, disponi di 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](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html): quando utilizzi un'operazione `POST` per caricare un oggetto, anziché le intestazioni di richiesta, specifica le stesse informazioni dei campi del modulo.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html): 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`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)

**Importante**  
Tutte `GET` le `PUT` richieste relative a un oggetto protetto da hanno AWS KMS esito negativo se non vengono effettuate 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` e `HEAD` per evitare di ricevere un errore HTTP 400 (richiesta non valida).

### Contesto di crittografia (`x-amz-server-side-encryption-context`)
<a name="s3-dsse-encryption-context"></a>

Se si specifica `x-amz-server-side-encryption:aws:kms:dsse`, l'API 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`.

Facoltativamente, è possibile fornire una coppia di contesto di crittografia aggiuntiva utilizzando l'intestazione `x-amz-server-side-encryption-context`. 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.

Per informazioni sul contesto di crittografia in Amazon S3, consulta la sezione [Contesto di crittografia](UsingKMSEncryption.md#encryption-context). Per informazioni generali sul contesto di crittografia, consulta [Concetti di AWS Key Management Service : Contesto di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) nella *Guida per gli sviluppatori di AWS Key Management Service *. 

### AWS KMS ID chiave () `x-amz-server-side-encryption-aws-kms-key-id`
<a name="s3-dsse-key-id-api"></a>

Puoi 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'`x-amz-server-side-encryption:aws:kms:dsse`intestazione ma non la `x-amz-server-side-encryption-aws-kms-key-id` fornisci, Amazon S3 utilizza `aws/s3` () per Chiave gestita da AWS proteggere i dati. Se desideri utilizzare una chiave gestita dal cliente, devi fornire l'intestazione `x-amz-server-side-encryption-aws-kms-key-id` della chiave gestita dal cliente.

**Importante**  
Quando utilizzi una AWS KMS key crittografia lato server in Amazon S3, devi scegliere una chiave KMS di crittografia simmetrica. Amazon S3 supporta solo chiavi KMS di crittografia simmetrica. Per ulteriori informazioni sulle chiavi, consulta [Chiavi KMS di crittografia simmetrica](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) nella *Guida per gli sviluppatori di AWS Key Management Service *.

## Utilizzando il AWS CLI
<a name="DSSEUsingCLI"></a>

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 example-key-id` per aggiungere la [chiave AWS KMS gestita dal cliente](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) che hai creato. Se specifichi `--server-side-encryption aws:kms:dsse` ma non fornisci un ID di AWS KMS chiave, Amazon S3 utilizzerà la chiave AWS gestita ()`aws/s3`.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id --body filepath
```

È possibile crittografare un oggetto non crittografato con DSSE-KMS copiando nuovamente l'oggetto nella sua posizione.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --copy-source amzn-s3-demo-bucket/example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id
```