Saltar al contenido

¿Cómo puedo configurar la replicación entre cuentas en mis buckets de Amazon S3 con el bloqueo de objetos?

5 minutos de lectura
0

Quiero configurar la replicación entre cuentas en un bucket de Amazon Simple Storage Service (Amazon S3) donde esté activado el bloqueo de objetos.

Resolución

Activación de Object Lock para el bucket de destino

Para configurar la replicación de un bucket de Amazon S3, activa Object Lock para el bucket de destino.

Nota: Después de activar S3 Object Lock, no podrás desactivarlo ni suspender el control de versiones del bucket.

Creación de un rol de IAM para la replicación con los permisos necesarios

Crea un rol de AWS Identity and Access Management (IAM) para replicarlo en la consola de IAM de la cuenta de origen con una relación de confianza para Amazon S3.

Ejemplo:


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

Adjunta los siguientes permisos al rol de 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/*"  
      ]  
    }  
  ]  
}

Si usas claves de AWS Key Management Service (AWS KMS), adjunta también los siguientes permisos al rol de 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"  
    }  
  ]  
}

Actualización de los permisos de la clave de AWS KMS

Configura la clave de AWS KMS para que la cuenta de destino permita el acceso al rol de IAM replicado en la cuenta de origen. Puedes usar el cifrado SSE-S3, pero no puedes usar la clave de AWS KMS administrada aws/S3 para la replicación entre cuentas. Para obtener más información, consulta Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Ejemplo:


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

Nota: Si utilizas un comodín (\ *) en Resource en la política de claves, la política concede el permiso solo al rol de IAM replicado para la clave de AWS KMS. La política no permite que el rol replicado aumente sus permisos.

Adición de la siguiente política de bucket a la cuenta de destino

En la sección Principal, añade el nombre de recurso de Amazon (ARN) del rol de IAM de replicación que has creado.

Ejemplo:


{  "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"  
      ]  
    }  
  ]  
}

Replicación del rol de IAM para tu bucket de S3

Sigue estos pasos:

  1. Abre la consola de Amazon S3.
  2. Selecciona Buckets y, a continuación, selecciona el bucket de origen.
  3. Elige la pestaña Administración.
  4. En Reglas de replicación, elige Crear regla de replicación.
  5. Introduce un nombre para la regla.
  6. En Bucket de origen, elige un ámbito de regla para determinar si la replicación se aplica a un prefijo de objeto específico o a todo el contenido del bucket.
  7. En la sección Destino, selecciona Specify a bucket in another account (Especificar un bucket de otra cuenta) y, a continuación, introduce el nombre del bucket de destino y el ID de cuenta.
  8. En Rol de IAM, elige Seleccionar entre roles de IAM existentes.
  9. Elige Crear un nuevo rol.
    Alternativa:
    Introduce el ARN del rol de IAM para usar un rol que ya hayas creado o si tienes reglas de replicación existentes.
  10. Para replicar objetos cifrados con AWS KMS, sigue estos pasos:
    En Cifrado, selecciona Replicate objects encrypted with AWS Key Management Service (AWS KMS) (Replicar objetos cifrados con AWS Key Management Service [AWS KMS]).
    Introduce el ARN de tu clave de AWS KMS.
  11. (Opcional) Configura las opciones de Clase de almacenamiento de destino y Additional replication options (Opciones de replicación adicionales).
  12. Revisa la configuración y, a continuación, selecciona Guardar.
  13. (Opcional) Replica los objetos existentes con un trabajo único de Operaciones por lotes de Amazon S3.

Comprobación de que hayas replicado el rol de IAM en todas las cuentas

Para probar la regla de replicación, añade nuevos objetos al bucket de origen y, a continuación, comprueba si hay objetos replicados en el bucket de destino.

Información relacionada

Configurar S3 Object Lock

Cómo funciona S3 Object Lock

OFICIAL DE AWSActualizada hace 7 meses