Modificare il proprietario della replica quando i bucket di origine e di destinazione sono di proprietà di account diversi - Amazon Simple Storage Service

Modificare il proprietario della replica quando i bucket di origine e di destinazione sono di proprietà di account diversi

Quando i bucket di origine e di destinazione in una configurazione di replica sono di proprietà di Account AWS diversi, puoi indicare ad Amazon S3 di modificare la proprietà di una replica nell'Account AWS proprietario del bucket di destinazione. Questo esempio spiega come utilizzare la console Amazon S3 e la AWS CLI per modificare la proprietà della replica. Per ulteriori informazioni, consulta Modifica del proprietario della replica.

Nota

Quando si utilizza la replica di S3 e i bucket di fonte e di destinazione sono di proprietà di diversi Account AWS, il proprietario del bucket di destinazione può disabilitare le ACL (tramite l'impostazione proprietario del bucket applicato per Object Ownership) per passare la proprietà della replica all'Account AWS che possiede il bucket di destinazione. Questa impostazione imita il comportamento di sovrascrittura del proprietario esistente senza la necessità di un'autorizzazione s3:ObjectOwnerOverrideToBucketOwner. Tutti gli oggetti replicati nel bucket di destinazione con l'impostazione proprietario del bucket applicato sono di proprietà del proprietario del bucket di destinazione. Per ulteriori informazioni su Object Ownership, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Per ulteriori informazioni sulla configurazione della replica utilizzando la crittografia lato server con AWS Key Management Service in scenari con più account, consulta la sezione Concessione di autorizzazioni aggiuntive per scenari multi-account.

Per istruzioni dettagliate, consulta Configurazione della replica per i bucket di origine e di destinazione di proprietà dello stesso account. In questo argomento vengono fornite istruzioni per impostare la configurazione della replica quando i due bucket sono di proprietà dello stesso Account AWS o di account diversi.

Per modificare la proprietà della replica con la AWS CLI, si creano i bucket, si abilita il controllo delle versioni per i bucket, si crea un ruolo IAM che autorizza Amazon S3 a replicare gli oggetti e si aggiunge la configurazione di replica al bucket di origine. Nella configurazione di replica si indica ad Amazon S3 di modificare il proprietario della replica. Si esegue inoltre il test della configurazione.

Come modificare la proprietà della replica quando i bucket di origine e di destinazione sono di proprietà di Account AWS (AWS CLI) diversi
  1. In questo esempio verranno creati i bucket di fonte e di destinazione in due Account AWS diversi. Configurare la AWS CLI con due profili denominati. Questo esempio utilizza i profili denominati rispettivamente acctA e acctB. Per ulteriori informazioni sull'impostazione di profili con credenziali, consulta Profili denominati nella Guida per l'utente di AWS Command Line Interface.

    Importante

    I profili utilizzati per questo esercizio devono disporre delle autorizzazioni necessarie. Ad esempio, nella configurazione di replica dovrai specificare il ruolo IAM che Amazon S3 può assumere. Puoi effettuare questa operazione solo se il profilo che utilizzi dispone dell'autorizzazione iam:PassRole. Se utilizzi le credenziali dell'utente amministratore per creare un profilo denominato, allora puoi eseguire tutte le attività. 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.

    Assicurarsi che questi profili abbiano le autorizzazioni necessarie. Ad esempio, la configurazione di replica include un ruolo IAM che Amazon S3 può assumere. Il profilo denominato utilizzato per allegare tale configurazione a un bucket può eseguire questa operazione solo se dispone dell'autorizzazione iam:PassRole. Se si specificano le credenziali dell'utente amministratore durante la creazione di questi profili denominati, vengono fornite tutte le autorizzazioni. 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.

  2. Creare il bucket di origine e abilitare la funzione Controllo delle versioni. Questo esempio crea il bucket source nella regione Stati Uniti orientali (Virginia settentrionale) (us-east-1).

    aws s3api create-bucket \ --bucket source \ --region us-east-1 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket source \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Creare un bucket di destinazione e abilitare la funzione Controllo delle versioni. Questo esempio crea il bucket destination nella regione Stati Uniti occidentali (Oregon) (us-west-2). Utilizza un profilo Account AWS diverso da quello che hai utilizzato per il bucket di fonte.

    aws s3api create-bucket \ --bucket destination \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctB
    aws s3api put-bucket-versioning \ --bucket destination \ --versioning-configuration Status=Enabled \ --profile acctB
  4. Devi aggiungere l'autorizzazione alla policy del bucket di destinazione per consentire la modifica della proprietà della replica.

    1. Salvare la seguente policy su destination-bucket-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "destination_bucket_policy_sid", "Principal": { "AWS": "source-bucket-owner-account-id" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::destination/*" ] } ] }
    2. Inserire la policy di cui sopra al bucket di destinazione:

      aws s3api put-bucket-policy --region $ {destination_region} --bucket $ {destination} --policy file://destination_bucket_policy.json
  5. Creare un ruolo IAM. Specifica questo ruolo nella configurazione di replica che aggiungi al bucket source in un secondo momento. Amazon S3 assume questo ruolo per replicare gli oggetti per tuo conto. Il ruolo IAM si crea in due fasi:

    • Creare un ruolo.

    • Collegare una policy di autorizzazione al ruolo.

    1. Creare un ruolo IAM.

      1. Copiare la seguente policy di attendibilità e salvarla in un file denominato s3-role-trust-policy.json nella directory corrente sul computer locale. Questa policy concede ad Amazon S3 le autorizzazioni per assumere il ruolo.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Per creare un ruolo, eseguire il comando AWS CLI seguente.

        $ aws iam create-role \ --role-name replicationRole \ --assume-role-policy-document file://s3-role-trust-policy.json \ --profile acctA
    2. Collegare una policy di autorizzazione al ruolo.

      1. Copiare la seguente policy di autorizzazioni e salvarla in un file denominato s3-role-perm-pol-changeowner.json nella directory corrente sul computer locale. Questa policy di accesso concede le autorizzazioni per varie operazioni su oggetti e bucket Amazon S3. Nelle fasi che seguono si crea un ruolo IAM e si collega questa policy al ruolo.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::source/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "Resource":[ "arn:aws:s3:::source" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Resource":"arn:aws:s3:::destination/*" } ] }
      2. Per creare una policy e collegarla al ruolo, eseguire questo comando.

        $ aws iam put-role-policy \ --role-name replicationRole \ --policy-document file://s3-role-perm-pol-changeowner.json \ --policy-name replicationRolechangeownerPolicy \ --profile acctA
  6. Aggiungere una configurazione di replica al bucket di origine.

    1. La AWS CLI richiede che la configurazione di replica venga specificata come JSON. Salvare il seguente JSON in un file denominato replication.json nella directory corrente sul computer locale. Nella configurazione, l'aggiunta di AccessControlTranslation per indicare la modifica nella proprietà della replica.

      { "Role":"IAM-role-ARN", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ }, "Status":"Enabled", "Destination":{ "Bucket":"arn:aws:s3:::destination", "Account":"destination-bucket-owner-account-id", "AccessControlTranslation":{ "Owner":"Destination" } } } ] }
    2. Modificare il JSON fornendo i valori per l'ID account del proprietario del bucket di destinazione e l'ARN del ruolo IAM (IAM-role-ARN). Salvare le modifiche.

    3. Per aggiungere la configurazione di replica al bucket di origine, eseguire il seguente comando. Fornire il nome del bucket di origine.

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket source \ --profile acctA
  7. Verifica la proprietà della replica nella console Amazon S3.

    1. Accedi alla AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

    2. Aggiungere oggetti al bucket di origine . Verifica che il bucket di destinazione contenga le repliche dell'oggetto e che la proprietà delle repliche sia stata modificata nell'Account AWS che possiede il bucket di destinazione.

Per un esempio di codice per l'aggiunta della configurazione di replica, consulta Uso degli SDK AWS. La configurazione della replica deve essere modificata di conseguenza. Per informazioni concettuali, consulta Modifica del proprietario della replica.