Modifica del proprietario della replica
Nella replica, il proprietario dell'oggetto di origine possiede anche la replica per impostazione predefinita. Tuttavia, quando i bucket di origine e di destinazione sono di proprietà di Account AWS diversi, è possibile modificare la proprietà della replica. Ad esempio, è preferibile modificare la proprietà per limitare l'accesso alle repliche degli oggetti. Nella configurazione della replica, è possibile aggiungere impostazioni di configurazione opzionali per modificare la proprietà della replica nell'Account AWS proprietario dei bucket di destinazione.
Per modificare il proprietario della replica, procedere come segue:
-
Aggiungere l'opzione di sostituzione del proprietario alla configurazione della replica per indicare ad Amazon S3 di modificare la proprietà della replica.
-
Concedere ad Amazon S3 l'autorizzazione
s3:ObjectOwnerOverrideToBucketOwnerper modificare la proprietà della replica. -
Aggiungere l'autorizzazione
s3:ObjectOwnerOverrideToBucketOwneralla policy del bucket di destinazione per consentire la modifica della proprietà della replica. L'autorizzaziones3:ObjectOwnerOverrideToBucketOwnerconsente al proprietario dei bucket di destinazione di accettare la proprietà delle repliche degli oggetti.
Per ulteriori informazioni, consulta Considerazioni sull'opzione di sostituzione della proprietà e Aggiunta dell'opzione di sostituzione del proprietario alla configurazione della replica. Per un esempio di utilizzo con istruzioni dettagliate, consulta la sezione Come modificare il proprietario della replica.
Importante
Anziché utilizzare l'opzione di sostituzione del proprietario, è possibile utilizzare l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto. Quando si utilizza la replica e i bucket di origine e di destinazione sono di proprietà di Account AWS diversi, il proprietario del bucket di destinazione può utilizzare l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto per passare la proprietà della replica all'Account AWS che possiede il bucket di destinazione. Questa impostazione disabilita le liste di controllo degli accessi (ACL) degli oggetti.
L'impostazione Proprietario del bucket applicato imita il comportamento di sovrascrittura del proprietario esistente senza la necessità dell'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.
Considerazioni sull'opzione di sostituzione della proprietà
Quando configuri l'opzione di sostituzione del proprietario, si applicano le seguenti considerazioni:
-
Per impostazione predefinita, il proprietario dell'oggetto di origine possiede anche la replica. Amazon S3 replica la versione dell'oggetto e l'ACL associata.
Se si aggiunge l'opzione di sostituzione del proprietario alla configurazione della replica, Amazon S3 replica solo la versione dell'oggetto, non l'ACL. Inoltre, Amazon S3 non replica le modifiche successive all'ACL dell'oggetto di origine. Amazon S3 imposta l'ACL sulla replica che concede il controllo completo al proprietario del bucket di destinazione.
-
Quando si aggiorna una configurazione della replica per abilitare o disabilitare la sostituzione del proprietario, si verifica quanto segue:
-
Se aggiungi l'opzione di sostituzione del proprietario alla configurazione della replica:
Quando replica una versione dell'oggetto, Amazon S3 elimina l'ACL associata all'oggetto di origine e imposta l'ACL sulla replica concedendo il controllo completo al proprietario del bucket di destinazione. Amazon S3 non replica le modifiche successive all'ACL dell'oggetto di origine. Tuttavia, questa modifica dell'ACL non si applica alle versioni dell'oggetto che sono state replicate prima di impostare l'opzione di sostituzione proprietario. Gli aggiornamenti all'ACL negli oggetti di origine che sono stati replicati prima che fosse impostata la sostituzione del proprietario continuano a essere replicati in quanto l'oggetto e le relative repliche continuano ad avere lo stesso proprietario.
-
Se rimuovi l'opzione di sostituzione del proprietario dalla configurazione della replica:
Amazon S3 replica i nuovi oggetti presenti nel bucket di origine e le ACL associate ai bucket di destinazione. Per gli oggetti che sono stati replicati prima della rimozione della sostituzione del proprietario, Amazon S3 non replica le ACL perché rimane valida la modifica della proprietà dell'oggetto apportata da Amazon S3. In altre parole, le ACL associate alla versione dell'oggetto replicata quando la sostituzione del proprietario era impostata continuano a non essere replicate.
-
Aggiunta dell'opzione di sostituzione del proprietario alla configurazione della replica
avvertimento
Aggiungi l'opzione di sostituzione del proprietario solo quando i bucket di origine e di destinazione sono di proprietà di diversi Account AWS. Amazon S3 non controlla se i bucket sono di proprietà dello stesso account o di account diversi. Se aggiungi la sostituzione del proprietario quando entrambi i bucket sono di proprietà dello stesso Account AWS, Amazon S3 applica la sostituzione del proprietario. Questa opzione concede le autorizzazioni complete al proprietario del bucket di destinazione e non replica gli aggiornamenti successivi delle liste di controllo degli accessi (ACL) degli oggetti di origine. Il proprietario della replica può modificare direttamente l'ACL associata a una replica con una richiesta PutObjectAcl, ma non tramite replica.
Per specificare l'opzione di sostituzione del proprietario, aggiungi quanto segue all'elemento Destination:
-
L'elemento
AccessControlTranslation, che indica ad Amazon S3 di modificare la proprietà della replica -
L'elemento
Account, che specifica l'Account AWS del proprietario del bucket di destinazione
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> ... <Destination> ... <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> <Account>destination-bucket-owner-account-id</Account> </Destination> </Rule> </ReplicationConfiguration>
La seguente configurazione della replica di esempio indica ad Amazon S3 di replicare gli oggetti con il prefisso della chiave nel bucket di destinazione Tax e di modificare la proprietà delle repliche. Per utilizzare questo esempio, sostituisci amzn-s3-demo-destination-bucket con le informazioni appropriate.user input
placeholders
<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <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:::amzn-s3-demo-destination-bucket</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> </Rule> </ReplicationConfiguration>
Concessione ad Amazon S3 dell'autorizzazione per modificare la proprietà della replica
Concedere ad Amazon S3 le autorizzazioni per modificare la proprietà della replica aggiungendo l'autorizzazione per l'operazione s3:ObjectOwnerOverrideToBucketOwner alla policy di autorizzazione associata al ruolo AWS Identity and Access Management (IAM). Questo è il ruolo IAM specificato nella configurazione della replica che consente ad Amazon S3 di acquisire e replicare gli oggetti per conto dell'utente. Per utilizzare il seguente esempio, sostituire con il nome del bucket di destinazione.amzn-s3-demo-destination-bucket
... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ...
Aggiunta dell'autorizzazione alla policy del bucket di destinazione per consentire la modifica della proprietà della replica
Il proprietario del bucket di destinazione deve concedere al proprietario del bucket di origine l'autorizzazione necessaria per modificare la proprietà della replica. Il proprietario del bucket di destinazione concede al proprietario del bucket di origine l'autorizzazione per l'operazione s3:ObjectOwnerOverrideToBucketOwner. Questa autorizzazione consente al proprietario del bucket di destinazione di accettare la proprietà delle repliche degli oggetti. La seguente istruzione della policy del bucket di esempio mostra come fare: Per utilizzare questo esempio, sostituisci con le informazioni appropriate.user input placeholders
... { "Sid":"1", "Effect":"Allow", "Principal":{"AWS":"source-bucket-account-id"}, "Action":["s3:ObjectOwnerOverrideToBucketOwner"], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ...
Come modificare il proprietario della replica
Quando i bucket di origine e di destinazione in una configurazione della replica sono di proprietà di Account AWS diversi, è possibile indicare ad Amazon S3 di modificare la proprietà di una replica nell'Account AWS proprietario del bucket di destinazione. Gli esempi seguenti mostrano come utilizzare la console Amazon S3, l'AWS Command Line Interface (AWS CLI) e gli SDK AWS per modificare la proprietà della replica.
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.
Nella seguente procedura viene mostrato come modificare la proprietà della replica utilizzando AWS CLI. In questa procedura, esegui le seguenti operazioni:
-
Creazione dei bucket di origine e di destinazione.
-
Abilitare il controllo delle versioni sui bucket.
-
Creare un ruolo AWS Identity and Access Management (IAM) che concede ad Amazon S3 l'autorizzazione di replicare gli oggetti.
-
Aggiungere la configurazione della replica al bucket di origine.
-
Nella configurazione della replica si indica ad Amazon S3 di modificare la proprietà della replica.
-
Verificare la configurazione della replica.
Per modificare la proprietà della replica quando i bucket di origine e di destinazione sono di proprietà di Account AWS (AWS CLI) diversi
Per usare i comandi AWS CLI di esempio in questa procedura, sostituire con le proprie informazioni. user input placeholders
-
In questo esempio verranno creati i bucket di origine e di destinazione in due Account AWS diversi. Per utilizzare questi due account, occorre configurare AWS CLI con due profili denominati. Questo esempio utilizza i profili denominati rispettivamente
eacctA. 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.acctBImportante
I profili utilizzati per questa procedura devono disporre delle autorizzazioni necessarie. Ad esempio, nella configurazione di replica dovrai specificare il ruolo IAM che Amazon S3 può assumere. È possibile effettuare questa operazione solo se il profilo utilizzato dispone dell'autorizzazione
iam:PassRole. Se si utilizzano le credenziali dell'utente amministratore per creare un profilo denominato, è possibile eseguire tutte le attività in questa procedura. 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. -
Creare il bucket di origine e abilitare la funzione Controllo delle versioni. Questo esempio crea un bucket denominato
nella Regione Stati Uniti orientali (Virginia settentrionale) (amzn-s3-demo-source-bucketus-east-1).aws s3api create-bucket \ --bucketamzn-s3-demo-source-bucket\ --regionus-east-1\ --profileacctAaws s3api put-bucket-versioning \ --bucketamzn-s3-demo-source-bucket\ --versioning-configuration Status=Enabled \ --profileacctA -
Creare un bucket di destinazione e abilitare la funzione Controllo delle versioni. Questo esempio crea un bucket di destinazione denominato
nella Regione Stati Uniti occidentali (Oregon) (amzn-s3-demo-destination-bucketus-west-2). Utilizzare un profilo Account AWS diverso da quello utilizzato per il bucket di origine.aws s3api create-bucket \ --bucketamzn-s3-demo-destination-bucket\ --regionus-west-2\ --create-bucket-configuration LocationConstraint=us-west-2\ --profileacctBaws s3api put-bucket-versioning \ --bucketamzn-s3-demo-destination-bucket\ --versioning-configuration Status=Enabled \ --profileacctB -
Devi aggiungere l'autorizzazione alla policy del bucket di destinazione per consentire la modifica della proprietà della replica.
-
Salvare la seguente policy in un file denominato
. Assicurarsi di sostituiredestination-bucket-policy.jsoncon le proprie informazioni.user input placeholders -
Aggiungere la policy precedente al bucket di destinazione utilizzando il seguente comando
put-bucket-policy:aws s3api put-bucket-policy --region${destination-region} --bucket${amzn-s3-demo-destination-bucket} --policy file://destination_bucket_policy.json
-
-
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:
-
Crea il ruolo.
-
Collegare una policy di autorizzazione al ruolo.
-
Crea il ruolo IAM.
-
Copiare la seguente policy di attendibilità e salvarla in un file denominato
nella directory corrente sul computer locale. Questa policy concede ad Amazon S3 le autorizzazioni per assumere il ruolo.s3-role-trust-policy.json -
Per creare il ruolo IAM, eseguire il seguente comando AWS CLI
create-role:$aws iam create-role \ --role-namereplicationRole\ --assume-role-policy-document file://s3-role-trust-policy.json \ --profileacctAPrendere nota del nome della risorsa Amazon (ARN) del ruolo IAM creato. Tale nome sarà necessario in un passaggio successivo.
-
-
Collegare una policy di autorizzazione al ruolo.
-
Copiare la seguente policy di autorizzazioni e salvarla in un file denominato
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 associa questa policy al ruolo IAM creato in precedenza.s3-role-perm-pol-changeowner.json -
Per associare la policy delle autorizzazioni precedente al ruolo, eseguire il seguente comando
put-role-policy:$aws iam put-role-policy \ --role-namereplicationRole\ --policy-document file://s3-role-perm-pol-changeowner.json \ --policy-namereplicationRolechangeownerPolicy\ --profileacctA
-
-
-
Aggiungere una configurazione di replica al bucket di origine.
-
La AWS CLI richiede che la configurazione di replica venga specificata come JSON. Salvare il seguente JSON in un file denominato
nella directory corrente sul computer locale. Nella configurazione,replication.jsonAccessControlTranslationspecifica la modifica della proprietà della replica dal proprietario del bucket di origine al proprietario del bucket di destinazione.{ "Role":"IAM-role-ARN", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ }, "Status":"Enabled", "Destination":{ "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket", "Account":"destination-bucket-owner-account-id", "AccessControlTranslation":{ "Owner":"Destination" } } } ] } -
Modificare il JSON fornendo i valori per il nome del bucket di destinazione, l'ID account del proprietario del bucket di destinazione e
. SostituisciIAM-role-ARNcon l'ARN del ruolo IAM creato in precedenza. Salvare le modifiche.IAM-role-ARN -
Per aggiungere la configurazione della replica al bucket di origine, eseguire il seguente comando:
$aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucketamzn-s3-demo-source-bucket\ --profileacctA
-
-
Verificare la configurazione della replica controllando la proprietà della replica nella console Amazon S3.
Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/
. -
Aggiungere oggetti al bucket di origine . Verificare 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 di una configurazione della replica, consulta Uso degli AWS SDK. La configurazione della replica deve essere modificata di conseguenza. Per informazioni concettuali, consulta Modifica del proprietario della replica.