Configurazione delle autorizzazioni per la replica in tempo reale - Amazon Simple Storage Service

Configurazione delle autorizzazioni per la replica in tempo reale

Per la configurazione della replica in tempo reale in Amazon S3, occorre acquisire le autorizzazioni necessarie, come indicato di seguito:

  • Amazon S3 necessita delle autorizzazioni per replicare gli oggetti per tuo conto. Queste autorizzazioni vengono concesse creando un ruolo AWS Identity and Access Management (IAM) e specificandolo nella configurazione della replica.

  • Quando i bucket di origine e di destinazione non sono di proprietà degli stessi account, il proprietario del bucket di destinazione deve concedere al proprietario del bucket di origine anche le autorizzazioni per archiviare le repliche.

Creazione di un ruolo IAM

Di default, tutte le risorse di Amazon S3, ossia bucket, oggetti e risorse secondarie correlate, sono private e solo il proprietario vi può accedere. Amazon S3 ha bisogno di autorizzazioni per leggere e replicare gli oggetti dal bucket di origine. Queste autorizzazioni vengono concesse creando un ruolo IAM e specificandolo nella configurazione della replica.

In questa sezione vengono illustrate la policy di attendibilità e la policy di autorizzazione minima richiesta associate a questo ruolo IAM. Le procedure dettagliate di esempio forniscono istruzioni dettagliate per la creazione di un ruolo IAM. Per ulteriori informazioni, consultare Esempi di configurazione della replica in tempo reale.

La policy di attendibilità identifica le identità principali che possono assumere il ruolo IAM. La policy di autorizzazione specifica le azioni che il ruolo IAM può eseguire, su quali risorse e in quali condizioni.

  • Di seguito viene mostrata una policy di attendibilità esemplificativa in cui si identifica Amazon S3 come principale del Servizio AWS che può assumere il ruolo.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  • Di seguito viene mostrata una policy di attendibilità esemplificativa in cui si identifica Amazon S3 e Operazioni in batch S3 come principali del servizio che può assumere il ruolo. Usare questo approccio quando si crea un processo Replica in batch. Per ulteriori informazioni, consultare Creazione di un processo Replica in batch per nuove destinazioni o regole di replica.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service": [ "s3.amazonaws.com", "batchoperations.s3.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }

    Per ulteriori informazioni sui ruoli IAM, consulta Ruoli IAM nella Guida per l'utente di IAM.

  • Di seguito viene mostrata una policy di autorizzazioni esemplificativa in cui si concedono al ruolo IAM le autorizzazioni per eseguire attività di replica per proprio conto. Quando Amazon S3 assume il ruolo, dispone delle autorizzazioni che sono state specificate in questa policy. In questa politica, amzn-s3-demo-source-bucket è il bucket di origine e amzn-s3-demo-destination-bucket è il nome del bucket di destinazione.

    { "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" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] }

    La policy di autorizzazioni concede le autorizzazioni per le seguenti azioni:

    • s3:GetReplicationConfiguration e s3:ListBucket: le autorizzazioni per queste azioni sul bucket amzn-s3-demo-source-bucket consentono ad Amazon S3 di recuperare la configurazione della replica ed elencare il contenuto del bucket. (Il modello di autorizzazioni corrente richiede l'autorizzazione s3:ListBucket per l'accesso ai contrassegni di eliminazione.)

    • s3:GetObjectVersionForReplication e s3:GetObjectVersionAcl: le autorizzazioni per queste operazioni concesse su tutti gli oggetti permettono ad Amazon S3 di ottenere una versione dell'oggetto specifica e la lista di controllo degli accessi (ACL) associata agli oggetti.

    • s3:ReplicateObject e s3:ReplicateDelete: le autorizzazioni per queste operazioni sugli oggetti nel bucket di amzn-s3-demo-destination-bucket permettono ad Amazon S3 di replicare gli oggetti o i contrassegni di eliminazione nel bucket di destinazione. Per informazioni sui contrassegni di eliminazione, consulta la sezione Effetto delle operazioni di eliminazione sulla replica.

      Nota

      Le autorizzazioni per l'azione s3:ReplicateObject nel bucket amzn-s3-demo-destination-bucket consentono anche la replica dei metadati, come i tag degli oggetti e le liste di controllo degli accessi. Pertanto non è necessario concedere esplicitamente l'autorizzazione per l'operazione s3:ReplicateTags.

    • s3:GetObjectVersionTagging: le autorizzazioni per questa azione sugli oggetti nel bucket amzn-s3-demo-source-bucket permettono ad Amazon S3 di leggere i tag degli oggetti per la replica. Per ulteriori informazioni sui tag degli oggetti, consulta Categorizzazione dell'archivio tramite tag. Se non dispone dell'autorizzazione s3:GetObjectVersionTagging, Amazon S3 replica gli oggetti ma non i relativi tag.

    Per visualizzare un elenco di operazioni Amazon S3, consulta Operazioni, risorse e chiavi di condizione per Amazon S3 nella Guida di riferimento per l'autorizzazione al servizio.

    Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

    Importante

    L'Account AWS che possiede il ruolo IAM deve disporre delle autorizzazioni per le operazioni che concede al ruolo.

    Supponiamo ad esempio che il bucket di origine contenga oggetti di proprietà di un altro Account AWS. Il proprietario degli oggetti deve concedere esplicitamente all'Account AWS proprietario del ruolo IAM le autorizzazione richieste tramite le liste di controllo degli accessi (ACL) degli oggetti. In caso contrario, Amazon S3 non può accedere agli oggetti e la replica degli oggetti ha esito negativo. Per informazioni sulle autorizzazioni ACL, consulta la sezione Panoramica delle liste di controllo accessi (ACL).

    Le autorizzazioni descritte si riferiscono alla configurazione di replica minima. Se scegli di aggiungere configurazioni di replica facoltative, devi concedere ulteriori autorizzazioni ad Amazon S3. Ad esempio, se si desidera replicare oggetti crittografati, è opportuno anche concedere le autorizzazioni chiave AWS Key Management Service (AWS KMS) necessarie. Per ulteriori informazioni, consultare Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Concessione di autorizzazioni quando i bucket di origine e di destinazione sono di proprietà di Account AWS diversi

