

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 (SSE-KMS) AWS KMS
<a name="UsingKMSEncryption"></a>

**Importante**  
Amazon S3 ora applica la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) come livello di base della crittografia per ogni bucket di 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 CloudTrail log, in S3 Inventory, S3 Storage Lens, nella console Amazon S3 e come intestazione di risposta dell'API Amazon S3 aggiuntiva nella e. AWS CLI AWS SDKs Per ulteriori informazioni, consulta [Domande frequenti sulla crittografia predefinita](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

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 le chiavi gestite da Amazon S3 (SSE-S3) per il caricamento di nuovi oggetti.

Salvo diversa indicazione, per crittografare gli oggetti i bucket utilizzano SSE-S3 per impostazione predefinita. Tuttavia, puoi scegliere di configurare i bucket per utilizzare invece la crittografia lato server con () chiavi (SSE-KMS). AWS Key Management Service AWS KMS Per ulteriori informazioni, consulta [Specificare la crittografia lato server con AWS KMS (SSE-KMS)](specifying-kms-encryption.md).

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 viene richiesto per l'oggetto, il checksum S3 (come parte dei metadati dell'oggetto) viene memorizzato in forma criptata. Per ulteriori informazioni sui checksum, consulta [Verifica dell'integrità degli oggetti in Amazon S3](checking-object-integrity.md).

[Se utilizzi le chiavi KMS, puoi utilizzarle AWS KMS tramite l'API o per effettuare le seguenti operazioni: [Console di gestione AWS](https://console.aws.amazon.com/kms)AWS KMS](https://docs.aws.amazon.com/kms/latest/APIReference/) 
+ Creare, visualizzare, modificare, monitorare, abilitare o disabilitare, ruotare e pianificare l'eliminazione delle chiavi KMS in modo centralizzato.
+ Definire le policy che controllano come e da chi possono essere utilizzate le chiavi KMS.
+ Controllare l’utilizzo delle chiavi KMS per verificarne l’uso corretto. Il controllo è supportato dall’[API AWS KMS](https://docs.aws.amazon.com/kms/latest/APIReference/), ma non dalla [console AWS KMS](https://console.aws.amazon.com/kms).



I controlli di sicurezza inclusi AWS KMS possono aiutarti a soddisfare i requisiti di conformità relativi alla crittografia. Puoi utilizzare queste chiavi KMS per proteggere i dati nei bucket Amazon S3. Quando utilizzi la crittografia SSE-KMS 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) nella *Guida per gli sviluppatori di AWS Key Management Service * e i [Prezzi di AWS KMS](https://aws.amazon.com/kms/pricing).

Per istruzioni su come consentire agli utenti IAM di accedere ai bucket crittografati con KMS, consulta La sezione Il [mio bucket Amazon S3 ha una crittografia predefinita utilizzando una chiave personalizzata. AWS KMS Come posso consentire agli utenti di scaricare e caricare file nel bucket?](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) nel AWS re:Post Knowledge Center.

**Permissions**  
Per effettuare correttamente una richiesta `PutObject` per crittografare un oggetto con una chiave AWS KMS su Amazon S3, sono necessarie le autorizzazioni `kms:GenerateDataKey` per la chiave. Per scaricare un oggetto crittografato con un AWS KMS key, sono necessarie `kms:Decrypt` le autorizzazioni per la chiave. Per [eseguire un caricamento in più parti](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) per crittografare un oggetto con un AWS KMS key, è necessario disporre delle `kms:Decrypt` autorizzazioni `kms:GenerateDataKey` e relative alla chiave.

**Importante**  
Esamina attentamente le autorizzazioni concesse nelle policy delle chiavi KMS. Limita sempre le autorizzazioni relative alle policy chiave KMS gestite dal cliente solo ai responsabili e ai AWS servizi IAM che devono accedere all'azione chiave pertinente. AWS KMS [Per ulteriori informazioni, consulta Politiche chiave in. AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)

**Topics**
+ [AWS KMS keys](#aws-managed-customer-managed-keys)
+ [Chiavi bucket Amazon S3](#sse-kms-bucket-keys)
+ [Richiesta della crittografia lato server](#require-sse-kms)
+ [Contesto di crittografia](#encryption-context)
+ [Invio di richieste per oggetti AWS KMS crittografati](#aws-signature-version-4-sse-kms)
+ [Specificare la crittografia lato server con AWS KMS (SSE-KMS)](specifying-kms-encryption.md)
+ [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md)

## AWS KMS keys
<a name="aws-managed-customer-managed-keys"></a>

Quando utilizzi la crittografia lato server con AWS KMS (SSE-KMS), puoi utilizzare la [chiave AWS gestita predefinita oppure puoi specificare una chiave gestita](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) [dal cliente che hai già creato](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). 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 consiste nel crittografare i dati di testo non crittografato con una chiave di dati e quindi nel crittografare la chiave di dati con una chiave KMS. Per ulteriori informazioni sulla crittografia envelope, consulta [Crittografia envelope](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#enveloping) nella *Guida per sviluppatori di AWS Key Management Service *.

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

**Nota**  
Gli oggetti crittografati mediante SSE-KMS con [Chiavi gestite da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) non possono essere condivisi tra più account. [Se devi condividere i dati SSE-KMS tra più account, devi utilizzare una chiave gestita dal cliente da.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) 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 configuri SSE-KMS per il bucket, potrai specificare la chiave gestita dal cliente esistente. Per ulteriori informazioni sulla chiave di crittografia simmetrica, 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 *.

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 dal cliente, consulta [Customer keys and AWS keys](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) 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 chiavi KMS standard, hai la responsabilità di garantire la disponibilità e la durata 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](https://docs.aws.amazon.com//kms/latest/developerguide/keystore-external.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

### Utilizzo della crittografia SSE-KMS per operazioni multi-account
<a name="sse-kms-cross-account-operations"></a>

Quando si utilizza la crittografia per operazioni multi-account, tieni presente quanto segue:
+ Se un AWS KMS key Amazon Resource Name (ARN) o un alias non viene fornito al momento della richiesta o tramite la configurazione di crittografia predefinita del bucket, il Chiave gestita da AWS (`aws/s3`) dell'account di caricamento viene utilizzato per la crittografia ed è necessario per la decrittografia.
+ Chiave gestita da AWS (`aws/s3`) può essere utilizzata come chiave KMS per operazioni su più account quando i principali di caricamento e accesso AWS Identity and Access Management (IAM) provengono dagli stessi. Account AWS
+ Se desideri concedere l'accesso multi-account agli oggetti S3, utilizza una chiave gestita dal cliente. È possibile configurare la policy di una chiave gestita dal cliente per consentire l'accesso da un altro account.
+ Se si specifica una chiave KMS gestita dal cliente, si consiglia di utilizzare un ARN della chiave KMS completamente qualificato. Se invece utilizzi un alias di chiave KMS, AWS KMS risolve la chiave all'interno dell'account del richiedente. Ciò potrebbe comportare la crittografia dei dati con una chiave KMS di proprietà del richiedente e non del proprietario del bucket.
+ È necessario specificare una chiave per cui il richiedente ha ottenuto l'autorizzazione `Encrypt`. Per ulteriori informazioni, consulta l'argomento relativo all'[autorizzazione concessa agli utenti delle chiavi di utilizzare una chiave KMS per le operazioni di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) nella *Guida per gli sviluppatori di AWS Key Management Service *.

Per ulteriori informazioni su quando utilizzare le chiavi gestite dal cliente e le chiavi KMS 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](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)?

### Flusso di lavoro della crittografia SSE-KMS
<a name="sse-kms-encryption-workflow"></a>

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 di dati](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#data-keys) in testo non formattato e una copia della chiave crittografata con la chiave KMS specificata.

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

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

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

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

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

### Verifica della crittografia SSE-KMS
<a name="sse-kms-encryption-audit"></a>

Per identificare le richieste che specificano SSE-KMS, puoi utilizzare i parametri **All SSE-KMS requests** (Tutte le richieste SSE-KMS) e **% all SSE-KMS requests** (% tutte le richieste SSE-KMS) 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. È inoltre possibile utilizzare il conteggio dei bucket abilitati SSE-KMS e la % di bucket abilitati SSE-KMS per capire il conteggio dei bucket che (SSE-KMS) per la [crittografia predefinita dei bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html). Per ulteriori informazioni, consulta [ Valutazione dell'attività e dell'utilizzo dello storage con S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html). Per un elenco completo dei parametri, consulta [Glossario dei parametri di S3 Storage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html).

Per verificare l'utilizzo delle AWS KMS chiavi per i dati crittografati SSE-KMS, puoi utilizzare i log. AWS CloudTrail Puoi ottenere informazioni dettagliate sulle tue [operazioni crittografiche](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), ad esempio e. [https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html) CloudTrail supporta numerosi [valori di attributo](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) per filtrare la ricerca, tra cui il nome dell'evento, il nome utente e l'origine dell'evento. 

## Chiavi bucket Amazon S3
<a name="sse-kms-bucket-keys"></a>

Quando configuri la crittografia lato server utilizzando AWS KMS (SSE-KMS), puoi configurare i bucket per utilizzare 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 si configura il bucket per utilizzare una chiave di bucket S3 per SSE-KMS su nuovi oggetti, AWS KMS genera una chiave a livello di bucket che viene utilizzata per creare [chiavi di dati](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) 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 le chiavi bucket Amazon S3](bucket-key.md).

## Richiesta della crittografia lato server
<a name="require-sse-kms"></a>

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 di bucket rifiuta a chiunque l'autorizzazione al caricamento dell'oggetto (`s3:PutObject`) se la richiesta non include un'intestazione `x-amz-server-side-encryption-aws-kms-key-id` che richiede la crittografia lato server con SSE-KMS.

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

****  

```
{
   "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 usare la chiave condition. `s3:x-amz-server-side-encryption-aws-kms-key-id` Per specificare la chiave KMS, 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 esiste. `s3:x-amz-server-side-encryption-aws-kms-key-id` 

**Nota**  
Quando si carica un oggetto, è possibile specificare la chiave KMS utilizzando l'intestazione `x-amz-server-side-encryption-aws-kms-key-id` o affidarsi alla [configurazione predefinita della crittografia del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html). Se la tua PutObject richiesta è specificata `aws:kms` nell'`x-amz-server-side-encryption`intestazione, ma non specifica l'`x-amz-server-side-encryption-aws-kms-key-id`intestazione, 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 per Amazon S3, consulta [Chiavi di condizione per Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) in *Riferimento alle autorizzazioni di servizio*.

## Contesto di crittografia
<a name="encryption-context"></a>

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](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/concepts.html#digital-sigs) (AAD) per supportare la crittografia autenticata.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations#digital-sigs) Per ulteriori informazioni sul contesto di crittografia, consulta il [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 *. 

Per impostazione predefinita, Amazon S3 utilizza il nome della risorsa Amazon (ARN) dell'oggetto o del bucket come coppia di contesto di crittografia: 
+ **Se utilizzi SSE-KMS senza abilitare una chiave bucket S3**, l'ARN del oggetto viene utilizzato come contesto di crittografia.

  ```
  arn:aws:s3:::object_ARN
  ```
+ **Se utilizzi SSE-KMS e abiliti una chiave di bucket S3**, l'ARN del bucket viene utilizzato come contesto di crittografia. Per ulteriori informazioni sui bucket S3, consulta la sezione [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md).

  ```
  arn:aws:s3:::bucket_ARN
  ```

[Facoltativamente, puoi fornire una coppia di contesti di crittografia aggiuntiva utilizzando l'`x-amz-server-side-encryption-context`intestazione in una richiesta s3:. PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_RequestSyntax) 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 valore ARN del contesto di crittografia predefinito per tenere traccia delle richieste pertinenti AWS CloudTrail visualizzando quale ARN Amazon S3 è 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 utilizzi SSE-KMS con la funzione opzionale chiavi bucket S3, il valore di contesto di crittografia è l'ARN del bucket.

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

## Invio di richieste per oggetti AWS KMS crittografati
<a name="aws-signature-version-4-sse-kms"></a>

**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 tramite HTTP. 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)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) e [Processo di firma Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).

**Importante**  
Se l'oggetto utilizza SSE-KMS, non inviare intestazioni di richiesta di crittografia per le richieste `GET` e `HEAD`. In caso contrario, riceverai un errore HTTP 400 Bad Request (HTTP 400 - Richiesta non valida).

**Topics**
+ [AWS KMS keys](#aws-managed-customer-managed-keys)
+ [Chiavi bucket Amazon S3](#sse-kms-bucket-keys)
+ [Richiesta della crittografia lato server](#require-sse-kms)
+ [Contesto di crittografia](#encryption-context)
+ [Invio di richieste per oggetti AWS KMS crittografati](#aws-signature-version-4-sse-kms)
+ [Specificare la crittografia lato server con AWS KMS (SSE-KMS)](specifying-kms-encryption.md)
+ [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md)

# Specificare la crittografia lato server con AWS KMS (SSE-KMS)
<a name="specifying-kms-encryption"></a>

Tutti i bucket Amazon S3 hanno la crittografia configurata per impostazione predefinita e tutti i nuovi oggetti caricati in un bucket S3 vengono automaticamente crittografati quando sono a riposo. La crittografia lato server con le chiavi gestite da Amazon S3 (SSE-S3) è la configurazione predefinita della crittografia per ogni bucket di Amazon S3. Per utilizzare un diverso tipo di crittografia, puoi specificare il tipo di crittografia lato server da utilizzare nelle richieste `PUT` S3 oppure aggiornare la configurazione di crittografia predefinita nel bucket di destinazione. 

Se desideri specificare un tipo di crittografia diverso nelle tue `PUT` richieste, puoi utilizzare la crittografia lato server con () chiavi AWS Key Management Service (SSE-KMS AWS KMS), la crittografia lato server a due livelli con chiavi (DSSE-KMS) o la crittografia lato server con AWS KMS chiavi fornite dal cliente (SSE-C). Per impostare una configurazione di crittografia predefinita diversa nel bucket di destinazione puoi utilizzare SSE-KMS o DSSE-KMS.

Per ulteriori informazioni su come modificare la configurazione di crittografia predefinita per i bucket per uso generico, consulta [Configurazione della crittografia predefinita](default-bucket-encryption.md). 

Quando modifichi la configurazione di crittografia predefinita del bucket in SSE-KMS, il tipo di crittografia degli oggetti Amazon S3 esistenti nel bucket non viene modificato. Per modificare il tipo di crittografia degli oggetti preesistenti dopo aver aggiornato la configurazione di crittografia predefinita a SSE-KMS, puoi utilizzare Operazioni in batch Amazon S3. Si fornisce a Operazioni in batch S3 un elenco di oggetti e Operazioni in batch richiama la rispettiva operazione API. È possibile utilizzare l’azione [Copia oggetti](batch-ops-copy-object.md) per copiare gli oggetti esistenti, scrivendoli nello stesso bucket degli oggetti crittografati SSE-KMS. Un solo processo di operazioni in batch può eseguire l'operazione specificata su miliardi di oggetti. Per ulteriori informazioni, consulta [Esecuzione di operazioni sugli oggetti in blocco con le operazioni in batch](batch-ops.md) e il post [Come crittografare retroattivamente gli oggetti esistenti in Amazon S3 utilizzando Inventario S3, Amazon Athena e Operazioni in batch S3](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) nel *Blog dell’archiviazione AWS *. 

Puoi specificare SSE-KMS utilizzando la console Amazon S3, le operazioni API REST e il (). AWS SDKs 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 si desidera utilizzare una chiave KMS di proprietà di un altro account, è necessario avere l'autorizzazione a utilizzarla. 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-kms"></a>

Questo argomento descrive come impostare o modificare il tipo di crittografia di un oggetto per utilizzare la crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (SSE-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 [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)o [AWS SDKs](CopyingObjectsMPUapi.md)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](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**.
**Importante**  
Se usi l'opzione SSE-KMS per la configurazione della crittografia predefinita, vengono applicati i limiti di richieste al secondo (RPS) pari a AWS KMS. Per ulteriori informazioni sulle quote AWS KMS e su come richiedere un aumento delle quote, consulta [Quote](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) nella *Guida per gli sviluppatori di AWS Key Management Service *. 

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 con AWS Key Management Service chiavi (SSE-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 Chiave gestita da AWS (`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 nello Regione AWS stesso 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 simmetriche e asimmetriche](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

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="KMSUsingRESTAPI"></a>

Quando crei un oggetto, ovvero quando carichi un nuovo oggetto o copi un oggetto esistente, puoi specificare l'uso della crittografia lato server con le AWS KMS keys (SSE-KMS) per crittografare i dati. Per fare ciò, aggiungi l'intestazione `x-amz-server-side-encryption` alla richiesta. Impostare il valore dell'intestazione sull'algoritmo di crittografia `aws:kms`. Amazon S3 conferma che l'oggetto è stato archiviato utilizzando SSE-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`, puoi anche utilizzare le intestazioni di richiesta seguenti:
+ `x-amz-server-side-encryption-aws-kms-key-id`
+ `x-amz-server-side-encryption-context`
+ `x-amz-server-side-encryption-bucket-key-enabled`

**Topics**
+ [Operazioni REST API di Amazon S3 che supportano SSE-KMS](#sse-request-headers-kms)
+ [Contesto di crittografia (`x-amz-server-side-encryption-context`)](#s3-kms-encryption-context)
+ [AWS KMS ID chiave () `x-amz-server-side-encryption-aws-kms-key-id`](#s3-kms-key-id-api)
+ [Chiavi bucket S3 (`x-amz-server-side-encryption-aws-bucket-key-enabled`)](#bucket-key-api)

### Operazioni REST API di Amazon S3 che supportano SSE-KMS
<a name="sse-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 si copia un oggetto, si ha un oggetto di origine e un oggetto di destinazione. Quando si passano le intestazioni SSE-KMS con l'operazione `CopyObject`, queste vengono applicate solo all'oggetto di destinazione. Quando si copia un oggetto esistente, indipendentemente dal fatto che l'oggetto di partenza sia criptato o meno, l'oggetto di destinazione non viene criptato, a meno che non si richieda esplicitamente la crittografia lato server.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) - Quando si usa un'operazione `POST` per caricare un oggetto, invece delle intestazioni della richiesta, si forniscono le stesse informazioni nei 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 si caricano oggetti di grandi dimensioni utilizzando l'operazione API di caricamento multiparte, è possibile specificare queste intestazioni. Queste intestazioni vengono specificate nella richiesta `CreateMultipartUpload`.

Le intestazioni di risposta delle seguenti operazioni REST API restituiscono l'intestazione `x-amz-server-side-encryption` quando un oggetto viene memorizzato utilizzando la crittografia lato server.
+ [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)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](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 le richieste di `GET` e `PUT` per un oggetto protetto da AWS KMS falliscono se non si effettuano queste richieste utilizzando Secure Sockets Layer (SSL), Transport Layer Security (TLS) o Signature Version 4.
Se il tuo oggetto utilizza SSE-KMS, non inviare le intestazioni delle richieste di crittografia per `GET` richieste e `HEAD` richieste, altrimenti riceverai un errore HTTP 400. BadRequest

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

Se si specifica `x-amz-server-side-encryption:aws:kms`, 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 l'oggetto o il bucket Amazon Resource Name (ARN) come coppia di contesto di crittografia. Se utilizzi SSE-KMS senza abilitare una chiave bucket S3, usa l'ARN dell'oggetto come contesto di crittografia, ad esempio `arn:aws:s3:::object_ARN`. Se invece utilizzi SSE-KMS e abiliti una chiave bucket S3, usa l'ARN del bucket per il contesto di crittografia, ad esempio `arn:aws:s3:::bucket_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 è criptato, assicurarsi che non contenga 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-kms-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'intestazione `x-amz-server-side-encryption:aws:kms`, 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 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 *.

### Chiavi bucket S3 (`x-amz-server-side-encryption-aws-bucket-key-enabled`)
<a name="bucket-key-api"></a>

È possibile utilizzare l'intestazione della richiesta `x-amz-server-side-encryption-aws-bucket-key-enabled` per abilitare o disabilitare un bucket S3 Key a livello di oggetto. S3 Bucket Keys riduce i costi delle AWS KMS richieste diminuendo il traffico delle richieste da Amazon S3 a. AWS KMS Per ulteriori informazioni, consulta [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md).

Se specifichi l'intestazione `x-amz-server-side-encryption:aws:kms` ma non fornisci l'intestazione `x-amz-server-side-encryption-aws-bucket-key-enabled`, per crittografare l'oggetto saranno utilizzate le impostazioni della chiave bucket S3 per il bucket di destinazione. Per ulteriori informazioni, consulta [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md).

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

Per utilizzare i seguenti AWS CLI comandi di esempio, `user input placeholders` sostituiscili con le tue informazioni.

Quando caricate un nuovo oggetto o copiate un oggetto esistente, potete specificare l'uso della crittografia lato server con AWS KMS chiavi per crittografare i dati. Per fare ciò, aggiungi l'intestazione `--server-side-encryption aws:kms` alla richiesta. Utilizza il `--ssekms-key-id example-key-id` per aggiungere la [AWS KMS chiave 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`, ma non fornisci un ID di AWS KMS chiave, Amazon S3 utilizzerà una chiave AWS gestita.

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

Puoi inoltre abilitare o disabilitare le chiavi di bucket Amazon S3 nelle operazioni PUT o COPY aggiungendo `--bucket-key-enabled` o `--no-bucket-key-enabled`. Amazon S3 Bucket Keys può ridurre i costi delle AWS KMS richieste diminuendo il traffico delle richieste da Amazon S3 a. AWS KMS Per ulteriori informazioni, consulta [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-key.html).

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

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

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms --sse-kms-key-id example-key-id --body filepath
```

## Utilizzando il AWS SDKs
<a name="kms-using-sdks"></a>

Durante l'utilizzo AWS SDKs, puoi richiedere che Amazon S3 venga utilizzato AWS KMS keys per la crittografia lato server. Gli esempi seguenti mostrano come usare SSE-KMS con Java e.NET. AWS SDKs Per informazioni su altri SDKs, consulta [Codice di esempio e librerie](https://aws.amazon.com/code) nel AWS Developer Center.

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

### Operazione `CopyObject`
<a name="kms-copy-operation"></a>

Quando copi gli oggetti, puoi aggiungere le stesse proprietà della richiesta (`ServerSideEncryptionMethod` e `ServerSideEncryptionKeyManagementServiceKeyId`) per richiedere che Amazon S3 utilizzi una AWS KMS key. Per ulteriori informazioni sulla copia di oggetti, consulta la sezione [Copia, spostamento e denominazione di oggetti](copy-object.md). 

### Operazione `PUT`
<a name="kms-put-operation"></a>

------
#### [ Java ]

Quando carichi un oggetto utilizzando il AWS SDK per Java, puoi richiedere ad Amazon S3 di utilizzare AWS KMS key un oggetto aggiungendo `SSEAwsKeyManagementParams` la proprietà come mostrato nella seguente richiesta:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());
```

In questo caso, Amazon S3 utilizza Chiave gestita da AWS ()`aws/s3`. Per ulteriori informazioni, consulta [Utilizzo della crittografia lato server con chiavi (SSE-KMS) AWS KMS](UsingKMSEncryption.md). È possibile creare facoltativamente una chiave KMS di crittografia simmetrica e specificarla nella richiesta, come mostrato nell'esempio seguente:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));
```

Per ulteriori informazioni sulla creazione di chiavi gestite dal cliente, consulta [Programming the AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) nella *AWS Key Management Service Developer Guide*.

Per esempi di codice di utilizzo per il caricamento di un oggetto, consulta gli argomenti elencati di seguito. Per usare questi esempi dovrai aggiornare gli esempi di codice e fornire informazioni sulla crittografia come mostrato nel frammento di codice precedente.
+ Per il caricamento di un oggetto in un'unica operazione, consulta [Caricamento degli oggetti](upload-objects.md).
+ Per i caricamenti multiparte che utilizzano le operazioni API di caricamento multiparte di alto livello o di basso livello, consulta [Caricamento di un oggetto utilizzando il caricamento in più parti](mpu-upload-object.md). 

------
#### [ .NET ]

Quando carichi un oggetto utilizzando il AWS SDK per .NET, puoi richiedere ad Amazon S3 di utilizzare AWS KMS key un oggetto aggiungendo `ServerSideEncryptionMethod` la proprietà come mostrato nella seguente richiesta:

```
PutObjectRequest putRequest = new PutObjectRequest
 {
     BucketName = amzn-s3-demo-bucket,
     Key = keyName,
     // other properties
     ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS
 };
```

In questo caso, Amazon S3 utilizza il. Chiave gestita da AWS Per ulteriori informazioni, consulta [Utilizzo della crittografia lato server con chiavi (SSE-KMS) AWS KMS](UsingKMSEncryption.md). È possibile creare una propria chiave di crittografia simmetrica gestita dal cliente e specificarla nella richiesta, come mostrato nell'esempio seguente:

```
PutObjectRequest putRequest1 = new PutObjectRequest
{
  BucketName = amzn-s3-demo-bucket,
  Key = keyName,
  // other properties
  ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS,
  ServerSideEncryptionKeyManagementServiceKeyId = keyId
};
```

Per ulteriori informazioni sulla creazione di chiavi gestite dal cliente, consulta [Programming the AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) nella *AWS Key Management Service Developer Guide*. 

Per esempi di codice di utilizzo per il caricamento di un oggetto, consulta gli argomenti elencati di seguito. Per usare questi esempi dovrai aggiornare gli esempi di codice e fornire informazioni sulla crittografia come mostrato nel frammento di codice precedente.
+ Per il caricamento di un oggetto in un'unica operazione, consulta [Caricamento degli oggetti](upload-objects.md).
+ Per i caricamenti multiparte che utilizzano le operazioni API di caricamento multiparte di alto livello o di basso livello, consulta [Caricamento di un oggetto utilizzando il caricamento in più parti](mpu-upload-object.md). 

------

### Predefinito URLs
<a name="kms-presigned-urls"></a>

------
#### [ Java ]

Quando si crea un URL prefirmato per un oggetto crittografato con AWS KMS key, è necessario specificare esplicitamente Signature Version 4, come mostrato nell'esempio seguente:

```
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setSignerOverride("AWSS3V4SignerType");
AmazonS3Client s3client = new AmazonS3Client(
        new ProfileCredentialsProvider(), clientConfiguration);
...
```

Per un esempio di codice, consulta [Condivisione di oggetti con presigned URLs](ShareObjectPreSignedURL.md). 

------
#### [ .NET ]

Quando si crea un URL prefirmato per un oggetto crittografato con AWS KMS key, è necessario specificare esplicitamente Signature Version 4, come mostrato nell'esempio seguente:

```
AWSConfigs.S3Config.UseSignatureVersion4 = true;
```

Per un esempio di codice, consulta [Condivisione di oggetti con presigned URLs](ShareObjectPreSignedURL.md).

------

# Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3
<a name="bucket-key"></a>

Amazon S3 Bucket Keys riduce il costo della crittografia lato server di Amazon S3 con AWS Key Management Service chiavi () (SSE-KMS).AWS 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 Con pochi clic nella Console di gestione AWS e senza alcuna modifica alle applicazioni client, potrai configurare il bucket in modo da utilizzare una chiave bucket S3 per la crittografia SSE-KMS sui nuovi oggetti.

**Nota**  
Le S3 Bucket Keys non sono supportate per la crittografia lato server a doppio livello con chiavi () (DSSE-KMS). AWS Key Management Service AWS KMS

## Chiavi bucket S3 per SSE-KMS
<a name="bucket-key-overview"></a>

I carichi di lavoro che accedono a milioni o miliardi di oggetti crittografati con SSE-KMS possono generare grandi volumi di richieste verso. AWS KMS[Quando usi SSE-KMS per proteggere i tuoi dati senza una S3 Bucket Key, Amazon S3 utilizza una chiave dati individuale per ogni oggetto. AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) In questo caso, Amazon S3 effettua una chiamata AWS KMS ogni volta che viene effettuata una richiesta su un oggetto crittografato con KMS. Per informazioni sul funzionamento di SSE-KMS, consulta [Utilizzo della crittografia lato server con chiavi (SSE-KMS) AWS KMS](UsingKMSEncryption.md). 

Quando configuri il bucket per utilizzare una chiave S3 Bucket per SSE-KMS, AWS genera una chiave a livello di bucket di breve durata da, quindi la conserva temporaneamente in S3. AWS KMS Questa chiave a livello di bucket creerà chiavi di dati per i nuovi oggetti durante il relativo ciclo di vita. Le S3 Bucket Key vengono utilizzate per un periodo di tempo limitato all'interno di Amazon S3, riducendo la necessità per S3 di effettuare richieste AWS KMS per completare le operazioni di crittografia. Ciò riduce il traffico da S3 a AWS KMS, consentendoti di accedere AWS KMS agli oggetti crittografati in Amazon S3 a una frazione del costo precedente.

Le chiavi univoche a livello di bucket vengono recuperate almeno una volta per richiedente per garantire che l'accesso del richiedente alla chiave venga acquisito in un evento. AWS KMS CloudTrail Amazon S3 tratta i chiamanti come richiedenti diversi quando utilizzano ruoli o account diversi o lo stesso ruolo con politiche di ambito diverse. AWS KMS i risparmi sulle richieste riflettono il numero di richiedenti, i modelli di richiesta e l'età relativa degli oggetti richiesti. Ad esempio, un numero inferiore di richiedenti, la richiesta di più oggetti in una finestra temporale limitata e la crittografia con la stessa chiave a livello di bucket comportano un risparmio maggiore.

**Nota**  
L'utilizzo di S3 Bucket Keys ti consente di risparmiare sui costi delle AWS KMS richieste diminuendo le richieste a AWS KMS for `Encrypt` e le `Decrypt` operazioni tramite l'uso di una chiave a livello di bucket. `GenerateDataKey` In base alla progettazione, le richieste successive che sfruttano questa chiave a livello di bucket non generano richieste AWS KMS API né convalidano l'accesso in base alla policy della chiave. AWS KMS 

Quando si configura una chiave bucket S3, gli oggetti già presenti nel bucket non utilizzano la chiave Bucket S3. Per configurare una chiave bucket S3 per gli oggetti esistenti, è possibile utilizzare un'operazione `CopyObject`. Per ulteriori informazioni, consulta [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md).

Amazon S3 condividerà una chiave S3 bucket solo per gli oggetti crittografati dalla stessa AWS KMS key. Le S3 Bucket Keys sono compatibili con le chiavi KMS create da AWS KMS, il [materiale chiave importato e il materiale chiave supportato](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) da archivi di [chiavi personalizzati](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).

![\[Diagramma che mostra la AWS KMS generazione di una chiave bucket che crea chiavi dati per oggetti in un bucket.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/S3-Bucket-Keys.png)


## Configurazione delle chiavi bucket S3
<a name="configure-bucket-key"></a>

Puoi configurare il tuo bucket per utilizzare una chiave S3 Bucket per SSE-KMS su nuovi oggetti tramite la console Amazon S3 o l'API REST. AWS SDKs AWS CLI Con le chiavi di bucket S3 abilitate sul bucket, gli oggetti caricati con una chiave SSE-KMS specificata diversamente utilizzeranno chiavi di bucket S3 proprie. Indipendentemente dall'impostazione della chiave di bucket S3, puoi includere l'intestazione `x-amz-server-side-encryption-bucket-key-enabled`con un valore `true` o `false` or nella richiesta, per sovrascrivere l'impostazione del bucket.

Prima di configurare il bucket per utilizzare una chiave bucket S3, consulta [Modifiche alla nota prima dell'abilitazione di una chiave bucket S3](#bucket-key-changes). 

### Configurazione di una chiave bucket S3 tramite la console di Amazon S3
<a name="configure-bucket-key-console"></a>

Quando crei un nuovo bucket, puoi configurarlo in modo da utilizzare una chiave bucket S3 per SSE-KMS su nuovi oggetti. Puoi inoltre configurare un bucket esistente in modo utilizzare una chiave bucket S3 per SSE-KMS su nuovi oggetti aggiornando le proprietà del bucket. 

Per ulteriori informazioni, consulta [Configurazione del bucket per utilizzare una chiave bucket S3 con SSE-KMS per nuovi oggetti](configuring-bucket-key.md).

### API REST e supporto SDK per S3 Bucket AWS CLI Keys AWS
<a name="configure-bucket-key-programmatic"></a>

Puoi utilizzare l'API REST o l' AWS SDK per configurare il tuo bucket in modo che utilizzi una S3 Bucket Key per SSE-KMS su nuovi oggetti. AWS CLI Puoi inoltre abilitare una chiave bucket S3 a livello di oggetto.

Per ulteriori informazioni, consulta gli argomenti seguenti: 
+ [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md)
+ [Configurazione del bucket per utilizzare una chiave bucket S3 con SSE-KMS per nuovi oggetti](configuring-bucket-key.md)

Le seguenti operazioni API supportano le chiavi bucket S3 per SSE-KMS:
+ [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
  + `ServerSideEncryptionRule` accetta il parametro `BucketKeyEnabled` per abilitare e disabilitare una chiave bucket S3.
+ [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
  + `ServerSideEncryptionRule` restituisce le impostazioni per `BucketKeyEnabled`.
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)[,](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html), e oggetto POST [CopyObject[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
  + L'intestazione della richiesta `x-amz-server-side-encryption-bucket-key-enabled` abilita o disabilita una chiave bucket S3 a livello di oggetto.
+ [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html), [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html), e [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
  + L'intestazione della risposta `x-amz-server-side-encryption-bucket-key-enabled` indica se una chiave bucket S3 è abilitata o disabilitata per un oggetto.

### Lavorare con CloudFormation
<a name="configure-bucket-key-cfn"></a>

In CloudFormation, la `AWS::S3::Bucket` risorsa include una proprietà di crittografia denominata `BucketKeyEnabled` che puoi utilizzare per abilitare o disabilitare una S3 Bucket Key. 

Per ulteriori informazioni, consulta [Usando CloudFormation](configuring-bucket-key.md#enable-bucket-key-cloudformation).

## Modifiche alla nota prima dell'abilitazione di una chiave bucket S3
<a name="bucket-key-changes"></a>

Prima di abilitare una chiave bucket S3, tieni presente le seguenti modifiche correlate:

### IAM o politiche chiave AWS KMS
<a name="bucket-key-policies"></a>

Se le tue policy AWS Identity and Access Management (IAM) o le policy AWS KMS chiave esistenti utilizzano il tuo oggetto Amazon Resource Name (ARN) come contesto di crittografia per perfezionare o limitare l'accesso alla tua chiave KMS, queste policy non funzioneranno con una S3 Bucket Key. Le chiavi bucket S3 utilizzano l'ARN del bucket come contesto di crittografia. Prima di abilitare una chiave S3 Bucket, aggiorna le policy IAM o le policy AWS KMS chiave per utilizzare l'ARN del bucket come contesto di crittografia.

Per ulteriori informazioni sul contesto di crittografia e sulle chiavi bucket S3, consulta [Contesto di crittografia](UsingKMSEncryption.md#encryption-context).

### CloudTrail eventi per AWS KMS
<a name="bucket-key-cloudtrail"></a>

Dopo aver abilitato una S3 Bucket Key, AWS KMS CloudTrail gli eventi registrano l'ARN del bucket anziché l'ARN dell'oggetto. Inoltre, nei log vengono visualizzati meno CloudTrail eventi KMS per gli oggetti SSE-KMS. Poiché il materiale chiave è limitato nel tempo in Amazon S3, vengono inviate meno richieste. AWS KMS

## Utilizzo di una chiave bucket S3 con la replica
<a name="bucket-key-replication"></a>

Le chiavi bucket S3 possono essere utilizzate con la replica della stessa regione (SRR) e con la replica tra regioni (CRR).

Quando Amazon S3 replica un oggetto crittografato, in genere conserva le impostazioni di crittografia dell'oggetto di replica nel bucket di destinazione. Tuttavia, se l'oggetto di origine non è crittografato e il bucket di destinazione utilizza la crittografia predefinita o una chiave bucket S3, Amazon S3 crittografa l'oggetto con la configurazione del bucket di destinazione. 

Negli esempi seguenti viene illustrato il funzionamento di una chiave bucket S3 con la replica. Per ulteriori informazioni, consulta [Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Example Esempio 1: l'oggetto di origine utilizza le chiavi bucket S3 e il bucket di destinazione usa la crittografia predefinita**  
Se l'oggetto di origine utilizza una chiave bucket S3 ma il bucket di destinazione utilizza la crittografia predefinita con SSE-KMS, l'oggetto di replica mantiene le impostazioni di crittografia della chiave bucket S3 nel bucket di destinazione. Il bucket di destinazione utilizza ancora la crittografia predefinita con SSE-KMS.   


**Example Esempio 2: l'oggetto di origine non è crittografato e il bucket di destinazione usa una chiave bucket S3 con SSE-KMS**  
Se l'oggetto di origine non è crittografato e il bucket di destinazione usa una chiave bucket S3 con SSE-KMS, l'oggetto di replica viene crittografato con una chiave bucket S3 utilizzando SSE-KMS nel bucket di destinazione. Ciò fa sì che l'`ETag` dell'oggetto di origine sia diverso dall'`ETag` dell'oggetto replicato. È necessario aggiornare le applicazioni che utilizzano l'`ETag` per tenere conto di tale differenza.

## Operazioni con le chiavi bucket S3
<a name="using-bucket-key"></a>

Per ulteriori informazioni sull'abilitazione e l'utilizzo di chiavi bucket S3, consulta le sezioni seguenti:
+ [Configurazione del bucket per utilizzare una chiave bucket S3 con SSE-KMS per nuovi oggetti](configuring-bucket-key.md)
+ [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md)
+ [Visualizzazione delle impostazioni per una chiave bucket S3](viewing-bucket-key-settings.md)

# Configurazione del bucket per utilizzare una chiave bucket S3 con SSE-KMS per nuovi oggetti
<a name="configuring-bucket-key"></a>

Quando configuri la crittografia lato server con le chiavi AWS Key Management Service (AWS KMS) (SSE-KMS), puoi configurare il bucket per utilizzare una S3 Bucket Key per SSE-KMS su nuovi oggetti. Le S3 Bucket Keys riducono il traffico delle richieste da Amazon S3 AWS KMS a SSE-KMS e riducono il costo. Per ulteriori informazioni, consulta [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md).

Puoi configurare il tuo bucket per utilizzare una chiave S3 Bucket per SSE-KMS su nuovi oggetti utilizzando la console Amazon S3, l'API REST,, () o. AWS SDKs AWS Command Line Interface AWS CLI CloudFormation Se desideri abilitare o disabilitare una chiave bucket S3 per gli oggetti esistenti, puoi utilizzare un'operazione `CopyObject`. Per ulteriori informazioni, consulta [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md) e [Utilizzo delle operazioni in batch per abilitare le chiavi S3 Bucket per SSE-KMS](batch-ops-copy-example-bucket-key.md).

Quando una chiave bucket S3 è abilitata per il bucket di origine o di destinazione, il contesto di crittografia sarà l'Amazon Resource Name (ARN) del bucket e non l'ARN dell'oggetto, ad esempio, `arn:aws:s3:::bucket_ARN`. Dovrai aggiornare le policy IAM per utilizzare l'ARN del bucket per il contesto di crittografia. Per ulteriori informazioni, consulta [Chiavi bucket S3 e replica](replication-config-for-kms-objects.md#bk-replication).

Negli esempi seguenti viene illustrato il funzionamento di una chiave bucket S3 con la replica. Per ulteriori informazioni, consulta [Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Prerequisiti**  
Prima di configurare il bucket per utilizzare una chiave bucket S3, consulta [Modifiche alla nota prima dell'abilitazione di una chiave bucket S3](bucket-key.md#bucket-key-changes).

**Topics**

## Utilizzo della console S3
<a name="enable-bucket-key"></a>

Nella console S3, puoi abilitare o disabilitare una chiave bucket S3 per un bucket nuovo o esistente. Gli oggetti nella console S3 ereditano l'impostazione della chiave bucket S3 dalla configurazione del bucket. Quando abiliti una chiave bucket S3 per il bucket, i nuovi oggetti caricati nel bucket utilizzano una chiave bucket S3 per SSE-KMS. 

**Caricamento, copia o modifica di oggetti nei bucket che dispongono di una chiave bucket S3 abilitata**  
Se carichi, modifichi o copi un oggetto in un bucket con una chiave bucket S3 abilitata, le impostazioni della chiave bucket S3 per tale oggetto potrebbero essere aggiornate in modo da allinearsi alla configurazione del bucket.

Se un oggetto ha già una chiave bucket S3 abilitata, le impostazioni della chiave bucket S3 per quell'oggetto non cambiano quando si copia o si modifica l'oggetto. Tuttavia, se modifichi o copi un oggetto che non dispone di una chiave bucket S3 attivata e il bucket di destinazione ha una configurazione con una chiave bucket S3, l'oggetto eredita le impostazioni della chiave bucket S3 del bucket di destinazione. Ad esempio, se l'oggetto di origine non ha una chiave bucket S3 abilitata ma il bucket di destinazione ne ha una, una chiave bucket S3 è abilitata per l'oggetto.

**Abilitazione di una chiave bucket S3 quando si crea un nuovo bucket**

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 pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Seleziona **Crea bucket**. 

1. Inserisci il nome del bucket e scegli la tua Regione AWS. 

1. In **Crittografia predefinita**, scegli **Chiave AWS Key Management Service (SSE-KMS)** per **Tipo di chiave di crittografia**.

1. In **Chiave AWS KMS ** effettua una delle seguenti operazioni per scegliere la chiave KMS:
   + Per scegliere da un elenco di chiavi KMS disponibili, scegli **Scegli tra le tue AWS KMS keys**, quindi scegli la tua **chiave KMS** dall'elenco delle chiavi disponibili.

     In questo elenco vengono visualizzate sia la chiave Chiave gestita da AWS (`aws/s3`) che quella gestita dai clienti. Per ulteriori informazioni sulle chiavi gestite dai clienti, consulta [Customer keys and AWS keys](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) nella *AWS Key Management Service Developer Guide*.
   + Per specificare l'ARN della chiave KMS, scegli **Inserisci l'ARN della AWS KMS key ** e quindi specifica 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*.

1. In **Chiave bucket** scegli **Abilita**. 

1. Scegliere **Create bucket (Crea bucket)**. 

   Amazon S3 crea il tuo bucket con una chiave bucket S3 abilitata. I nuovi oggetti caricati nel bucket utilizzeranno una chiave bucket S3. 

   Per disabilitare una chiave bucket S3, completa i passaggi precedenti e scegli **Disabilita**.

**Abilitazione di una chiave bucket S3 per un bucket esistente**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Bucket** scegli il bucket per cui desideri abilitare una chiave bucket S3.

1. Scegliere la scheda **Properties (Proprietà)**.

1. In **Default encryption (Crittografia di default)**, scegliere **Edit (Modifica)**.

1. In **Crittografia predefinita**, scegli **Chiave AWS Key Management Service (SSE-KMS)** per **Tipo di chiave di crittografia**.

1. In **Chiave AWS KMS ** effettua una delle seguenti operazioni per scegliere la chiave KMS:
   + Per scegliere da un elenco di chiavi KMS disponibili, **scegli tra le tue AWS KMS keys**, quindi scegli la tua **chiave KMS** dall'elenco delle chiavi disponibili.

     In questo elenco vengono visualizzate sia la chiave Chiave gestita da AWS (`aws/s3`) che quella gestita dai clienti. Per ulteriori informazioni sulle chiavi gestite dai clienti, consulta [Customer keys and AWS keys](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) nella *AWS Key Management Service Developer Guide*.
   + Per specificare l'ARN della chiave KMS, scegli **Inserisci l'ARN della AWS KMS key ** e quindi specifica 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*.

1. In **Chiave bucket** scegli **Abilita**. 

1. Seleziona **Salva modifiche**.

   Amazon S3 abilita una chiave bucket S3 per i nuovi oggetti aggiunti al tuo bucket. Gli oggetti esistenti non utilizzano la chiave bucket S3. Per configurare una chiave bucket S3 per gli oggetti esistenti, è possibile utilizzare un'operazione `CopyObject`. Per ulteriori informazioni, consulta [Configurazione di una chiave bucket S3 a livello di oggetto](configuring-bucket-key-object.md).

   Per disabilitare una chiave bucket S3, completa i passaggi precedenti e scegli **Disabilita**.

## Utilizzo dell'API REST
<a name="enable-bucket-key-rest"></a>

Puoi utilizzarla [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)per abilitare o disabilitare una S3 Bucket Key per il tuo bucket. Per configurare una S3 Bucket Key con`PutBucketEncryption`, usa il tipo di [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)dati, che include la crittografia predefinita con SSE-KMS. Puoi inoltre utilizzare una chiave gestita dal cliente specificando l'ID della chiave KMS per la chiave gestita dal cliente.  

Per ulteriori informazioni ed esempi di sintassi, consulta. [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 

## Utilizzo dell' AWS SDK for Java
<a name="enable-bucket-key-sdk"></a>

Nell'esempio seguente viene abilitata la crittografia bucket predefinita con SSE-KMS e una chiave bucket S3 utilizzando la AWS SDK per Java.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## Usando il AWS CLI
<a name="enable-bucket-key-cli"></a>

Nell'esempio seguente viene abilitata la crittografia bucket predefinita con SSE-KMS e una chiave bucket S3 utilizzando la AWS CLI. Sostituisci `user input placeholders` con le informazioni appropriate.

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## Usando CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

*Per ulteriori informazioni sulla configurazione di una S3 Bucket Key con CloudFormation, consulta [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html)la Guida per l'AWS CloudFormation utente.*

# Configurazione di una chiave bucket S3 a livello di oggetto
<a name="configuring-bucket-key-object"></a>

Quando esegui un'operazione PUT o COPY utilizzando l'API REST, oppure AWS SDKs AWS CLI, puoi abilitare o disabilitare una chiave S3 Bucket a livello di oggetto aggiungendo l'intestazione della `x-amz-server-side-encryption-bucket-key-enabled` richiesta con un valore or. `true` `false` S3 Bucket Keys riduce il costo della crittografia lato server utilizzando AWS Key Management Service (AWS KMS) (SSE-KMS) diminuendo il traffico delle richieste da Amazon S3 a. AWS KMS Per ulteriori informazioni, consulta [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md). 

Quando configuri una chiave bucket S3 per un oggetto utilizzando un'operazione PUT o COPY, Amazon S3 aggiorna le impostazioni solo per quell'oggetto. Le impostazioni della chiave bucket S3 per il bucket di destinazione non cambiano. Se invii una richiesta PUT o COPY per un oggetto crittografato con KMS in un bucket con le chiavi di bucket S3 abilitate, l'operazione a livello di oggetto utilizzerà automaticamente le chiavi di bucket S3 a meno che non disabiliti le chiavi nell'intestazione della richiesta. Se non specifichi una chiave bucket S3 per il tuo oggetto, Amazon S3 applica le impostazioni della chiave bucket S3 per il bucket di destinazione all'oggetto.

**Prerequisito**  
Prima di configurare l'oggetto per utilizzare una chiave bucket S3, consulta [Modifiche alla nota prima dell'abilitazione di una chiave bucket S3](bucket-key.md#bucket-key-changes). 

**Topics**
+ [Operazioni in Batch Amazon S3](#bucket-key-object-bops)
+ [Utilizzo della REST API](#bucket-key-object-rest)
+ [Utilizzo dell' AWS SDK per Java PutObject ()](#bucket-key-object-sdk)
+ [Usando il AWS CLI () PutObject](#bucket-key-object-cli)

## Operazioni in Batch Amazon S3
<a name="bucket-key-object-bops"></a>

Per crittografare gli oggetti Amazon S3 esistenti, puoi utilizzare le operazioni in batch di Amazon S3. Fornisci alle operazioni in batch S3 un elenco di oggetti da utilizzare e le operazioni in batch chiamano la rispettiva API per eseguire l'operazione specifica. 

Puoi utilizzare l'operazione di [copia delle operazioni in batch S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) per copiare gli oggetti non crittografati esistenti e scriverli nello stesso bucket degli oggetti crittografati. Un solo processo di operazioni in batch può eseguire l'operazione specificata su miliardi di oggetti. Per ulteriori informazioni, consulta [Esecuzione di operazioni sugli oggetti in blocco con le operazioni in batch](batch-ops.md) e [Crittografia di oggetti con le operazioni in batch di Amazon S3](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

## Utilizzo della REST API
<a name="bucket-key-object-rest"></a>

Quando utilizzi SSE-KMS, puoi abilitare una chiave bucket S3 per un oggetto utilizzando le seguenti operazioni API: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)— Quando carichi un oggetto, puoi specificare l'intestazione della `x-amz-server-side-encryption-bucket-key-enabled` richiesta per abilitare o disabilitare una S3 Bucket Key a livello di oggetto. 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)— Quando copi un oggetto e configuri SSE-KMS, puoi specificare l'intestazione della `x-amz-server-side-encryption-bucket-key-enabled` richiesta per abilitare o disabilitare una S3 Bucket Key per il tuo oggetto. 
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html): quando esegui un'operazione `POST` per caricare un oggetto e configurare SSE-KMS, puoi utilizzare il campo del modulo `x-amz-server-side-encryption-bucket-key-enabled` per abilitare o disabilitare una chiave bucket S3 per l'oggetto.
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)— Quando carichi oggetti di grandi dimensioni utilizzando l'operazione `CreateMultipartUpload` API e configuri SSE-KMS, puoi utilizzare l'intestazione della `x-amz-server-side-encryption-bucket-key-enabled` richiesta per abilitare o disabilitare una S3 Bucket Key per il tuo oggetto.

Per abilitare una chiave bucket S3 a livello di oggetto, dovrai includere l'intestazione della richiesta `x-amz-server-side-encryption-bucket-key-enabled`. Per ulteriori informazioni su SSE-KMS e REST API, consulta la sezione [Utilizzo della REST API](specifying-kms-encryption.md#KMSUsingRESTAPI).

## Utilizzo dell' AWS SDK per Java PutObject ()
<a name="bucket-key-object-sdk"></a>

Il seguente esempio può essere utilizzato per configurare una chiave bucket S3 a livello di oggetto utilizzando AWS SDK per Java.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();

String bucketName = "amzn-s3-demo-bucket1";
String keyName = "key name for object";
String contents = "file contents";

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, contents)
    .withBucketKeyEnabled(true);
    
s3client.putObject(putObjectRequest);
```

------

## Usando il AWS CLI () PutObject
<a name="bucket-key-object-cli"></a>

È possibile utilizzare il seguente AWS CLI esempio per configurare una S3 Bucket Key a livello di oggetto come parte di una `PutObject` richiesta.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key object key name --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

# Visualizzazione delle impostazioni per una chiave bucket S3
<a name="viewing-bucket-key-settings"></a>

Puoi visualizzare le impostazioni per una chiave S3 Bucket a livello di bucket o oggetto utilizzando la console Amazon S3, l'API REST, AWS Command Line Interface () o.AWS CLI AWS SDKs

Le S3 Bucket Keys riducono il traffico delle richieste da Amazon S3 AWS KMS a (SSE-KMS) e riducono il costo della crittografia lato server. AWS Key Management Service Per ulteriori informazioni, consulta [Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3](bucket-key.md). 

Per visualizzare le impostazioni della chiave bucket S3 per un bucket o un oggetto che ha ereditato le impostazioni della chiave bucket S3 dalla configurazione del bucket, è necessaria l'autorizzazione per eseguire l'operazione `s3:GetEncryptionConfiguration`. Per ulteriori informazioni, consulta [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) in *Amazon Simple Storage Service API Reference* (Guida di riferimento per l'API di Amazon Simple Storage Service). 

## Utilizzo della console S3
<a name="bucket-key-settings"></a>

Nella console S3, puoi visualizzare le impostazioni della chiave bucket S3 per il bucket o l'oggetto. Le impostazioni della chiave bucket S3 vengono ereditate dalla configurazione del bucket a meno che gli oggetti di origine non dispongano già di una chiave bucket S3 configurata.

Oggetti e cartelle nello stesso bucket possono avere diverse impostazioni della chiave bucket S3. Ad esempio, se carichi un oggetto utilizzando REST API e abiliti una chiave bucket S3 per tale oggetto, questo manterrà l'impostazione della chiave bucket S3 nel bucket di destinazione anche se la chiave bucket S3 è disabilitata. Come altro esempio, se abiliti una chiave bucket S3 per un bucket esistente, gli oggetti già presenti nel bucket non utilizzeranno una chiave bucket S3. Tuttavia, i nuovi oggetti avranno una chiave bucket S3 abilitata. 

**Visualizzazione dell'impostazione della chiave bucket S3 per il bucket**

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 pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Bucket** scegli il bucket per cui desideri abilitare una chiave bucket S3.

1. Scegliere **Properties (Proprietà)**.

1. Nella sezione **Crittografia predefinita**, in **Chiave bucket**, viene visualizzata l'impostazione della chiave bucket S3 per il bucket.

   Se non riesci a visualizzare l'impostazione della chiave bucket S3, è possibile che non disponi dell'autorizzazione per eseguire l'operazione `s3:GetEncryptionConfiguration`. Per ulteriori informazioni, consulta [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) in *Amazon Simple Storage Service API Reference* (Guida di riferimento per l'API di Amazon Simple Storage Service). 

**Visualizzazione dell'impostazione della chiave bucket S3 per l'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. Nell'elenco **Bucket** scegli il bucket per cui desideri abilitare una chiave bucket S3. 

1. Nell'elenco **Oggetti** scegli il nome dell'oggetto.

1. Nella scheda **Dettagli** , in **Impostazioni di crittografia lato server**, seleziona **Modifica**. 

   In **Chiave bucket** è visualizzata l'impostazione della chiave bucket S3 per l'oggetto. Non è possibile modificare questa impostazione. 

## Usando il AWS CLI
<a name="bucket-key-settings-cli"></a>

**Restituzione delle impostazioni della chiave bucket S3 a livello di bucket**  
Per usare questo comando, sostituire `user input placeholder` con le proprie informazioni.

```
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
```

Per ulteriori informazioni, consulta [get-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-encryption.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

**Restituzione delle impostazioni a livello di oggetto di una chiave bucket S3**  
Per usare questo comando, sostituire `user input placeholder` con le proprie informazioni.

```
aws s3api head-object --bucket amzn-s3-demo-bucket1 --key my_images.tar.bz2
```

Per ulteriori informazioni, consulta [head-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-object.html) in *Guida di riferimento dei comandi di AWS CLI *.

## Utilizzo della REST API
<a name="bucket-key-settings-rest"></a>

**Restituzione delle impostazioni della chiave bucket S3 a livello di bucket**  
Per restituire le informazioni di crittografia per un bucket, incluse le impostazioni per una chiave bucket S3, utilizza l'operazione `GetBucketEncryption`. Le impostazioni della chiave bucket S3 vengono restituite nel corpo della risposta nell'elemento `ServerSideEncryptionConfiguration` con l'impostazione `BucketKeyEnabled`. Per ulteriori informazioni, consulta [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) nella *documentazione di riferimento delle API di Amazon S3*. 

**Restituzione delle impostazioni a livello di oggetto per una chiave bucket S3**  
Per restituire lo stato della chiave bucket S3 per un oggetto, utilizza l'operazione `HeadObject`. `HeadObject` restituisce l'intestazione della risposta `x-amz-server-side-encryption-bucket-key-enabled` per mostrare se una chiave bucket S3 è abilitata o disabilitata per l'oggetto. Per ulteriori informazioni, consulta [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) nella *documentazione di riferimento delle API di Amazon S3*. 

Le seguenti operazioni delle API restituiscono l'intestazione della risposta `x-amz-server-side-encryption-bucket-key-enabled` anche se una chiave bucket S3 è configurata per un oggetto: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 
+ [PostObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 
+ [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 
+ [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 
+ [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 
+ [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 