Salta al contenuto

Come faccio a configurare la replica tra più account nei miei bucket Amazon S3 con Object Lock?

4 minuti di lettura
0

Desidero configurare la replica tra più account su un bucket Amazon Simple Storage Service (Amazon S3) in cui Object Lock è attivato.

Risoluzione

Attiva Object Lock per il bucket di destinazione

Per configurare la replica per un bucket Amazon S3, attiva Object Lock per il bucket di destinazione.

Nota: Dopo aver abilitato Object Lock in S3, non puoi disattivarlo o sospendere il controllo delle versioni per il bucket.

Crea un ruolo IAM per la replica con le autorizzazioni necessarie

Crea un ruolo AWS Identity and Access Management (AWS IAM) per la replica nella console IAM per l'account di origine con una relazione di attendibilità per Amazon S3.

Esempio:


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

Collega le seguenti autorizzazioni al ruolo IAM:


{  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:GetObjectRetention",  
        "s3:GetObjectVersionTagging",  
        "s3:GetObjectVersionAcl",  
        "s3:ListBucket",  
        "s3:GetObjectVersionForReplication",  
        "s3:GetObjectLegalHold",  
        "s3:GetReplicationConfiguration"  
      ],  
      "Resource": [  
        "arn:aws:s3:::SourceBucketName/*",  
        "arn:aws:s3:::SourceBucketName"  
      ]  
    },  
    {  
      "Sid": "DestinationBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetObjectVersionTagging",  
        "s3:ReplicateTags",  
        "s3:ReplicateDelete"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*"  
      ]  
    }  
  ]  
}

Se utilizzi chiavi del Servizio di gestione delle chiavi AWS (AWS KMS), collega anche le seguenti autorizzazioni al ruolo IAM:


{  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:GetObjectRetention",  
        "s3:GetObjectVersionTagging",  
        "s3:GetObjectVersionAcl",  
        "s3:ListBucket",  
        "s3:GetObjectVersionForReplication",  
        "s3:GetObjectLegalHold",  
        "s3:GetReplicationConfiguration"  
      ],  
      "Resource": [  
        "arn:aws:s3:::SourceBucketName/*",  
        "arn:aws:s3:::SourceBucketName"  
      ]  
    },  
    {  
      "Sid": "DestinationBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetObjectVersionTagging",  
        "s3:ReplicateTags",  
        "s3:ReplicateDelete"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*"  
      ]  
    },  
    {  
      "Sid": "SourceBucketKMSKey",  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey"  
      ],  
      "Effect": "Allow",  
      "Resource": "SourceBucketKMSKeyARN"  
    },  
    {  
      "Sid": "DestinationBucketKMSKey",  
      "Action": [  
        "kms:Encrypt",  
        "kms:GenerateDataKey"  
      ],  
      "Effect": "Allow",  
      "Resource": "DestinationBucketKMSKeyARN"  
    }  
  ]  
}

Aggiorna le autorizzazioni della chiave AWS KMS

Configura la chiave AWS KMS per l'account di destinazione in modo da consentire l'accesso al ruolo IAM replicato nell'account di origine. Puoi utilizzare la crittografia SSE-S3, ma non puoi utilizzare la chiave AWS KMS gestita AWS/s3 per la replica tra account. Per ulteriori informazioni, consulta Replica di oggetti crittografati (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Esempio:


{  "Sid": "AllowS3ReplicationSourceRoleToUseTheKey",  
  "Effect": "Allow",  
  "Principal": {  
    "AWS": "arn:aws:iam::123456789101:role/s3-replication-role"  
  },  
  "Action": [  
    "kms:GenerateDataKey",  
    "kms:Encrypt"  
  ],  
  "Resource": "*"  
}

Nota: se utilizzi un carattere jolly (\ *) per Resource nella policy della chiave, la policy concede l'autorizzazione solo al ruolo IAM replicato per la chiave AWS KMS. La policy non consente al ruolo replicato di elevare le proprie autorizzazioni.

Aggiungi la seguente policy del bucket all'account di destinazione

Nella sezione Principal, aggiungi il nome della risorsa Amazon (ARN) del ruolo IAM di replica che hai creato.

Esempio:


{  "Version": "2012-10-17",  
  "Id": "PolicyForDestinationBucket",  
  "Statement": [  
    {  
      "Sid": "ReplicationPermissions",  
      "Effect": "Allow",  
      "Principal": {  
        "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role"  
      },  
      "Action": [  
        "s3:ReplicateDelete",  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetBucketVersioning",  
        "s3:PutBucketVersioning"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*",  
        "arn:aws:s3:::DestBucketName"  
      ]  
    }  
  ]  
}

Replica il ruolo IAM per il bucket S3

Completa i seguenti passaggi:

  1. Apri la console di Amazon S3.
  2. Scegli Bucket, quindi seleziona il bucket di origine.
  3. Scegli la scheda Gestione.
  4. In Regole di replica, scegli Crea regola di replica.
  5. Inserisci un nome per la regola.
  6. In Bucket di origine, scegli un ambito di regole per determinare se la replica si applica al prefisso di un oggetto specifico o all'intero contenuto del bucket.
  7. Nella sezione Destinazione, seleziona Specifica un bucket in un altro account, quindi inserisci il nome del bucket di destinazione e l'ID dell'account.
  8. In Ruolo IAM, seleziona Scegli tra ruoli IAM esistenti.
  9. Scegli Crea nuovo ruolo.
    - oppure -
    Inserisci l'ARN del ruolo IAM per utilizzare un ruolo che hai già creato o se hai regole di replica esistenti.
  10. Per replicare oggetti crittografati con AWS KMS:
    In Crittografia, seleziona Replica oggetti crittografati con AWS KMS.
    Inserisci l'ARN della chiave AWS KMS.
  11. (Facoltativo) Configura Classe di storage di destinazione e Opzioni di replica aggiuntive.
  12. Rivedi la configurazione, quindi scegli Salva.
  13. (Facoltativo) Replica gli oggetti esistenti con un unico processo di operazioni in batch Amazon S3.

Verifica di aver replicato il ruolo IAM tra gli account

Per testare la regola di replica, aggiungi nuovi oggetti al bucket di origine, quindi controlla gli oggetti replicati nel bucket di destinazione.

Informazioni correlate

Configurazione di Object Lock in S3

Come funziona Object Lock in S3

AWS UFFICIALEAggiornata 5 mesi fa