Configuración de permisos para la replicación en directo
Cuando configura la replicación en directo en Amazon S3, debe adquirir los permisos necesarios de la siguiente manera:
-
Amazon S3 necesita permisos para replicar objetos en su nombre. Puede conceder estos permisos creando un rol de AWS Identity and Access Management (IAM) y luego especificando ese rol en la configuración de replicación.
-
Cuando los buckets de origen y destino no pertenecen a las mismas cuentas, el propietario del bucket de destino también debe otorgar al propietario del bucket de origen permisos para almacenar las réplicas.
Temas
Creación de un rol de IAM
De forma predeterminada, todos los recursos de Amazon S3 (buckets, objetos y subrecursos relacionados) son privados y solo el propietario del recurso puede acceder al él. Amazon S3 necesita permisos de lectura y replicación de objetos del bucket fuente. Puede conceder estos permisos creando un rol de IAM y especificando ese rol en la configuración de replicación.
En esta sección se explica la política de confianza y la política de permisos mínimos necesarios que se asocian a este rol de IAM. Los tutoriales de ejemplo proporcionan instrucciones paso a paso para crear un rol de IAM. Para obtener más información, consulte Ejemplos para configurar la replicación en directo.
La política de confianza identifica qué identidades de entidad principal pueden asumir el rol de IAM. La política de permisos especifica qué acciones puede realizar el rol de IAM, en qué recursos y en qué condiciones.
-
En el siguiente ejemplo, se muestra una política de confianza donde identifica a Amazon S3 como entidad principal de Servicio de AWS que puede asumir el rol:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
-
En el siguiente ejemplo, se muestra una política de confianza donde identifica a Amazon S3 y Operaciones por lotes de S3 como entidades principales del servicio que puede asumir el rol. Utilice este enfoque si va a crear un trabajo de Replicación por lotes. Para obtener más información, consulte Creación de un trabajo de Replicación por lotes para nuevas reglas de replicación o nuevos destinos.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service": [ "s3.amazonaws.com", "batchoperations.s3.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }
Para obtener más información acerca de los roles de IAM, consulte Roles de IAM en Guía del usuario de IAM.
-
En el siguiente ejemplo, se muestra una política de permisos donde concede al rol de IAM permisos para realizar tareas de replicación en su nombre. Cuando Amazon S3 asume el rol, adopta los permisos que especifique en esta política. En esta política,
es el bucket de origen yamzn-s3-demo-source-bucket
es el bucket de destino.amzn-s3-demo-destination-bucket
{ "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 política de permisos concede permisos para las siguientes acciones:
-
s3:GetReplicationConfiguration
ys3:ListBucket
: los permisos para estas acciones en el bucket de
permiten a Amazon S3 recuperar la configuración de replicación y mostrar el contenido del bucket. (El modelo de permisos actual requiere el permisoamzn-s3-demo-source-bucket
s3:ListBucket
para acceder a marcadores de eliminación). -
s3:GetObjectVersionForReplication
ys3:GetObjectVersionAcl
: los permisos para estas acciones se conceden en todos los objetos para permitir que Amazon S3 obtenga una versión de objeto específica y una lista de control de acceso (ACL) asociada con los objetos. -
s3:ReplicateObject
ys3:ReplicateDelete
: los permisos para estas acciones en todos los objetos del bucket
permiten que Amazon S3 replique los objetos o marcadores de eliminación en el bucket de destino. Para obtener información acerca de los marcadores de eliminación, consulte Cómo afectan las operaciones de eliminación a la replicación.amzn-s3-demo-destination-bucket
nota
Los permisos para la acción
s3:ReplicateObject
en el bucket de
también permiten la replicación de metadatos, como las etiquetas de objetos y las ACL. Por lo tanto, no es necesario que conceda permiso de forma explícita para la acciónamzn-s3-demo-destination-bucket
s3:ReplicateTags
. -
s3:GetObjectVersionTagging
: los permisos para esta acción en los objetos del bucket
permiten que Amazon S3 lea las etiquetas de objetos para la replicación. Para obtener más información acerca de las etiquetas de objeto, consulte Categorización del almacenamiento mediante etiquetas. Si Amazon S3 no tiene el permisoamzn-s3-demo-source-bucket
s3:GetObjectVersionTagging
, replica los objetos pero no las etiquetas de objetos.
Para obtener una lista de las acciones de Amazon S3, consulte Acciones, recursos y claves de condición para Amazon S3 en la Referencia de autorizaciones de servicios.
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.
importante
La Cuenta de AWS propietaria del rol de IAM debe tener los permisos para las acciones que concede al rol de IAM.
Por ejemplo, imagine que el bucket de origen contiene objetos que pertenecen a otra Cuenta de AWS. El propietario de los objetos debe conceder explícitamente a la Cuenta de AWS que posee el rol de IAM los permisos necesarios a través de las listas de control de acceso (ACL) del objeto. De lo contrario, Amazon S3 no puede acceder a los objetos y la replicación de los objetos dará un error. Para obtener más información acerca de los permisos de ACL, consulte Información general de las Listas de control de acceso (ACL).
Los permisos aquí descritos están relacionados con la configuración de replicación mínima. Si elige agregar configuraciones de replicación opcionales, debe otorgar permisos adicionales a Amazon S3. Por ejemplo, si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
-
Concesión de permisos cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS
Cuando los buckets de origen y destino no pertenecen a las mismas cuentas, el propietario del bucket de destino también debe agregar una política de bucket para conceder al propietario los permisos del bucket de origen con el objetivo de realizar las acciones de replicación, tal y como se muestra en el siguiente ejemplo. En esta política de ejemplo,
es el bucket de destino.amzn-s3-demo-destination-bucket
También puede usar la consola de Amazon S3 para generar automáticamente esta política de bucket. Para obtener más información, consulte Habilitar la recepción de objetos replicados desde un bucket de origen.
nota
El formato de ARN del rol podría parecer diferente. Si el rol se crea mediante la consola, el formato de ARN es arn:aws:iam::
. Si el rol se creó mediante la AWS CLI, el formato de ARN es account-ID
:role/service-role/role-name
arn:aws:iam::
. Para obtener más información, consulte Roles de IAM en la Guía del usuario de IAM. account-ID
:role/role-name
{ "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:::/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
amzn-s3-demo-destination-bucket
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
Para ver un ejemplo, consulte Configuración de replicación de buckets en cuentas diferentes.
Si los objetos en el bucket de origen tienen etiquetas, tenga en cuenta lo siguiente:
-
Si el propietario del bucket de origen concede permisos a Amazon S3 para las acciones
s3:GetObjectVersionTagging
ys3:ReplicateTags
para replicar las etiquetas de los objetos (mediante el rol de IAM), Amazon S3 replicará las etiquetas junto con los objetos. Para obtener información acerca del rol de IAM, consulte Creación de un rol de IAM. -
Si el propietario del bucket de destino no desea replicar las etiquetas, puede añadir la siguiente instrucción a la política del bucket de destino para denegar el permiso explícitamente para la acción
s3:ReplicateTags
: En esta política,
es el bucket de destino.amzn-s3-demo-destination-bucket
... "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
Si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
Habilitar la recepción de objetos replicados desde un bucket de origen
En lugar de agregar manualmente la política anterior al bucket de destino, puede generar rápidamente las políticas necesarias para habilitar la recepción de objetos replicados desde un bucket de origen a través de la consola de Amazon S3.
Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación izquierdo, elija Instancias.
-
En la lista Buckets, elija el bucket que desea utilizar como bucket de destino.
-
Elija la pestaña Management (Administración) y desplácese hacia abajo hasta Replication rules (Reglas de replicación).
-
Para Actions (Acciones), elija Receive replicated objects (Recibir objetos replicados).
Siga las peticiones e introduzca el ID de Cuenta de AWS de la cuenta del bucket de origen y elija Generar políticas. La consola genera una política de bucket de Amazon S3 y una política de claves de KMS.
-
Para agregar esta política a la política de bucket existente, elija Apply settings (Aplicar configuración) o elija Copy (Copiar) para copiar manualmente los cambios.
-
(Opcional) Copie la política de AWS KMS a la política de claves de KMS deseada en la consola de AWS Key Management Service.
Cambio de la titularidad de la réplica
Cuando las diferentes Cuentas de AWS son propietarias de los buckets de origen y destino, puede indicar a Amazon S3 que cambie la propiedad de la réplica a la Cuenta de AWS que posee el bucket de destino. Para obtener más información sobre invalidar al propietario, consulte Cambiar el propietario de la réplica.
Granting permissions for S3 Batch Operations
Replicación por lotes de S3 le ofrece una forma de replicar los siguientes objetos:
-
Objetos que existían antes de que se estableciera una configuración de replicación
-
Objetos que se han replicado anteriormente
-
Objetos que no se han podido replicar
Puede crear un trabajo de Replicación por lotes único al crear la primera regla en una nueva configuración de replicación o al agregar un nuevo destino a una configuración existente a través de la consola de Amazon S3. También puede iniciar Replicación por lotes para una configuración de replicación existente mediante la creación de un trabajo de Operaciones por lotes.
Para ver ejemplos de políticas y roles de IAM de Replicación por lotes, consulte Configuración de un rol de IAM para Replicación por lotes de S3.