Configurazione di replica - Amazon Simple Storage Service

Configurazione di replica

Amazon S3 archivia la configurazione di replica come file XML. Nel file XML della configurazione della replica è necessario specificare un ruolo AWS Identity and Access Management (IAM) e una o più regole.

<ReplicationConfiguration> <Role>IAM-role-ARN</Role> <Rule> ... </Rule> <Rule> ... </Rule> ... </ReplicationConfiguration>

Amazon S3 non può replicare oggetti senza la tua autorizzazione. Le autorizzazioni vengono concesse con il ruolo IAM specificato nella configurazione di replica. Amazon S3 assume il ruolo IAM per replicare gli oggetti per tuo conto. È necessario innanzitutto concedere le autorizzazioni necessarie al ruolo IAM. Per ulteriori informazioni sulla gestione delle autorizzazioni, consulta la sezione Impostazione delle autorizzazioni.

Puoi aggiungere una regola a una configurazione di replica quando:

  • Vuoi replicare tutti gli oggetti.

  • Vuoi replicare un sottoinsieme di oggetti. Identifichi il sottoinsieme di oggetti aggiungendo un filtro alla regola. Nel filtro specifichi un prefisso di chiave o tag dell'oggetto o una combinazione di questi elementi, per identificare il sottoinsieme di oggetti a cui si applica la regola.

Per replicare più sottoinsiemi di oggetti, aggiungi diverse regole a una configurazione di replica. In ogni regola puoi specificare un filtro tramite cui selezionare un particolare sottoinsieme di oggetti. Puoi ad esempio scegliere di replicare gli oggetti con prefissi della chiave tax/ o document/. Per fare ciò devi aggiungere due regole: una che specifica il filtro prefisso della chiave tax/ e un'altra che specifica il prefisso della chiave document/.

Nelle sezioni seguenti vengono fornite informazioni aggiuntive.

Configurazione di base delle regole

Ogni regola deve includere lo stato e la priorità della stessa. La regola deve anche indicare se replicare i contrassegni di eliminazione.

  • Status indica se la regola è abilitata o disabilitata utilizzando i valori Enabled o Disabled. Se una regola è disabilitata, Amazon S3 non esegue le operazioni in essa specificate.

  • Priority indica quale regola ha la precedenza ogni volta che due o più regole di replica sono in conflitto. Amazon S3 prova a replicare gli oggetti in base a tutte le regole di replica. Tuttavia, se esistono due o più regole con lo stesso bucket di destinazione, gli oggetti vengono replicati in base alla regola con la priorità più alta. Più elevato è il numero, maggiore è la priorità.

  • DeleteMarkerReplication indica se replicare i contrassegni di eliminazione tramite i valori Enabled o Disabled.

Nella configurazione di destinazione devi specificare il nome del bucket in cui Amazon S3 deve replicare gli oggetti.

Nell'esempio seguente sono indicati i requisiti minimi per una regola V2. Per la compatibilità con le versioni precedenti, Amazon S3 continua a supportare il formato XML V1. Per ulteriori informazioni, consultare Compatibilità con le versioni precedenti.

... <Rule> <ID>Rule-1</ID> <Status>Enabled-or-Disabled</Status> <Filter> <Prefix></Prefix> </Filter> <Priority>integer</Priority> <DeleteMarkerReplication> <Status>Enabled-or-Disabled</Status> </DeleteMarkerReplication> <Destination>       <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> </Destination> </Rule> <Rule> ... </Rule> ... ...

Puoi anche specificare altre opzioni di configurazione. Ad esempio, puoi scegliere di utilizzare una classe di storage per le repliche degli oggetti diversa dalla classe dell'oggetto di origine.

Facoltativo: specifica di un filtro

Per scegliere un sottoinsieme di oggetti a cui si applica la regola, aggiungi un filtro facoltativo. Puoi filtrare in base al prefisso della chiave dell'oggetto, ai tag dell'oggetto o a una combinazione di entrambi. Se applichi un filtro in base sia al prefisso della chiave sia ai tag dell'oggetto, Amazon S3 combina i filtri utilizzando un operatore logico AND. In altre parole, la regola si applica a un sottoinsieme di oggetti con uno specifico prefisso della chiave e tag specifici.

Filtro in base al prefisso della chiave oggetto

Per specificare una regola con un filtro basato su un prefisso della chiave di un oggetto, utilizza il codice seguente. Puoi specificare un solo prefisso.

