Come posso risolvere i problemi di replica Amazon S3 tra account?
Gli oggetti del mio bucket Amazon Simple Storage Service (Amazon S3) di origine in un account AWS non vengono replicati nel bucket di destinazione in un altro account AWS.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Controlla la policy IAM associata al ruolo IAM di replica
Per risolvere gli errori di replica Amazon S3, assicurati di concedere le autorizzazioni corrette.
Se l'oggetto bucket di origine contiene tag, assicurati che le policy per il ruolo di replica AWS Identity and Access Management (IAM) e il bucket di destinazione consentano l'azione s3:ReplicateTags.
Se imposti la regola di replica su Cambia la proprietà dell'oggetto al proprietario del bucket di destinazione, il ruolo IAM deve disporre dell'autorizzazione s3:ObjectOwnerOverrideToBucketOwner.
La regola di replica S3 crea automaticamente il ruolo IAM di replica con le autorizzazioni richieste.
Esempio di policy IAM per un ruolo IAM di replica:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/" } ] }
Se crei manualmente il ruolo IAM, crea una policy di policy di attendibilità per consentire ad Amazon S3 di assumere il ruolo. Quindi utilizza la console IAM o AWS CLI per collegare la policy.
Esempio di policy di attendibilità:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
Aggiungi le autorizzazioni necessarie alla policy del bucket di destinazione
Assicurati che la policy del bucket di destinazione consenta al ruolo IAM di replica dell'account di origine di replicare oggetti.
Aggiungi le seguenti autorizzazioni alla policy del bucket:
- s3:ReplicateDelete
- s3:ReplicateObject
- s3:ReplicateTags
- s3:ObjectOwnerOverrideToBucketOwner
Esempio di policy del bucket di destinazione:
{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/" } ] }
Specifica le autorizzazioni delle chiavi AWS KMS
Per utilizzare la crittografia lato server con chiavi del Servizio AWS di gestione delle chiavi (AWS KMS) (SSE-KMS), devi specificare la chiave AWS KMS dell'account di destinazione nella regola di replica. Inoltre, le policy delle chiavi AWS KMS devono consentire al ruolo IAM di replica di utilizzare le chiavi per la crittografia e la decrittografia. Per ulteriori informazioni, consulta Aggiungere un'istruzione di policy delle chiavi nell'account locale.
Esempio di policy del ruolo IAM di replica per SSE-KMS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] } ] }
Esempio di policy del bucket di destinazione per SSE-KMS:
{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ReplicationIAMRole" }, "Action": [ "kms:Encrypt" ], "Resource": "*" }
Se la policy delle chiavi AWS KMS di origine o di destinazione concede l'autorizzazione in base al contesto di crittografia, controlla se stai utilizzando Amazon S3 Bucket Keys.
Se stai utilizzando Amazon S3 Bucket Keys, il contesto di crittografia deve essere per a risorsa a livello di bucket.
Esempio di policy:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ]
Se non stai utilizzando Amazon S3 Bucket Keys, il contesto di crittografia deve essere per la risorsa a livello di oggetto.
Esempio di policy:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ]
Nota: negli esempi di policy precedenti, sostituisci amzn-s3-demo-source-bucket e amzn-s3-demo-destination-bucket con il nome del bucket di origine e il nome del bucket di destinazione.
Controlla le SCP per gli account di origine e di destinazione
Assicurati che le policy di controllo del servizio (SCP) negli account di origine e di destinazione non contengano istruzioni Deny.
Informazioni correlate
Monitoraggio della replica con parametri, notifiche di eventi e stati
Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
Perché i miei oggetti Amazon S3 non si replicano quando configuro la replica tra i miei bucket?
- Argomenti
- Storage
- Lingua
- Italiano
