Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
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 della crittografia automatica per la configurazione della crittografia predefinita del bucket S3 e per il caricamento di nuovi oggetti è disponibile nei log di AWS CloudTrail, in S3 Inventory, in S3 Storage Lens, nella console di Amazon S3 e come intestazione di risposta API Amazon S3 aggiuntiva nella AWS Command Line Interface e negli SDK AWS. Per ulteriori informazioni, consulta Domande frequenti sulla crittografia predefinita.
Quando si replicano oggetti che sono stati crittografati utilizzando la crittografia lato server, è necessario prestare particolare attenzione. Amazon S3 supporta i seguenti tipi di crittografia lato server:
-
Crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3)
-
Crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS)
-
Crittografia lato server a doppio livello con chiavi AWS KMS (DSSE-KMS)
-
Crittografia lato server con chiavi fornite dal cliente (SSE-C)
Per ulteriori informazioni sulla crittografia lato server, consulta Protezione dei dati con la crittografia lato server.
Questo argomento spiega le autorizzazioni necessarie per indirizzare Amazon S3 a replicare oggetti che sono stati crittografati utilizzando la crittografia lato server. Questo argomento fornisce anche elementi di configurazione aggiuntivi che è possibile aggiungere e politiche di esempio AWS Identity and Access Management (IAM) che concedono le autorizzazioni necessarie per la replica di oggetti crittografati.
Per un esempio con istruzioni dettagliate, consulta Abilitazione della replica per oggetti crittografati. Per informazioni sulla creazione di una configurazione di replica, consulta Replica di oggetti all'interno e tra le Regioni.
Nota
In Amazon S3 è possibile utilizzare le AWS KMS keys multi-regione. Tuttavia, Amazon S3 attualmente tratta le chiavi multi-regione come se fossero chiavi a regione singola e non utilizza le caratteristiche multi-regione della chiave. Per ulteriori informazioni, consulta Utilizzo delle chiavi multiregione nella Guida per gli sviluppatori di AWS Key Management Service.
Argomenti
In che modo la crittografia predefinita del bucket influisce sulla replica
Una volta abilitata la crittografia predefinita per un bucket di destinazione della replica, si applica il seguente comportamento di crittografia:
-
Se gli oggetti nel bucket di origine non sono crittografati, gli oggetti replicati nel bucket di destinazione vengono crittografati in base alle impostazioni di crittografia predefinita del bucket di destinazione. Di conseguenza, i tag di entità (ETag) degli oggetti di origine differiscono dagli ETag degli oggetti di replica. Se disponi di applicazioni che utilizzano ETag, devi aggiornarle per tenere conto di questa differenza.
-
Se gli oggetti nel bucket di origine sono crittografati utilizzando la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3), la crittografia lato server con le chiavi AWS Key Management Service (AWS KMS) o la crittografia lato server a doppio livello con chiavi AWS KMS (DSSE-KMS), gli oggetti di replica nel bucket di destinazione utilizzano lo stesso tipo di crittografia degli oggetti di origine. Le impostazioni della crittografia predefinita del bucket di destinazione non vengono utilizzate.
Replica di oggetti crittografati con SSE-C
Utilizzando la crittografia lato server con le chiavi fornite dal cliente (SSE-C), è possibile gestire le chiavi di crittografia di proprietà. Con SSE-C, puoi gestire le chiavi mentre Amazon S3 si occupa del processo di crittografia e decrittografia. È necessario fornire una chiave di crittografia come parte della richiesta, ma non è necessario scrivere codice per eseguire la crittografia o la decrittografia degli oggetti. Quando carichi un oggetto, Amazon S3 ne esegue la crittografia utilizzando la chiave che hai specificato. Quindi Amazon S3 elimina la chiave dalla memoria. Quando viene recuperato un oggetto, è necessario fornire la stessa chiave di crittografia come parte della richiesta. Per ulteriori informazioni, consultare Utilizzo della crittografia lato server con chiavi fornite dal cliente (SSE-C).
Replica S3 supporta gli oggetti crittografati con SSE-C. È possibile configurare la replica degli oggetti SSE-C nella console Amazon S3 o con gli SDK AWS nello stesso modo in cui si configura la replica degli oggetti non crittografati. Non sono disponibili autorizzazioni SSE-C aggiuntive oltre a quelle attualmente richieste per la replica.
La replica S3 replica automaticamente gli oggetti crittografati con SSE-C appena caricati, se idonei, secondo la configurazione di replica S3 specificata. Per la replica di oggetti esistenti nei bucket, utilizza la replica in batch in S3. Per ulteriori informazioni sulla replica di oggetti, consulta Panoramica della configurazione della replica in tempo reale e Replica di oggetti esistenti con Replica in batch.
Non sono previsti costi aggiuntivi per la replica di oggetti SSE-C. Per informazioni dettagliate sui prezzi della replica, consulta Prezzi di Amazon S3
Replica di oggetti crittografati con SSE-S3, SSE-KMS o DSSE-KMS
Per impostazione predefinita, Amazon S3 non replica gli oggetti crittografati con SSE-KMS o DSSE-KMS. Questa sezione illustra un'ulteriore configurazione che puoi aggiungere per fare in modo che Amazon S3 replichi questi oggetti.
Per un esempio con istruzioni dettagliate, consulta Abilitazione della replica per oggetti crittografati. Per informazioni sulla creazione di una configurazione di replica, consulta Replica di oggetti all'interno e tra le Regioni.
Specifica di informazioni aggiuntive nella configurazione di replica
Nella configurazione di replica, è necessario eseguire queste operazioni:
-
Nell'elemento
Destination
della configurazione di replica, aggiungi l'ID della chiave simmetrica gestita dal cliente AWS KMS che Amazon S3 deve utilizzare per crittografare le repliche dell'oggetto, come mostrato nella seguente configurazione di replica. -
Specifica esplicitamente la funzione abilitando la replica di oggetti crittografati mediante le chiavi KMS (SSE-KMS o DSSE-KMS). Per attivare, aggiungi l'elemento
SourceSelectionCriteria
, come mostrato nel seguente esempio di configurazione della replica.
<ReplicationConfiguration> <Rule> ... <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> <Destination> ... <EncryptionConfiguration> <ReplicaKmsKeyID>
AWS KMS key ARN or Key Alias ARN that's in the same Regione AWS as the destination bucket.
</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> ... </Rule> </ReplicationConfiguration>
Importante
-
La chiave KMS deve essere creata nella stessa Regione AWS del bucket di destinazione.
-
Chiave KMS deve essere valida. L'operazione
PutBucketReplication
dell'API non controlla la validità delle chiavi KMS. Se utilizzi una chiave KMS non valida, viene restituito il codice di stato HTTP200 OK
in risposta, ma la replica non riesce.
Nell'esempio seguente viene illustrata una configurazione di replica che include gli elementi di configurazione opzionali. Questa configurazione di replica ha una regola. La regola si applica agli oggetti con il prefisso della chiave
. Amazon S3 utilizza l'ID AWS KMS key specificato per crittografare queste repliche di oggetti.Tax
<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration> <Role>arn:aws:iam::
account-id
:role/role-name
</Role> <Rule> <ID>Rule-1
</ID> <Priority>1</Priority> <Status>Enabled</Status> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Destination> <Bucket>arn:aws:s3:::</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>
amzn-s3-demo-destination-bucket
AWS KMS key ARN or Key Alias ARN that's in the same Regione AWS as the destination bucket.
</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> </Rule> </ReplicationConfiguration>
Concessione di autorizzazioni aggiuntive per il ruolo IAM
Per replicare oggetti crittografati a riposo usando SSE-S3, SSE-KMS o DSSE-KMS, concedi le seguenti autorizzazioni aggiuntive al ruolo AWS Identity and Access Management (IAM) specificato nella configurazione di replica. Queste autorizzazioni vengono concesse aggiornando la policy di autorizzazione associata al ruolo IAM.
-
Operazione
s3:GetObjectVersionForReplication
per gli oggetti di origine: consente ad Amazon S3 di replicare gli oggetti non crittografati e gli oggetti creati con la crittografia lato server mediante le chiavi SSE-S3, SSE-KMS o DSSE-KMS.Nota
Ti consigliamo di utilizzare l'operazione
s3:GetObjectVersionForReplication
anziché l'operaziones3:GetObjectVersion
in quantos3:GetObjectVersionForReplication
concede ad Amazon S3 solo le autorizzazioni minime necessarie per la replica. Inoltre, l'operaziones3:GetObjectVersion
permette la replica di oggetti non crittografati e crittografati SSE-S3, ma non di oggetti crittografati utilizzando le chiavi KMS (SSE-KMS o DSSE-KMS). -
Operazioni AWS KMS
kms:Decrypt
ekms:Encrypt
per le chiavi KMS-
È necessario concedere le autorizzazioni
kms:Decrypt
per la AWS KMS key utilizzata per decrittografare l'oggetto di origine. -
È necessario concedere le autorizzazioni
kms:Encrypt
per la AWS KMS key utilizzata per crittografare la replica dell'oggetto.
-
-
Operazione
kms:GenerateDataKey
per la replica di oggetti in testo normale: se stai replicando oggetti di testo normale in un bucket con la crittografia SSE-KMS o DSSE-KMS abilitata per impostazione predefinita, devi includere l'autorizzazionekms:GenerateDataKey
per il contesto di crittografia di destinazione e la chiave KMS nella policy IAM.
Ti consigliamo di limitare queste autorizzazioni solo ai bucket e agli oggetti di destinazione utilizzando le chiavi di condizione AWS KMS. L'account Account AWS che include il ruolo IAM deve disporre delle autorizzazioni per le operazioni kms:Encrypt
e kms:Decrypt
per le chiavi KMS elencate nella policy. Se le chiavi KMS sono di proprietà di un altro Account AWS, è necessario che il proprietario della chiave KMS conceda tali autorizzazioni all'Account AWS titolare del ruolo IAM. Per ulteriori informazioni sulla gestione dell'accesso alle chiavi KMS, consulta Utilizzo di policy IAM con AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service.
Chiavi bucket S3 e replica
Per utilizzare la replica con una chiave del bucket S3, è necessario che la policy AWS KMS key per la chiave KMS utilizzata per crittografare la replica dell'oggetto includa le autorizzazioni kms:Decrypt
per il principale chiamante. La chiamata a kms:Decrypt
verifica l'integrità della chiave bucket S3 prima del suo utilizzo. Per ulteriori informazioni, consultare Utilizzo di una chiave bucket S3 con la replica.
Quando una chiave del bucket S3 è abilitata per il bucket di origine o di destinazione, il contesto di crittografia sarà il nome della risorsa Amazon (ARN) del bucket e non l'ARN dell'oggetto, ad esempio arn:aws:s3:::
. Dovrai aggiornare le policy IAM per utilizzare l'ARN del bucket per il contesto di crittografia:bucket_ARN
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::
bucket_ARN
" ]
Per ulteriori informazioni, consulta Contesto di crittografia (x-amz-server-side-encryption-context) (nella sezione relativa a REST API) e Modifiche da notare prima di abilitare una chiave S3 Bucket.
Policy di esempio: utilizzo di SSE-S3 e SSE-KMS con la replica
Le policy IAM di esempio riportate di seguito mostrano le istruzioni per utilizzare SSE-S3 e SSE-KMS con la replica.
Esempio - Utilizzo di SSE-KMS con bucket di destinazione separati
La seguente policy di esempio mostra le istruzioni per utilizzare SSE-KMS con bucket di destinazione separati.
{ "Version":"2012-10-17", "Statement":[ { "Action": ["kms:Decrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.
source-bucket-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::/
amzn-s3-demo-source-bucket
key-prefix1
*" ] } }, "Resource": [ "List of AWS KMS key ARNs that are used to encrypt source objects.
" ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-1-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::/
amzn-s3-demo-destination-bucket1
key-prefix1
*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Regione AWS as destination bucket 1). Used to encrypt object replicas created in destination bucket 1.
" ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-2-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::/
amzn-s3-demo-destination-bucket2
key-prefix1
*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Regione AWS as destination bucket 2). Used to encrypt object replicas created in destination bucket 2.
" ] } ] }
Esempio - Replica di oggetti creati con SSE-S3 e SSE-KMS
Di seguito è riportata una policy IAM completa che concede le autorizzazioni necessarie per la replica di oggetti non crittografati, oggetti creati con SSE-S3 e oggetti creati con SSE-KMS.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::
" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/
amzn-s3-demo-source-bucket
key-prefix1
*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::/
amzn-s3-demo-destination-bucket
key-prefix1
*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::/
amzn-s3-demo-source-bucket
key-prefix1
*" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects.
" ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::/
amzn-s3-demo-destination-bucket
prefix1
*" ] } }, "Resource":[ "AWS KMS key ARNs (in the same Regione AWS as the destination bucket) to use for encrypting object replicas
" ] } ] }
Esempio - Replica oggetti con chiavi bucket S3
Di seguito è riportata una policy IAM completa che concede le autorizzazioni necessarie per la replica degli oggetti con chiavi bucket S3.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::
" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/
amzn-s3-demo-source-bucket
key-prefix1
*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::/
amzn-s3-demo-destination-bucket
key-prefix1
*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::" ] } }, "Resource":[ "
amzn-s3-demo-source-bucket
List of the AWS KMS key ARNs that are used to encrypt source objects.
" ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::" ] } }, "Resource":[ "
amzn-s3-demo-destination-bucket
AWS KMS key ARNs (in the same Regione AWS as the destination bucket) to use for encrypting object replicas
" ] } ] }
Concessione di autorizzazioni aggiuntive per scenari multi-account
In uno scenario con più account, dove i bucket di origine e di destinazione appartengono ad Account AWS diversi, puoi utilizzare una chiave KMS per crittografare le repliche degli oggetti. Tuttavia, il proprietario della chiave KMS deve concedere al proprietario del bucket di origine l'autorizzazione per utilizzare la chiave KMS.
Nota
Quando è necessario replicare i dati SSE-KMS tra account, la regola di replica deve specificare una chiave gestita dal cliente da AWS KMS per l'account di destinazione. Le Chiavi gestite da AWS non consentono l'utilizzo tra account, pertanto non possono essere impiegate per eseguire la replica tra account.
Per concedere al proprietario del bucket di origine l'autorizzazione per l'utilizzo della chiave KMS (console AWS KMS)
-
Accedi alla AWS Management Console e apri la console AWS KMS all'indirizzo https://console.aws.amazon.com/kms
. -
Per modificare la Regione AWS, utilizza il selettore della regione nell'angolo superiore destro della pagina.
-
Per visualizzare le chiavi nell'account creato e gestito dall'utente, nel riquadro di navigazione, seleziona Chiavi gestite dal cliente.
-
Scegli la chiave KMS.
-
In Configurazione generale, seleziona la scheda Policy delle chiavi.
-
Scorri fino a Other Account AWS.
-
Scegli Add other Account AWS.
Viene visualizzata la finestra di dialogo Altri Account AWS.
-
Nella finestra di dialogo, seleziona Aggiungi altro Account AWS. Per arn:aws:iam::, inserisci l'ID account del bucket di origine.
-
Scegli Save changes (Salva modifiche).
Per concedere al proprietario del bucket di origine l'autorizzazione per l'utilizzo della chiave KMS (AWS CLI)
-
Per informazioni sul comando , consulta in Command Reference (Guida di riferimento per i comandi ). Per ulteriori informazioni sull'operazione dell'API sottostante, consulta
PutKeyPolicy
in PutKeyPolicy API ReferenceAWS Key Management Service (Guida di riferimento per l'API di).
Considerazioni sulle quote di transazione di AWS KMS
Quando si aggiungono molti nuovi oggetti con la crittografia AWS KMS dopo aver abilitato la replica tra regioni (CRR), è possibile che si verifichi il throttling (errori 503 Service
Unavailable
HTTP). La limitazione (della larghezza di banda della rete) si verifica quando il numero di transazioni AWS KMS al secondo supera la quota corrente. Per ulteriori informazioni, consulta Quote nella Guida per gli sviluppatori di AWS Key Management Service.
Per richiedere un aumento della quota, è possibile utilizzare Service Quotas. Per ulteriori informazioni, consulta la sezione Richiesta di un aumento di quota. Se Service Quotas non è supportato nella tua regione, apri un caso in Supporto AWS
Abilitazione della replica per oggetti crittografati
Per impostazione predefinita, Amazon S3 non replica gli oggetti crittografati con la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS) o la crittografia lato server a doppio livello con chiavi AWS KMS (DSSE-KMS). Per replicare gli oggetti crittografati con SSE-KMS o DSS-KMS, devi modificare la configurazione di replica del bucket per indicare ad Amazon S3 di replicare questi oggetti. Questo esempio spiega come utilizzare la console di Amazon S3 e la AWS Command Line Interface (AWS CLI) per modificare la configurazione della replica del bucket in modo da consentire la replica di oggetti crittografati.
Nota
Quando una chiave del bucket S3 è abilitata per il bucket di origine o di destinazione, il contesto di crittografia sarà il nome della risorsa Amazon (ARN) del bucket e non l'ARN dell'oggetto. Dovrai aggiornare le policy IAM per utilizzare l'ARN del bucket per il contesto di crittografia. Per ulteriori informazioni, consultare Chiavi bucket S3 e replica.
Nota
In Amazon S3 è possibile utilizzare le AWS KMS keys multi-regione. Tuttavia, Amazon S3 attualmente tratta le chiavi multi-regione come se fossero chiavi a regione singola e non utilizza le caratteristiche multi-regione della chiave. Per ulteriori informazioni, consulta Utilizzo delle chiavi multiregione nella Guida per gli sviluppatori di AWS Key Management Service.
Per istruzioni dettagliate, consulta Configurazione della replica per i bucket nello stesso account. In questo argomento vengono fornite le istruzioni per impostare la configurazione della replica quando i bucket di origine e di destinazione sono di proprietà degli stessi Account AWS o di account diversi.
Per replicare gli oggetti crittografati con la AWS CLI, procedi come segue:
-
Crea i bucket di origine e di destinazione e abilita il controllo delle versioni per questi bucket.
-
Crea un ruolo di servizio AWS Identity and Access Management (IAM) che permetta ad Amazon S3 di replicare gli oggetti. Le autorizzazioni del ruolo IAM includono le autorizzazioni necessarie per replicare gli oggetti crittografati.
-
Aggiungi una configurazione di replica al bucket di origine. La configurazione di replica fornisce informazioni relative alla replica di oggetti crittografati con le chiavi KMS.
-
Aggiungi gli oggetti crittografati al bucket di origine.
-
Esegui il test della configurazione per verificare che gli oggetti crittografati vengano replicati nel bucket di destinazione.
Le procedure seguenti ti guidano attraverso questo processo.
Per replicare gli oggetti crittografati lato server (AWS CLI)
Per utilizzare gli esempi in questa procedura, sostituire
con le proprie informazioni.user
input placeholders
-
In questo esempio vengono creati entrambi i bucket di origine (
) e di destinazione (amzn-s3-demo-source-bucket
) nello stesso Account AWS. Imposti anche un profilo di credenziali per la AWS CLI. In questo esempio si utilizza il nome del profiloamzn-s3-demo-destination-bucket
.acctA
Per informazioni sull'impostazione di profili con credenziali e sull'uso di profili denominati, consulta Impostazioni del file di configurazione e delle credenziali nella Guida per l'utente di AWS Command Line Interface.
-
Usa i seguenti comandi per creare il bucket
e abilitare il controllo delle versioni. Il seguente comando di esempio crea il bucketamzn-s3-demo-source-bucket
nella regione Stati Uniti orientali (Virginia settentrionale) (amzn-s3-demo-source-bucket
us-east-1
).aws s3api create-bucket \ --bucket
amzn-s3-demo-source-bucket
\ --regionus-east-1
\ --profileacctA
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-source-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Usa i seguenti comandi per creare il bucket
e abilitare il controllo delle versioni. Il seguente comando di esempio crea il bucketamzn-s3-demo-destination-bucket
nella regione Stati Uniti occidentali (Oregon) (amzn-s3-demo-destination-bucket
us-west-2
).Nota
Per impostare la configurazione di replica quando entrambi i bucket
eamzn-s3-demo-source-bucket
si trovano nello stesso Account AWS, utilizza lo stesso profilo. Questo esempio usaamzn-s3-demo-destination-bucket
. Per configurare la replica quando i bucket sono di proprietà di Account AWS diversi, occorre specificare profili differenti per ciascuno di essi.acctA
aws s3api create-bucket \ --bucket
amzn-s3-demo-destination-bucket
\ --regionus-west-2
\ --create-bucket-configuration LocationConstraint=us-west-2
\ --profileacctA
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-destination-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Quindi, crea un ruolo di servizio IAM. Questo ruolo verrà specificato nella configurazione della replica che verrà aggiunta al bucket
in un secondo momento. Amazon S3 assume questo ruolo per replicare gli oggetti per tuo conto. Il ruolo IAM si crea in due fasi:amzn-s3-demo-source-bucket
-
Creazione di un ruolo del servizio
-
Collegare una policy di autorizzazione al ruolo.
-
Per creare un ruolo di servizio IAM, procedi come segue:
-
Copiare la seguente policy di attendibilità e salvala in un file denominato
nella directory corrente sul computer locale. Questa policy fornisce le autorizzazioni ai principali del servizio Amazon S3 per assumere il ruolo in modo che Amazon S3 possa eseguire attività per conto dell'utente.s3-role-trust-policy-kmsobj
.json{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
-
Usa il comando seguente per creare il ruolo:
$
aws iam create-role \ --role-namereplicationRolekmsobj
\ --assume-role-policy-document file://s3-role-trust-policy-kmsobj
.json \ --profileacctA
-
-
Quindi, collega una policy di autorizzazione al ruolo. Questa policy di accesso concede le autorizzazioni per varie operazioni su oggetti e bucket Amazon S3.
-
Copiare la seguente policy di autorizzazioni e salvarla in un file denominato
nella directory corrente sul computer locale. Crea un ruolo IAM e successivamente collegalo alla policy.s3-role-permissions-policykmsobj
.jsonImportante
Nella policy di autorizzazione, specifica gli ID chiave AWS KMS che verranno utilizzati per la crittografia dei bucket
eamzn-s3-demo-source-bucket
. È necessario creare due chiavi KMS separate per i bucketamzn-s3-demo-destination-bucket
eamzn-s3-demo-source-bucket
. Le AWS KMS keys non vengono mai condivise al di fuori della Regione AWS in cui sono state create.amzn-s3-demo-destination-bucket
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::
", "arn:aws:s3:::amzn-s3-demo-source-bucket
/*" ] }, { "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Effect":"Allow", "Condition":{ "StringLikeIfExists":{ "s3:x-amz-server-side-encryption":[ "aws:kms", "AES256", "aws:kms:dsse" ], "s3:x-amz-server-side-encryption-aws-kms-key-id":[ "amzn-s3-demo-source-bucket
AWS KMS key IDs(in ARN format) to use for encrypting object replicas
" ] } }, "Resource":"arn:aws:s3:::
/*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.amzn-s3-demo-destination-bucket
us-east-1
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::
/*" ] } }, "Resource":[ "amzn-s3-demo-source-bucket
AWS KMS key IDs(in ARN format) used to encrypt source objects.
" ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.us-west-2
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::
/*" ] } }, "Resource":[ "amzn-s3-demo-destination-bucket
AWS KMS key IDs (in ARN format) to use for encrypting object replicas
" ] } ] } -
Creare una policy e collegarla al ruolo.
$
aws iam put-role-policy \ --role-namereplicationRolekmsobj
\ --policy-document file://s3-role-permissions-policykmsobj
.json \ --policy-namereplicationRolechangeownerPolicy
\ --profileacctA
-
-
-
Quindi, aggiungi la seguente configurazione di replica al bucket
che indica ad Amazon S3 di replicare gli oggetti con prefissoamzn-s3-demo-source-bucket
nel bucketTax/
.amzn-s3-demo-destination-bucket
Importante
Nella configurazione di replica dovrai specificare il ruolo IAM che Amazon S3 può assumere. Puoi effettuare questa operazione solo se disponi dell'autorizzazione
iam:PassRole
. Il profilo specificato nel comando della CLI deve disporre di questa autorizzazione. Per ulteriori informazioni, consulta Concessione di autorizzazioni utente per il passaggio di un ruolo a un Servizio AWS nella Guida per l'utente di IAM.<ReplicationConfiguration> <Role>
IAM-Role-ARN
</Role> <Rule> <Priority>1</Priority> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Status>Enabled</Status> <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> <Destination> <Bucket>arn:aws:s3:::
</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>amzn-s3-demo-destination-bucket
AWS KMS key IDs to use for encrypting object replicas
</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> </Rule> </ReplicationConfiguration>Per aggiungere una configurazione di replica al bucket
, procedi come segue:amzn-s3-demo-source-bucket
-
La AWS CLI richiede che la configurazione di replica venga specificata in formato JSON. Salvare il seguente JSON in un file (
) nella directory corrente sul computer locale.replication
.json{ "Role":"
IAM-Role-ARN
", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ "Prefix":"Tax
" }, "Destination":{ "Bucket":"arn:aws:s3:::
", "EncryptionConfiguration":{ "ReplicaKmsKeyID":"amzn-s3-demo-destination-bucket
AWS KMS key IDs (in ARN format) to use for encrypting object replicas
" } }, "SourceSelectionCriteria":{ "SseKmsEncryptedObjects":{ "Status":"Enabled" } } } ] } -
Modifica il JSON per fornire valori per il bucket
,amzn-s3-demo-destination-bucket
eAWS KMS key IDs (in ARN format)
. Salvare le modifiche.IAM-role-ARN
-
Esegui il comando seguente per aggiungere la configurazione di replica al bucket
. Assicurati di fornire il nome del bucket diamzn-s3-demo-source-bucket
.amzn-s3-demo-source-bucket
$
aws s3api put-bucket-replication \ --replication-configuration file://replication
.json \ --bucket
\ --profileamzn-s3-demo-source-bucket
acctA
-
-
Esegui il test della configurazione per verificare che gli oggetti crittografati vengano replicati. Nella console di Amazon S3 effettuare quanto segue:
Accedi alla AWS Management Console e apri la console di Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nel bucket di
, crea una cartella denominataamzn-s3-demo-source-bucket
.Tax
-
Aggiungere oggetti campione alla cartella. Assicurati di scegliere l'opzione di crittografia e specifica la chiave KMS per crittografare gli oggetti.
-
Verifica che il bucket
contenga le repliche dell'oggetto e che queste vengano crittografate utilizzando la chiave KMS specificata nella configurazione. Per ulteriori informazioni, consultare Ottenimento delle informazioni sullo stato della replica.amzn-s3-demo-destination-bucket
Per un esempio di codice che illustra come aggiungere una configurazione di replica, consulta Uso degli AWS SDK. La configurazione della replica deve essere modificata di conseguenza.