Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3
Amazon S3 Bucket Keys riduce il costo della crittografia lato server di Amazon S3 con le chiavi AWS Key Management Service (AWS KMS) (SSE-KMS). L'utilizzo di una chiave a livello di bucket per SSE-KMS può ridurre i costi delle richieste di AWS KMS fino a 99%, riducendo il traffico di richieste da Amazon S3 a AWS KMS. Con pochi clic su AWS Management Consolee senza alcuna modifica alle applicazioni client, è possibile configurare il bucket in modo che utilizzi una chiave S3 Bucket per la crittografia SSE-KMS sui nuovi oggetti.
Nota
Le chiavi bucket S3 non sono supportate per la crittografia lato server a doppio livello con le chiavi AWS Key Management Service (AWS KMS) (DSSE-KMS).
S3 Bucket Keys per SSE-KMS
I carichi di lavoro che accedono a milioni o miliardi di oggetti crittografati con SSE-KMS possono generare grandi volumi di richieste a AWS KMS. Quando si utilizza SSE-KMS per proteggere i dati senza una chiave S3 Bucket, Amazon S3 utilizza una chiave dati AWS KMS individuale per ogni oggetto. In questo caso Amazon S3 effettua una chiamata a AWS KMS ogni volta che viene eseguita una richiesta per un oggetto crittografato con KMS. Per informazioni sul funzionamento di SSE-KMS, consulta Utilizzo della crittografia lato server con chiavi AWS KMS (SSE-KMS).
Quando si configura il bucket per utilizzare una chiave S3 Bucket Key per SSE-KMS, AWS genera una chiave a livello di bucket di breve durata da AWS KMS e la conserva temporaneamente in S3. Questa chiave a livello di bucket creerà chiavi di dati per nuovi oggetti durante il suo ciclo di vita. Le chiave di bucket S3 vengono utilizzate per un periodo di tempo limitato all'interno di Amazon S3, riducendo così la necessità per Amazon S3 di effettuare richieste a AWS KMS per completare le operazioni di crittografia. Questo riduce il traffico da S3 a AWS KMS, consentendo di accedere agli oggetti criptati AWS KMS 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 alla chiave da parte del richiedente venga acquisito in un evento CloudTrail AWS KMS. Amazon S3 tratta i chiamanti come richiedenti differenti quando utilizzano ruoli o account differenti o lo stesso ruolo con policy di ambito differenti. I risparmi sulle richieste AWS KMS dipendono dal numero di richiedenti, dai modelli di richiesta e dalla relativa età degli oggetti richiesti. Ad esempio, un numero inferiore di richiedenti, che richiedono più oggetti in una finestra temporale limitata e che vengono crittografati con la stessa chiave a livello di bucket, comporta un maggiore risparmio.
Nota
L'uso delle chiavi S3 Bucket consente di risparmiare sui costi delle richieste AWS KMS, riducendo le richieste a AWS KMS per le operazioni Encrypt
, GenerateDataKey
e Decrypt
grazie all'uso di una chiave a livello di bucket. Per impostazione, le richieste successive che sfruttano questa chiave a livello di bucket non danno luogo a richieste API AWS KMS e non convalidano l'accesso in base alla policy della chiave AWS KMS.
Quando si configura una chiave S3 Bucket, gli oggetti già presenti nel bucket non utilizzano la chiave S3 Bucket. Per configurare una chiave S3 Bucket per gli oggetti esistenti, è possibile utilizzare l'operazione CopyObject
. Per ulteriori informazioni, consulta Configurazione di una chiave bucket S3 a livello di oggetto.
Amazon S3 condividerà una chiave S3 Bucket solo per gli oggetti crittografati dallo stesso AWS KMS key. Le chiavi S3 Bucket sono compatibili con le chiavi KMS create da AWS KMS, con il materiale delle chiavi importato e con il materiale delle chiavi supportato da archivi di chiavi personalizzati.

