Configuración de permisos - Amazon Simple Storage Service

Configuración de permisos

Cuando configura la replicación, 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 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 debe otorgar al propietario del bucket de origen permisos para almacenar las réplicas.

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 especificar el 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. Los tutoriales de ejemplo proporcionan instrucciones paso a paso para crear un rol de IAM. Para obtener más información, consulte Tutoriales: ejemplos para configurar la replicación.

  • En el siguiente ejemplo, se muestra una política de confianza donde usted identifica a Amazon S3 como la entidad principal del servicio 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 usted identifica a Amazon S3 como la entidad principal del servicio que puede asumir el rol. Esto resulta útil si está creando 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 una primera regla de replicación o un nuevo destino.

    { "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 la guía del usuario de IAM.

  • En el siguiente ejemplo, se muestra una política de acceso donde usted concede al rol 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, DOC-EXAMPLE-BUCKET1 es el bucket de origen y DOC-EXAMPLE-BUCKET2 es el bucket de destino.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" } ] }

    La política de acceso concede permisos para las siguientes acciones:

    • s3:GetReplicationConfiguration y s3:ListBucket: Permisos para estas acciones en el bucket de DOC-EXAMPLE-BUCKET1 (bucket de origen) permiten a Amazon S3 recuperar la configuración de replicación y mostrar el contenido del bucket. (El modelo de permisos actual requiere el permiso s3:ListBucket para acceder a marcadores de eliminación).

    • s3:GetObjectVersionForReplication y s3: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 y s3:ReplicateDelete: los permisos para estas acciones en todos los objetos del bucket DOC-EXAMPLE-BUCKET2 (el bucket de destino) 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.

      nota

      Los permisos para la acción s3:ReplicateObject en el bucket de DOC-EXAMPLE-BUCKET2 (el bucket de destino) también permiten la replicación de metadatos, como las etiquetas de objetos y las ACLS. Por lo tanto, no es necesario que conceda permiso de forma explícita para la acción s3:ReplicateTags.

    • s3:GetObjectVersionTagging: los permisos para esta acción en los objetos del bucket DOC-EXAMPLE-BUCKET1 (el bucket de origen) permiten que Amazon S3 lea las etiquetas de objetos para la replicación. Para obtener más información, consulte Categorización del almacenamiento mediante etiquetas. Si Amazon S3 no tiene estos permisos, 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.

    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 la 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. Para obtener más información, consulte Configuraciones de replicación adicionales.

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 de propietario del bucket de origen con el objetivo de realizar las acciones de replicación de la siguiente manera: En esta política, DOC-EXAMPLE-BUCKET2 es el bucket de destino.

nota

El formato de ARN del rol puede parecer diferente. Si el rol se crea mediante la consola, el formato de ARN es arn:aws:iam::account-ID:role/service-role/role-name. Si el rol se creó con AWS CLI, el formato ARN es arn:aws:iam::account-ID:role/role-name. Para obtener más información, consulte Roles de IAM en la Guía del usuario de IAM.

{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2" } ] }

Para ver un ejemplo, consulte La configuración de la reproducción para los buckets de origen y destino son propiedad de diferentes cuentas.

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 y s3: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, DOC-EXAMPLE-BUCKET2 es el bucket de destino.

    ... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-id:role/service-role/source-account-IAM-role" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" } ] ...

Granting permissions for S3 Batch Operations

La replicación por lotes de S3 proporciona una forma de replicar objetos que existían antes de que se estableciera una configuración de replicación, objetos que se han replicado anteriormente y objetos cuya replicación falló. 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 añadir un nuevo destino a una configuración existente a través de AWS Management Console. También puede iniciar la 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 políticas de IAM para replicación por lotes.

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.

Habilitar la recepción de objetos replicados desde un bucket de origen

Puede generar rápidamente las políticas necesarias para permitir la recepción de objetos replicados desde un bucket de origen a través de AWS Management Console.

  1. Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Instancias.

  3. En la lista Buckets, elija el bucket que desea utilizar como bucket de destino.

  4. Elija la pestaña Management (Administración) y desplácese hacia abajo hasta Replication rules (Reglas de replicación).

  5. Para Actions (Acciones), elija Receive replicated objects (Recibir objetos replicados).

    Siga las instrucciones e ingrese el ID de Cuenta de AWS de la cuenta del bucket de origen y elija Generate policies (Generar políticas). Esto generará una política de bucket de Amazon S3 y una política de claves de KMS.

  6. 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.

  7. (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.