Quando i bucket di origine e di destinazione non sono di proprietà degli stessi account, il proprietario del bucket di destinazione deve aggiungere anche una policy di bucket per concedere al proprietario del bucket di origine le autorizzazioni per eseguire le operazioni di replica, come mostrato nel seguente esempio. In questa policy di esempio, amzn-s3-demo-destination-bucket è il nome del bucket di destinazione.

È possibile utilizzare la console Amazon S3 anche per generare automaticamente questa policy di bucket. Per ulteriori informazioni, consulta Abilita la ricezione di oggetti replicati da un bucket di origine.

Nota

Il formato ARN del ruolo può apparire diverso. Se il ruolo è stato creato utilizzando la console, il formato ARN è arn:aws:iam::account-ID:role/service-role/role-name. Se il ruolo è stato creato utilizzando la AWS CLI, il formato ARN è arn:aws:iam::account-ID:role/role-name. Per ulteriori informazioni, consulta Ruoli IAM nella Guida per l'utente IAM.

{ "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" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket" } ] }

Per vedere un esempio, consulta Configurazione della replica per i bucket in account diversi.

In presenza di oggetti con tag nel bucket di origine, tenere in considerazione quanto segue:

  • Se il proprietario del bucket di origine concede ad Amazon S3 l'autorizzazione per le operazioni s3:GetObjectVersionTagging e s3:ReplicateTags per replicare i tag degli oggetti (tramite il ruolo IAM), Amazon S3 replica i tag insieme agli oggetti. Per informazioni sul ruolo IAM, consulta Creazione di un ruolo IAM.

  • Se il proprietario del bucket di destinazione non desidera replicare i tag, può aggiungere l'istruzione seguente alla policy del bucket di destinazione per rifiutare esplicitamente l'autorizzazione per l'operazione s3:ReplicateTags. In questa politica, amzn-s3-demo-destination-bucketè il nome del bucket di destinazione.

    ... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-id:role/service-role/source-account-IAM-role" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] ...
Nota

Se si desidera replicare oggetti crittografati, è opportuno anche concedere le autorizzazioni chiave AWS Key Management Service (AWS KMS) necessarie. Per ulteriori informazioni, consultare Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Abilitare la ricezione di oggetti replicati da un bucket di origine

Anziché aggiungere manualmente la policy precedente al bucket di destinazione, è possibile generare rapidamente le policy necessarie per abilitare la ricezione di oggetti replicati da un bucket di origine tramite la console Amazon S3.

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

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Nell'elenco Buckete, scegliere il bucket da utilizzare come bucket di destinazione.

  4. Seleziona la scheda Gestione, quindi scorri verso il basso fino a Regole di replica.

  5. Per Operazioni, scegliere Ricevi oggetti replicati.

    Segui le istruzioni e inserire l'ID Account AWS dell'account bucket di origine e scegli Genera policy. La console genera una policy del bucket Amazon S3 e una policy della chiave KMS.

  6. Per aggiungere questa policy alla policy del bucket esistente, scegli Applica le impostazioni oppure scegli Copia per copiare manualmente le modifiche.

  7. (Facoltativo) Copiare la policy AWS KMS per la policy della chiave KMS desiderata nella console AWS Key Management Service.

Modifica del proprietario della replica

Quando i bucket di origine e di destinazione sono di proprietà di Account AWS diversi, è possibile fare in modo che Amazon S3 modifichi la proprietà della replica assegnandola all'Account AWS proprietario del bucket di destinazione. Per ulteriori informazioni sulla sovrascrittura del proprietario, consulta Modifica del proprietario della replica.

Concessione di autorizzazioni per le operazioni in batch S3

Replica in batch S3 offre un metodo per replicare i seguenti oggetti:

  • Oggetti esistenti prima dell'applicazione di una configurazione della replica

  • Oggetti che sono stati replicati in precedenza

  • Oggetti la cui replica non è riuscita

Quando si crea la prima regola in una nuova configurazione della replica o quando si aggiunge una nuova destinazione a una configurazione esistente tramite la console Amazon S3, è possibile creare un processo Replica in batch una tantum. Inoltre, è possibile avviare Replica in batch per una configurazione della replica esistente creando un processo Operazioni in batch.

Per esempi di policy e ruoli IAM di Replica in batch, consulta Configurazione di un ruolo IAM per Replica in batch S3.