Impostazione e monitoraggio della crittografia predefinita per i bucket di directory - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione e monitoraggio della crittografia predefinita per i bucket di directory

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 (-S3). SSE 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 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 () chiavi (-). AWS Key Management Service AWS KMS SSE KMS

Nota
  • Ti consigliamo che la crittografia predefinita del bucket utilizzi la configurazione di crittografia desiderata e di non sovrascrivere la crittografia predefinita del bucket nelle tue richieste o richieste di oggetti. CreateSession PUT Quindi, i nuovi oggetti vengono crittografati automaticamente con le impostazioni di crittografia desiderate. Per ulteriori informazioni sui comportamenti di sovrascrittura della crittografia nei bucket di directory, consultate Specificazione 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 con una chiave (in particolare, una KMS chiave gestita dal cliente). Quindi, quando viene creata una sessione per API le operazioni degli endpoint zonali, i nuovi oggetti vengono automaticamente crittografati e decrittografati con SSE - KMS e S3 Bucket Keys 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 Keys non sono supportate, quando copi SSE oggetti KMS crittografati da bucket generici a bucket di directory, da bucket di directory a bucket generici o tra bucket di directory, tramite CopyObject, UploadPartCopy, il Copy operazione in Batch Operations, oppure import lavori. In questo caso, Amazon S3 effettua una chiamata AWS KMS ogni volta che viene effettuata una richiesta di copia per un oggetto KMS crittografato. Per ulteriori informazioni su come S3 Bucket Keys riduce i costi delle AWS KMS richieste, consulta. Riduzione del costo di SSE - KMS con Amazon S3 Bucket Keys

  • Quando specifichi una chiave gestita AWS KMS dal cliente per la crittografia nel tuo bucket di directory, usa solo l'ID o la chiave della chiave. ARN Il formato dell'alias della KMS chiave non è supportato.

  • La crittografia lato server a doppio livello 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, vedere. Configurazione della crittografia predefinita

Per ulteriori informazioni sulle autorizzazioni richieste per la crittografia predefinita, vedere PutBucketEncryptionnell'Amazon Simple Storage Service API Reference.

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

Per configurare la crittografia predefinita per un bucket Amazon S3
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

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

  3. Nell'elenco Bucket scegli il nome del bucket desiderato.

  4. Scegliere la scheda Properties (Proprietà).

  5. Nelle impostazioni di crittografia lato server, i bucket di directory utilizzano la crittografia lato server con chiavi gestite di Amazon S3 (-S3). SSE

  6. Scegli Save changes (Salva modifiche).

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

Per ulteriori informazioni sulla crittografia predefinita, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3. Per ulteriori informazioni sull'utilizzo di per configurare la crittografia AWS CLI predefinita, consulta. put-bucket-encryption

Esempio — 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, sostituire il user input placeholders con le tue informazioni.

aws s3api put-bucket-encryption --bucket bucket-base-name--zone-id--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }'
Esempio — Crittografia predefinita con SSE - KMS utilizzo di una chiave S3 Bucket

Questo esempio configura la crittografia dei bucket predefinita con SSE - KMS utilizzando una chiave S3 Bucket. Per utilizzare il comando, sostituisci il user input placeholders con le tue informazioni.

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 } ] }'

Utilizzare l'RESTAPIPutBucketEncryptionoperazione per impostare la crittografia predefinita con un tipo di crittografia lato server da utilizzare: SSE -S3 o -. SSE KMS

Per ulteriori informazioni, consulta PutBucketEncryptionnell'Amazon Simple Storage Service API Reference.

Durante l'utilizzo AWS SDKs, puoi richiedere che Amazon S3 venga utilizzato AWS KMS keys per la crittografia lato server. Quanto segue AWS SDKs per Java e. NETalcuni esempi configurano la configurazione di crittografia predefinita per un bucket di directory con SSE - KMS e una chiave S3 Bucket. Per informazioni su altriSDKs, consulta Codice di esempio e librerie nel AWS Developer Center.

Importante

Quando utilizzi una AWS KMS key crittografia lato server in Amazon S3, devi scegliere una chiave di crittografia simmetrica. KMS Amazon S3 supporta solo chiavi di crittografia simmetriche. KMS Per ulteriori informazioni su queste chiavi, consulta Chiavi di crittografia KMS simmetriche nella Guida per gli sviluppatori.AWS Key Management Service

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 per la crittografia dei dati con -. SSE KMS Crei una KMS chiave di crittografia simmetrica e la specifichi 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 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.

.NET

Con AWS SDK for .NET, puoi richiedere ad Amazon S3 di utilizzare an AWS KMS key utilizzando la ServerSideEncryptionByDefault proprietà per specificare la configurazione di crittografia predefinita del tuo bucket di directory per la crittografia dei dati con -. SSE KMS Crei una chiave di crittografia simmetrica gestita dal cliente e la specifichi 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 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.

Monitoraggio della crittografia predefinita per i bucket di directory con AWS CloudTrail

Puoi tenere traccia delle richieste di configurazione di crittografia predefinite per i bucket di directory Amazon S3 utilizzando gli eventi. AWS CloudTrail I seguenti nomi di API eventi vengono utilizzati nei CloudTrail log:

  • PutBucketEncryption

  • GetBucketEncryption

  • DeleteBucketEncryption

Nota
  • EventBridge non è supportato nei bucket di directory.

  • La crittografia lato server a doppio livello 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, vedere. AWS CloudTrailMonitoraggio della crittografia predefinita con AWS CloudTrail e Amazon EventBridge