<Rule> ... <Filter> <Prefix>key-prefix</Prefix> </Filter> ... </Rule> ...
Filtro basato su tag oggetto

Per specificare una regola con un filtro basato sui tag di un oggetto, utilizza il codice seguente. Puoi specificare uno o più tag dell'oggetto.

<Rule> ... <Filter> <And> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> ... </And> </Filter> ... </Rule> ...
Filtro con un prefisso chiave e tag oggetto

Per specificare un filtro della regola con una combinazione di prefisso della chiave e tag di un oggetto, utilizza il codice seguente. I filtri vengono uniti in un elemento padre And. Amazon S3 esegue un'operazione logica AND per combinare questi filtri. In altre parole, la regola si applica a un sottoinsieme di oggetti con uno specifico prefisso della chiave e tag specifici.

<Rule> ... <Filter> <And> <Prefix>key-prefix</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> ... </Filter> ... </Rule> ...
Nota

Se specifichi una regola con un tag filtro vuoto, la regola verrà applicata a tutti gli oggetti nel bucket.

Configurazioni di destinazione aggiuntive

Nella configurazione di destinazione devi specificare il bucket in cui Amazon S3 deve replicare gli oggetti. Puoi configurare la replica per replicare gli oggetti da un bucket di origine a uno solo o a più bucket di destinazione.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> </Destination> ...

Puoi aggiungere le seguenti opzioni nell'elemento <Destination>.

Specifica della classe di storage

È possibile specificare la classe di storage per le repliche degli oggetti. Per impostazione predefinita, Amazon S3 utilizza la classe di storage dell'oggetto di origine per creare le repliche degli oggetti, come nell'esempio seguente.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <StorageClass>storage-class</StorageClass> </Destination> ...

Aggiunta di più bucket di destinazione

Puoi aggiungere più bucket di destinazione in una singola configurazione di replica, come indicato di seguito.

... <Rule> <ID>Rule-1</ID> <Status>Enabled-or-Disabled</Status> <Priority>integer</Priority> <DeleteMarkerReplication> <Status>Enabled-or-Disabled</Status> </DeleteMarkerReplication> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> </Rule> <Rule> <ID>Rule-2</ID> <Status>Enabled-or-Disabled</Status> <Priority>integer</Priority> <DeleteMarkerReplication> <Status>Enabled-or-Disabled</Status> </DeleteMarkerReplication> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET2</Bucket> </Destination> </Rule> ...

Specifica di parametri diversi per ogni regola di replica con più bucket di destinazione

Quando si aggiungono più bucket di destinazione in una singola configurazione di replica, puoi specificare parametri diversi per ogni regola di replica, come indicato di seguito.

... <Rule> <ID>Rule-1</ID> <Status>Enabled-or-Disabled</Status> <Priority>integer</Priority> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Metrics> <Status>Enabled</Status> <EventThreshold> <Minutes>15</Minutes> </EventThreshold> </Metrics> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> </Rule> <Rule> <ID>Rule-2</ID> <Status>Enabled-or-Disabled</Status> <Priority>integer</Priority> <DeleteMarkerReplication> <Status>Enabled</Status> </DeleteMarkerReplication> <Metrics> <Status>Enabled</Status> <EventThreshold> <Minutes>15</Minutes> </EventThreshold> </Metrics> <ReplicationTime> <Status>Enabled</Status> <Time> <Minutes>15</Minutes> </Time> </ReplicationTime> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET2</Bucket> </Destination> </Rule> ...

Modifica della proprietà della replica

Quando i bucket di origine e di destinazione non appartengono agli stessi account, puoi modificare la proprietà della replica assegnandola all'Account AWS proprietario del bucket di destinazione. A questo scopo, aggiungi l'elemento AccessControlTranslation. Questo elemento assume il valore Destination.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> ...

Se l'elemento AccessControlTranslation non viene aggiunto nella configurazione di replica, la proprietà delle repliche resta allo stesso Account AWS proprietario dell'oggetto di origine. Per ulteriori informazioni, consultare Modifica del proprietario della replica.

Abilitazione di S3 Replication Time Control

Puoi abilitare S3 Replication Time Control (S3 RTC) nella configurazione di replica. S3 RTC replica la maggior parte degli oggetti in pochi secondi e il 99,99% degli oggetti entro 15 minuti, secondo un Accordo sul Livello di Servizio (SLA).