Configurazione delle chiavi dei bucket S3
Puoi configurare il bucket in modo da utilizzare una chiave bucket S3 per SSE-KMS su nuovi oggetti tramite la console di Amazon S3, gli SDKAWS , la AWS CLI o REST API. 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 S3 Bucket Key, consulta Modifiche da notare prima di abilitare una chiave S3 Bucket.
Configurazione di una chiave bucket S3 tramite la console di Amazon S3
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.
Supporto di REST API, AWS CLI e SDK AWS per chiavi bucket S3
Per configurare il bucket in modo da utilizzare una chiave bucket S3 per SSE-KMS su nuovi oggetti puoi utilizzare REST API, la AWS CLI o l'SDK AWS. Puoi inoltre abilitare una chiave bucket S3 a livello di oggetto.
Per ulteriori informazioni, consulta quanto segue:
Le seguenti operazioni API supportano le chiavi bucket S3 per SSE-KMS:
-
-
ServerSideEncryptionRule
accetta il parametroBucketKeyEnabled
per l'abilitazione e la disabilitazione di una S3 Bucket Key.
-
-
-
ServerSideEncryptionRule
restituisce le impostazioni diBucketKeyEnabled
.
-
-
PutObject, CopyObject, CreateMultipartUpload e POST Object
-
L'intestazione della richiesta
x-amz-server-side-encryption-bucket-key-enabled
abilita o disabilita una chiave bucket S3 a livello di oggetto.
-
-
HeadObject, GetObject, UploadPartCopy, UploadPart, e CompleteMultipartUpload
-
L'intestazione della risposta
x-amz-server-side-encryption-bucket-key-enabled
indica se una chiave bucket S3 è abilitata o disabilitata per un oggetto.
-
Operazioni con AWS CloudFormation
In AWS CloudFormation, la risorsa AWS::S3::Bucket
include una proprietà di crittografia chiamata BucketKeyEnabled
che si può usare per abilitare o disabilitare una chiave S3 Bucket.
Per ulteriori informazioni, consulta Utilizzo di AWS CloudFormation.
Modifiche da notare prima di abilitare una chiave S3 Bucket
Prima di abilitare una chiave bucket S3, tieni presente le seguenti modifiche correlate:
Policy IAM e delle chiavi AWS KMS
Se le policy AWS Identity and Access Management (IAM) o le policy delle chiavi AWS KMS utilizzano il nome della risorsa Amazon (ARN) dell'oggetto come contesto di crittografia per perfezionare o limitare l'accesso alle chiavi KMS, queste policy non funzioneranno con una chiave bucket S3. Le chiavi S3 Bucket utilizzano l'ARN del bucket come contesto di crittografia. Prima di abilitare una chiave bucket S3, aggiorna le policy IAM o le policy delle chiavi AWS KMS in modo da 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.
Eventi CloudTrail per AWS KMS
Dopo aver abilitato una S3 Bucket Key, gli eventi di AWS KMS CloudTrail registrano l'ARN del bucket invece dell'ARN dell'oggetto. Inoltre, nei log viene visualizzato un minor numero di eventi KMS CloudTrail per gli oggetti SSE-KMS. Poiché il materiale chiave è limitato nel tempo in Amazon S3, vengono effettuate meno richieste a AWS KMS.
Utilizzo di una chiave bucket S3 con la replica
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).
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 S3 Bucket Key ma il bucket di destinazione utilizza la crittografia predefinita con SSE-KMS, l'oggetto di replica mantiene le impostazioni di crittografia della S3 Bucket Key nel bucket di destinazione. Il bucket di destinazione utilizza ancora la crittografia predefinita con SSE-KMS.
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. In questo modo, ETag
dell'oggetto sorgente è diverso da ETag
dell'oggetto replica. È necessario aggiornare le applicazioni che utilizzano ETag
per tenere conto di questa differenza.
Operazioni con le chiavi bucket S3
Per ulteriori informazioni sull'abilitazione e l'utilizzo di chiavi bucket S3, consulta le sezioni seguenti: