

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

# Impostazione e monitoraggio della crittografia predefinita per i bucket di directory
<a name="s3-express-bucket-encryption"></a>

I bucket Amazon S3 hanno la crittografia dei bucket abilitata per impostazione predefinita e i nuovi oggetti vengono crittografati automaticamente utilizzando la crittografia lato server con chiavi gestite di Amazon S3 (). SSE-S3 Questa crittografia si applica a tutti i nuovi oggetti nei bucket Amazon S3 e non comporta costi aggiuntivi.

Se hai bisogno di un maggiore controllo sulle tue chiavi di crittografia, ad esempio per gestire la rotazione delle chiavi e le concessioni delle policy di accesso, puoi scegliere di utilizzare la crittografia lato server con () keys (). AWS Key Management Service AWS KMS SSE-KMS

**Nota**  
Si consiglia di utilizzare la configurazione di crittografia predefinita del bucket e di non sovrascrivere la crittografia predefinita del bucket nelle richieste `CreateSession` o nelle richieste di oggetti `PUT`. I nuovi oggetti vengono quindi crittografati automaticamente con le impostazioni di crittografia desiderate. Per ulteriori informazioni sui comportamenti di sovrascrittura della crittografia nei bucket di directory, consulta [Specificazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html) della crittografia lato server con per il caricamento di nuovi oggetti. AWS KMS 
Per crittografare nuovi oggetti in un bucket di directory con SSE-KMS, è necessario specificare SSE-KMS come configurazione di crittografia predefinita del bucket di directory una chiave KMS (in particolare, una chiave gestita dal cliente). Quindi, quando viene creata una sessione per le operazioni dell'API degli endpoint Zonal, i nuovi oggetti vengono automaticamente crittografati e decrittografati con SSE-KMS le chiavi S3 Bucket durante la sessione.
Quando imposti la crittografia dei bucket predefinita su SSE-KMS, le chiavi S3 Bucket sono sempre abilitate per tutte le `PUT` operazioni in un bucket di directory `GET` e non possono essere disabilitate. [Le S3 Bucket Key non sono supportate quando copi oggetti SSE-KMS crittografati da bucket generici a bucket di directory, da bucket di directory a bucket generici o tra bucket di directory, tramite [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)l'[operazione Copy in Batch](directory-buckets-objects-Batch-Ops.md) Operations o i job. [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)import](create-import-job.md) In questo caso, Amazon S3 effettua una chiamata AWS KMS ogni volta che viene effettuata una richiesta di copia per un KMS-encrypted oggetto. Per ulteriori informazioni su come S3 Bucket Keys riduce i costi delle AWS KMS richieste, consulta. [Riduzione dei costi SSE-KMS con Amazon S3 Bucket Keys](bucket-key.md) 
Quando si specifica una [chiave gestita dal cliente AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) per la crittografia nel bucket della directory, utilizzare solo l'ID chiave o l'ARN chiave. Il formato alias della chiave KMS non è supportato.
Dual-layer la crittografia lato server con AWS KMS chiavi (DSSE-KMS) e la crittografia lato server con chiavi fornite dal cliente (SSE-C) non sono supportate per la crittografia predefinita nei bucket di directory.

Per ulteriori informazioni sulla configurazione della crittografia predefinita, consulta [Configurazione della crittografia predefinita](default-bucket-encryption.md).

Per ulteriori informazioni sulle autorizzazioni richieste per la crittografia predefinita, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) nella *Documentazione di riferimento delle API di Amazon Simple Storage Service*.

Puoi configurare la crittografia predefinita di Amazon S3 per un bucket S3 utilizzando la console Amazon S3, gli SDK AWS , l'API REST di Amazon S3 e (). AWS Command Line Interface AWS CLI

## Utilizzo della console S3
<a name="s3-express-bucket-encryption-how-to-set-up-console"></a>

**Per configurare la crittografia predefinita per un bucket Amazon S3**

1. Accedi a 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 nome del bucket desiderato. 

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