Nota

Per EventThreshold e Time è accettato solo un valore valido di <Minutes>15</Minutes>.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <Metrics> <Status>Enabled</Status> <EventThreshold> <Minutes>15</Minutes> </EventThreshold> </Metrics> <ReplicationTime> <Status>Enabled</Status> <Time> <Minutes>15</Minutes> </Time> </ReplicationTime> </Destination> ...

Per ulteriori informazioni, consulta Rispetto dei requisiti di conformità utilizzando S3 Replication Time Control (S3 RTC). Per esempi di API, consulta PutBucketReplication nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

Replica di oggetti creati con crittografia lato server utilizzando AWS KMS

Il bucket di origine può contenere oggetti creati con la crittografia lato server tramite le chiavi AWS Key Management Service (AWS KMS) (SSE-KMS). Per impostazione predefinita, Amazon S3 non replica questi oggetti. Puoi facoltativamente indicare ad Amazon S3 di replicare questi oggetti. Per farlo, innanzitutto abilita esplicitamente questa funzionalità aggiungendo l'elemento SourceSelectionCriteria. Quindi fornisci la AWS KMS key (per la Regione AWS del bucket di destinazione) da utilizzare per crittografare le repliche di oggetti. I seguenti esempi mostrano come specificare questi elementi.

... <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>AWS KMS key ID to use for encrypting object replicas</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> ...

Per ulteriori informazioni, consulta Replica di oggetti creati con crittografia lato server (SSE-C, SSE-S3, SSE-KMS).

Esempi di configurazioni di replica

Per iniziare, puoi aggiungere le configurazioni di replica di esempio seguenti al bucket, in base alle esigenze.

Importante

Per aggiungere una configurazione di replica a un bucket, devi disporre dell'autorizzazione iam:PassRole. Questa autorizzazione permette di passare il ruolo IAM che concede le autorizzazioni di replica ad Amazon S3. Puoi specificare il ruolo IAM fornendo l'Amazon Resource Name (ARN) utilizzato nell'elemento Role nel file XML della configurazione di replica. Per ulteriori informazioni, consulta Concessione di autorizzazioni utente per il passaggio di un ruolo a Servizio AWS nella Guida per l'utente di IAM.

Esempio 1: Configurazione di replica con una regola

La configurazione di replica di base seguente specifica una regola. La regola specifica un ruolo IAM che Amazon S3 può assumere e un singolo bucket di destinazione per le repliche degli oggetti. Un valore di Status pari a Enabled indica che la regola è in vigore.

<?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> <Status>Enabled</Status> <Destination><Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

Per scegliere un sottoinsieme di oggetti da replicare, puoi aggiungere un filtro. Nella configurazione seguente il filtro specifica un prefisso della chiave di un oggetto. Questa regola si applica agli oggetti con il prefisso Tax/ nel nome della chiave.

<?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> <Status>Enabled</Status> <Priority>1</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax/</Prefix> </Filter> <Destination><Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

Se specifichi l'elemento Filter, devi includere anche gli elementi Priority e DeleteMarkerReplication. In questo esempio, Priority non è rilevante perché è presente solo una regola.

Nella configurazione seguente il filtro specifica un prefisso e due tag. La regola si applica al sottoinsieme di oggetti con il prefisso della chiave e i tag specificati. Nello specifico, si applica all'oggetto con il prefisso Tax/ nei nomi delle chiavi e i due tag specificati. Priority non si applica perché è presente soltanto una regola.

<?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> <Status>Enabled</Status> <Priority>1</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <And> <Prefix>Tax/</Prefix> <Tag> <Tag> <Key>tagA</Key> <Value>valueA</Value> </Tag> </Tag> <Tag> <Tag> <Key>tagB</Key> <Value>valueB</Value> </Tag> </Tag> </And> </Filter> <Destination><Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

È possibile specificare una classe di storage per le repliche degli oggetti come illustrato di seguito:

<?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> <Status>Enabled</Status> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <StorageClass>storage-class</StorageClass> </Destination> </Rule> </ReplicationConfiguration>

È possibile specificare qualsiasi classe di storage supportata da Amazon S3.

Esempio 2: Configurazione di replica con due regole

