Configurazione di una chiave bucket S3 a livello di oggetto utilizzando REST API, gli SDK AWS o AWS CLI - Amazon Simple Storage Service

Configurazione di una chiave bucket S3 a livello di oggetto utilizzando REST API, gli SDK AWS o AWS CLI

Quando esegui un'operazione PUT o COPY utilizzando REST API, gli SDK AWS o AWS CLI, puoi abilitare o disabilitare una chiave bucket S3 a livello di oggetto. Le chiavi bucket S3 riducono il costo della crittografia lato server utilizzando AWS Key Management Service (AWS KMS) (SSE-KMS) riducendo 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.

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

Operazioni in Batch Amazon S3

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 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 in batch su larga scala su oggetti Amazon S3 e Crittografia di oggetti con le operazioni in batch di Amazon S3.

Utilizzo di REST API

Quando utilizzi SSE-KMS, puoi abilitare una chiave bucket S3 per un oggetto utilizzando le seguenti API:

  • PutObject: quando carichi un oggetto, puoi specificare l'intestazione della richiesta x-amz-server-side-encryption-bucket-key-enabled in modo da abilitare o disabilitare una chiave bucket S3 a livello di oggetto.

  • CopyObject: quando copi un oggetto e configuri SSE-KMS, puoi specificare l'intestazione della richiesta x-amz-server-side-encryption-bucket-key-enabled in modo da abilitare o disabilitare una chiave bucket S3 per l'oggetto.

  • PostObject: 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.

  • CreateMutliPartUpload: quando carichi oggetti di grandi dimensioni tramite l'API di caricamento in più parti e configuri SSE-KMS, puoi utilizzare l'intestazione della richiesta x-amz-server-side-encryption-bucket-key-enabled per abilitare o disabilitare una chiave del bucket S3 per l'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 di REST API.

Utilizzo dell'SDK AWS per Java (PutObject)

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

Java
AmazonS3 s3client = AmazonS3ClientBuilder.standard()     .withRegion(Regions.DEFAULT_REGION)     .build(); String bucketName = "bucket name"; String keyName = "key name for object"; String contents = "file contents"; PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, contents)     .withBucketKeyEnabled(true);      s3client.putObject(putObjectRequest);

Utilizzo della AWS CLI (PutObject)

Puoi utilizzare il seguente esempio sulla AWS CLI per configurare una chiave bucket S3 a livello di oggetto come parte di una richiesta PutObject.

aws s3api put-object --bucket <bucket name> --key <object key name> --server-side-encryption aws:kms --bucket-key-enabled --body <filepath>