1. **Nelle impostazioni di Server-side crittografia**, i bucket di directory utilizzano Server-side la crittografia con **chiavi SSE-S3 gestite di Amazon S3 ()**.

1. Scegli **Save changes** (Salva modifiche).

## Utilizzo di AWS CLI
<a name="s3-express-default-bucket-encryption-cli"></a>

Questi esempi mostrano come configurare la crittografia predefinita utilizzando SSE-S3 o utilizzando SSE-KMS una chiave S3 Bucket.

Per ulteriori informazioni sulla crittografia predefinita, consulta [Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3](bucket-encryption.md). [Per ulteriori informazioni sull'utilizzo della crittografia predefinita AWS CLI per configurare la crittografia predefinita, consulta put-bucket-encryption.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-encryption.html)

**Example — Crittografia predefinita con SSE-S3**  
In questo esempio viene configurata la crittografia predefinita dei bucket con le chiavi gestite da Amazon S3. Per utilizzare il comando, sostituisci {{user input placeholders}} con le informazioni appropriate.  

```
aws s3api put-bucket-encryption --bucket {{bucket-base-name}}--{{zone-id}}--x-s3 --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            }
        }
    ]
}'
```

**Example — Crittografia predefinita con SSE-KMS l'utilizzo di una chiave S3 Bucket**  
Questo esempio configura la crittografia dei bucket predefinita con l' SSE-KMS utilizzo di una chiave S3 Bucket. Per utilizzare il comando, sostituisci {{user input placeholders}} con le informazioni appropriate.  

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

## Utilizzo della REST API
<a name="s3-express-bucket-encryption-how-to-set-up-api"></a>

Utilizza l'`PutBucketEncryption`operazione API REST per impostare la crittografia predefinita con un tipo di crittografia lato server da utilizzare —, o. SSE-S3 SSE-KMS 

Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) in *Amazon Simple Storage Service API Reference* (Guida di riferimento per l'API di Amazon Simple Storage Service).

## Utilizzo di AWS SDK
<a name="s3-express-kms-put-bucket-encryption-using-sdks"></a>

Quando usi AWS gli SDK, puoi richiedere che Amazon S3 venga AWS KMS keys utilizzato per la crittografia lato server. I seguenti esempi di AWS SDK per Java e.NET configurano la configurazione di crittografia predefinita per un bucket di directory con SSE-KMS una chiave S3 Bucket. Per informazioni su altri SDK, consulta [Codice di esempio e librerie](https://aws.amazon.com/code) nel Developer Center. AWS 

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

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

Con AWS SDK for Java 2.x, puoi richiedere ad Amazon S3 di utilizzare un AWS KMS key metodo utilizzando il `applyServerSideEncryptionByDefault` metodo per specificare la configurazione di crittografia predefinita del tuo bucket di directory con cui crittografare i dati. SSE-KMS Si crea una chiave KMS di crittografia simmetrica e la si specifica nella richiesta.

```
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutBucketEncryptionRequest;
import software.amazon.awssdk.services.s3.model.ServerSideEncryption;
import software.amazon.awssdk.services.s3.model.ServerSideEncryptionByDefault;
import software.amazon.awssdk.services.s3.model.ServerSideEncryptionConfiguration;
import software.amazon.awssdk.services.s3.model.ServerSideEncryptionRule;

public class Main {
    public static void main(String[] args) {
        S3Client s3 = S3Client.create();
        String bucketName = "bucket-base-name--zoneid--x-s3";
        String kmsKeyId = "your-kms-customer-managed-key-id";

        // AWS managed KMS keys aren't supported. Only customer-managed keys are supported.
        ServerSideEncryptionByDefault serverSideEncryptionByDefault = ServerSideEncryptionByDefault.builder()
                .sseAlgorithm(ServerSideEncryption.AWS_KMS)
                .kmsMasterKeyID(kmsKeyId)
                .build();

        // The bucketKeyEnabled field is enforced to be true.
        ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
                .bucketKeyEnabled(true)
                .applyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
                .build();
  
        ServerSideEncryptionConfiguration serverSideEncryptionConfiguration = ServerSideEncryptionConfiguration.builder()
                .rules(rule)
                .build();

        PutBucketEncryptionRequest putRequest = PutBucketEncryptionRequest.builder()
                .bucket(bucketName)
                .serverSideEncryptionConfiguration(serverSideEncryptionConfiguration)
                .build();

        s3.putBucketEncryption(putRequest);
        
    }
}
```

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 di oggetti in un bucket di directory](directory-buckets-objects-upload.md).
+ Per le operazioni API di caricamento multiparte, consulta [Utilizzo dei caricamenti multiparte con i bucket di directory](s3-express-using-multipart-upload.md). 

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

Con AWS SDK per .NET, puoi richiedere ad Amazon S3 di utilizzare un AWS KMS key file utilizzando la `ServerSideEncryptionByDefault` proprietà per specificare la configurazione di crittografia predefinita del tuo bucket di directory con cui crittografare i dati. SSE-KMS Si crea una chiave di crittografia simmetrica gestita dal cliente e la si specifica nella richiesta.

```
    // Set the bucket server side encryption to use AWSKMS with a customer-managed key id.
    // bucketName: Name of the directory bucket. "bucket-base-name--zonsid--x-s3"
    // kmsKeyId: The Id of the customer managed KMS Key. "your-kms-customer-managed-key-id"
    // Returns True if successful.
    public static async Task<bool> SetBucketServerSideEncryption(string bucketName, string kmsKeyId)
    {
        var serverSideEncryptionByDefault = new ServerSideEncryptionConfiguration
        {
            ServerSideEncryptionRules = new List<ServerSideEncryptionRule>
            {
                new ServerSideEncryptionRule
                {
                    ServerSideEncryptionByDefault = new ServerSideEncryptionByDefault
                    {
                        ServerSideEncryptionAlgorithm = ServerSideEncryptionMethod.AWSKMS,
                        ServerSideEncryptionKeyManagementServiceKeyId = kmsKeyId
                    }
                }
            }
        };
        try
        {
            var encryptionResponse =await _s3Client.PutBucketEncryptionAsync(new PutBucketEncryptionRequest
            {
                BucketName = bucketName,
                ServerSideEncryptionConfiguration = serverSideEncryptionByDefault,
            });
            
            return encryptionResponse.HttpStatusCode == HttpStatusCode.OK;
        }
        catch (AmazonS3Exception ex)
        {
            Console.WriteLine(ex.ErrorCode == "AccessDenied"
                ? $"This account does not have permission to set encryption on {bucketName}, please try again."
                : $"Unable to set bucket encryption for bucket {bucketName}, {ex.Message}");
        }
        return false;
    }
```

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 di oggetti in un bucket di directory](directory-buckets-objects-upload.md).
+ Per le operazioni API di caricamento multiparte, consulta [Utilizzo dei caricamenti multiparte con i bucket di directory](s3-express-using-multipart-upload.md). 

------

## Monitoraggio della crittografia predefinita per i bucket di directory con AWS CloudTrail
<a name="s3-express-bucket-encryption-tracking"></a>

È possibile tenere traccia delle richieste di configurazione della crittografia predefinita per i bucket di directory Amazon S3 utilizzando gli eventi AWS CloudTrail . I seguenti nomi di eventi API vengono utilizzati nei CloudTrail log:
+ `PutBucketEncryption`
+ `GetBucketEncryption`
+ `DeleteBucketEncryption`

**Nota**  
EventBridge non è supportato nei bucket di directory.
Dual-layer la crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (DSSE-KMS) o la crittografia lato server con chiavi di crittografia fornite dal cliente (SSE-C) non sono supportate nei bucket di directory.

Per ulteriori informazioni sul monitoraggio della crittografia predefinita con AWS CloudTrail, consulta [Monitoraggio della crittografia predefinita con AWS CloudTrail e Amazon EventBridge](bucket-encryption-tracking.md).