Nella configurazione di replica seguente:

  • Ogni regola filtra in base a un prefisso della chiave diverso, per cui ogni regola si applica a un sottoinsieme di oggetti diverso. In questo esempio, Amazon S3 replica gli oggetti con i nomi di chiave Tax/doc1.pdf e Project/project1.txt, ma non gli oggetti con il nome di chiave PersonalDoc/documentA.

  • La priorità delle regole non è rilevante perché le regole si applicano a due insiemi di oggetti distinti. L'esempio successivo mostra cosa accade quando viene applicata la priorità delle regole.

  • La seconda regola specifica una classe di archiviazione S3 Standard-IA per le repliche degli oggetti. Amazon S3 usa la classe di storage specificata per tali repliche.

<?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> <Status>Enabled</Status> <Priority>1</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Status>Enabled</Status> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> ... </Rule> <Rule> <Status>Enabled</Status> <Priority>2</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <Prefix>Project</Prefix> </Filter> <Status>Enabled</Status> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> <StorageClass>STANDARD_IA</StorageClass> </Destination> ... </Rule> </ReplicationConfiguration>
Esempio 3: Configurazione di replica con due regole con prefissi sovrapposti

In questa configurazione, le due regole specificano filtri con prefissi della chiave che si sovrappongono, star/ e starship. Entrambe le regole si applicano agli oggetti con il nome di chiave starship-x. In questo caso, Amazon S3 utilizza la priorità delle regole per determinare quale regola applicare. Più elevato è il numero, maggiore è la priorità.

<ReplicationConfiguration> <Role>arn:aws:iam::account-id:role/role-name</Role> <Rule> <Status>Enabled</Status> <Priority>1</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <Prefix>star</Prefix> </Filter> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> </Rule> <Rule> <Status>Enabled</Status> <Priority>2</Priority> <DeleteMarkerReplication> <Status>string</Status> </DeleteMarkerReplication> <Filter> <Prefix>starship</Prefix> </Filter> <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> </Rule> </ReplicationConfiguration>
Esempio 4: Procedure dettagliate di esempio

Per le procedure dettagliate di esempio, consulta Procedure dettagliate: esempi di configurazione della replica.

Per ulteriori informazioni sulla struttura XML della configurazione di replica, consulta PutBucketReplication nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

Compatibilità con le versioni precedenti

La versione più recente del codice XML di configurazione di replica è V2. Le configurazioni di replica XML V2 sono quelle che contengono l'elemento Filter per le regole e le regole che specificano S3 Replication Time Control (S3 RTC).

Per visualizzare la versione della configurazione di replica, puoi utilizzare l'operazione API GetBucketReplication. Per ulteriori informazioni, consulta la sezione GetBucketReplication nei riferimenti all'API di Amazon Simple Storage Service.

Per la compatibilità con le versioni precedenti, Amazon S3 continua a supportare la configurazione della replica XML V1. Se hai usato la configurazione di replica XML V1, tieni presente i problemi seguenti relativi alla compatibilità con le versioni precedenti:

  • Il codice XML di configurazione di replica V2 include l'elemento Filter per le regole. Con l'elemento Filter, puoi specificare filtri di oggetti basati sul prefisso della chiave o sui tag dell'oggetto, oppure su entrambi gli elementi, per specificare gli oggetti a cui si applica la regola. Filtraggio supportato della configurazione di replica XML V1 in base solo al prefisso della chiave. In tal caso, aggiungi Prefix direttamente come elemento figlio dell'elemento Rule, come nell'esempio seguente.

    <?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> <Status>Enabled</Status> <Prefix>key-prefix</Prefix> <Destination><Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

    Per la compatibilità con le versioni precedenti, Amazon S3 continua a supportare la configurazione V1.

  • Quando elimini un oggetto dal bucket di origine senza specificare un ID versione, Amazon S3 aggiunge un contrassegno di eliminazione. Se utilizzi il codice XML di configurazione di replica V1, Amazon S3 replica i contrassegni di eliminazione derivanti dalle operazioni dell'utente. In altre parole, Amazon S3 esegue la replica del contrassegno di eliminazione solo se un utente elimina un oggetto. Se un oggetto scaduto viene rimosso da Amazon S3 (come parte di un'operazione del ciclo di vita), Amazon S3 non replicherà il contrassegno di eliminazione.

    Nelle configurazioni di replica V2, puoi abilitare la replica dei contrassegni di eliminazione per le regole basate su tag. Per ulteriori informazioni, consultare Replica dei contrassegni di eliminazione tra i bucket.