Tutorial: Transferir datos de Amazon S3 a Amazon S3 en un lugar diferenteCuenta de AWS - AWS DataSync

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Transferir datos de Amazon S3 a Amazon S3 en un lugar diferenteCuenta de AWS

ConAWS DataSync, puede mover datos entre cubos de Amazon S3 que pertenecen a diferentesCuentas de AWS.

importante

La copia de datosCuentas de AWS mediante los métodos de este tutorial solo funciona con Amazon S3.

Información general

En este tutorial, aprenderá cómoAWS Identity and Access Management (IAM) yAWS Command Line Interface (AWS CLI) pueden ayudarle a crearDataSync tareas que transfieran datos de Amazon S3 a otro bucket de S3 en otro bucket de S3 en otro bucket de S3Cuenta de AWS.

sugerencia

Siga este tutorial si sus buckets de S3 también están en otra ubicaciónRegiones de AWS. El proceso es prácticamente el mismo, excepto por algunos pasos adicionales. Sin embargo, tenga en cuenta queDataSync no se admiten este tipo de transferencias para las regiones deshabilitadas de forma predeterminada.

Este es el aspecto que puede tener este tipo de escenario:

  • Cuenta A: LaCuenta de AWS que está utilizando para administrar el bucket de S3 desde el que desea copiar datos.

  • Cuenta B: LaCuenta de AWS que está utilizando para administrar el bucket de S3 en el que desea copiar datos.

Transfers across accounts

El siguiente diagrama ilustra un escenario en el que se copian datos de un bucket de S3 a otro bucket de S3 que se encuentra en otro bucket de S3 que se encuentra en otro bucketCuenta de AWS.

Un ejemplo deDataSync escenario en el que los datos se mueven desde un depósito de S3 en unoCuenta de AWS (cuenta A) antes de pasar a un depósito de S3 en otroCuenta de AWS (cuenta B).
Transfers across accounts and Regions

El siguiente diagrama ilustra un escenario en el que se copian datos de un bucket de S3 a otro bucket de S3 que se encuentra en una región diferenteCuenta de AWS.

Un ejemplo deDataSync escenario en el que los datos se mueven desde un depósito de S3 en unaCuenta de AWS (cuenta A) y una región antes de pasar a un depósito de S3 en otraCuenta de AWS (cuenta B) y región diferentes.

Requisitos previos

Antes de empezar a trabajar en IAM para facilitar la transferencia entre cuentas, haz lo siguiente si aún no lo has hecho:

  1. Determina cuántos objetos vas a copiar. Utilice Amazon S3 Storage Lens para averiguar cuántos objetos hay en su depósito.

    sugerencia

    Al transferir entre cubos de S3, noDataSync se pueden copiar más de 25 millones de objetos por tarea. Si tu bucket tiene más de 25 millones de objetos, te recomendamos un par de opciones:

    • Organice sus objetos con prefijos que no incluyan más de 25 millones de objetos. A continuación, puede crearDataSync tareas independientes para cada prefijo.

    • Filtrar los datos transferidos porDataSync.

  2. Crea una ubicaciónDataSync de origen con la cuenta A para el bucket de S3 del que vas a copiar los datos.

  3. Configure elAWS CLI con la cuenta A. Necesitará elAWS CLI para crear la ubicación deDataSync destino para el bucket de S3 en la cuenta B.

Paso 1: crear un rol de IAM paraDataSync la cuenta A

Necesita un rol de IAM para permitir escribirDataSync en el bucket de S3 de la cuenta B.

Al crear una ubicación para un depósito,DataSync puede crear y asumir automáticamente un rol con los permisos adecuados para acceder a ese depósito. Dado que está realizando transferencias entre cuentas, debe crear el rol manualmente.

Para obtener más información, consulte Crear un rol para unaServicio de AWS (consola) en la Guía del usuario de IAM.

Crear el rol de IAM

Cree un rolDataSync como entidad de confianza.

Para crear el rol de IAM
  1. Inicie sesiónAWS Management Console con la cuenta A.

  2. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  3. En el panel de navegación izquierdo, en Administración de acceso, elija Funciones y, a continuación, elija Crear rol.

  4. En la página Seleccionar entidad de confianza, en Tipo de entidad de confianza, elija Servicio de AWS.

  5. En Caso de uso, elija DataSyncen la lista desplegable y seleccione DataSync. Elija Siguiente.

  6. Elija Next (Siguiente) en la página Add permissions (Agregar permisos).

  7. Asigne un nombre a su rol y elija Crear rol.

Adjuntar una política personalizada al rol de IAM

El rol de IAM necesita una política que permitaDataSync escribir en su bucket de S3 en la cuenta B.

Para adjuntar una política personalizada al rol de IAM
  1. En la página Funciones de la consola de IAM, busque la función que acaba de crear y elija su nombre.

  2. En la página de detalles del rol, elija la pestaña Permisos. Elija Agregar permisos y, a continuación, Crear política en línea.

  3. Elija la pestaña JSON y haga lo siguiente:

    1. Pegue el siguiente JSON en el editor de políticas:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket/*" } ] }
    2. Reemplaceaccount-b-bucket con el nombre del bucket de S3 en la cuenta B.

  4. Elija Review policy (Revisar política).

  5. Asigne un nombre a su política y seleccione Crear política.

Paso 2: Desactiva las ACL para tu bucket de S3 en la cuenta B

Es importante que todos los datos que copies al bucket de S3 pertenezcan a la cuenta B. Para asegurarte de que la cuenta B es la propietaria de los datos, desactiva las listas de control de acceso (ACL) del bucket. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket en la Guía del usuario de Simple Storage Service (Amazon S3).

Para deshabilitar las ACL de un bucket de S3
  1. EnAWS Management Console, cambie a la Cuenta B.

  2. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

  3. En el panel de navegación izquierdo, elija Instances (Instancias).

  4. En la lista de cubos, elige el bucket de S3 al que vas a transferir datos.

  5. En la página de detalles del bucket, selecciona la pestaña Permisos.

  6. En Object Ownership (Propiedad de objeto), elija Edit (Editar).

  7. Si aún no está seleccionada, selecciona la opción ACL deshabilitadas (recomendada).

  8. Elija Guardar cambios.

Paso 3: Actualice la política de bucket de S3 en la cuenta B

En la cuenta B, modifique la política de bucket de S3 para permitir el acceso al rol de IAM para el que creóDataSync en la cuenta A.

La política actualizada (que se proporciona en las siguientes instrucciones) incluye dos principios:

  • El primer principio especifica el rol de IAM en la cuenta A que creó en el paso 1. Este rol permiteDataSync escribir en el bucket de S3 de la cuenta B.

  • El segundo principio especifica la función de IAM en la cuenta A que se utiliza para acceder a la consola oAWS CLI. En el paso 4, utilizarás esta función al crear la ubicación de destino para el bucket de S3.

Para actualizar la política de bucket de S3
  1. Mientras esté en la consola S3 y utilice la cuenta B, elija el bucket de S3 al que va a copiar los datos.

  2. En la página de detalles del bucket, selecciona la pestaña Permisos.

  3. En Política de bucket, seleccione Editar y haga lo siguiente para modificar su política de bucket de S3:

    1. Actualice el contenido del editor para incluir las siguientes declaraciones de política:

      { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-datasync-role" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::account-b-bucket", "arn:aws:s3:::account-b-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-your-role" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::account-b-bucket" } ] }
    2. account-a-idSustitúyalo por elCuenta de AWS número de cuenta A.

    3. name-of-datasync-roleSustitúyalo por el rol de IAM para el que creasteDataSync en la cuenta A (en el paso 1).

    4. Reemplaceaccount-b-bucket con el nombre del bucket de S3 en la cuenta B.

    5. name-of-your-roleSustitúyalo por el rol de IAM que usa para acceder a la consola oAWS CLI por la cuenta A.

  4. Elija Guardar cambios.

Paso 4: Crear una ubicación deDataSync destino para el bucket de S3

Después de crear una ubicación para el bucket de S3, puede ejecutar laDataSync tarea. Sin embargo, laDataSync consola no admite la creación de ubicaciones en diferentes cuentas. Debe crear la ubicación con elAWS CLI antes de poder ejecutar la tarea.

Para crear unaDataSync ubicación con la CLI
  1. Abra un terminal .

  2. Asegúrese de que su perfil de CLI esté configurado para usar la cuenta A.

  3. Copia el siguiente comando:

    aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::account-b-bucket \ --s3-config '{"BucketAccessRoleArn":"arn:aws:iam::account-a-id:role/name-of-datasync-role"}'
  4. Reemplaceaccount-b-bucket con el nombre del bucket de S3 en la cuenta B.

  5. account-a-idSustitúyalo por elCuenta de AWS número de cuenta A.

  6. name-of-datasync-roleSustitúyalo por el rol de IAM para el que creasteDataSync en la cuenta A (en el paso 1).

  7. Si el depósito de la cuenta B se encuentra en una región diferente al depósito de la cuenta A, añada la--region opción al final del comando para especificar la región en la que reside el depósito de la cuenta B. Por ejemplo, --region us-west-1.

  8. Ejecute el comando .

    Si el comando devuelve un ARN deDataSync ubicación similar a este, significa que la ubicación se creó correctamente:

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  9. Vuelva a la cuenta A en elAWS Management Console.

  10. Abra laDataSync consola en https://console.aws.amazon.com/datasync/.

  11. En el panel de navegación izquierdo, elija Ubicaciones.

    Puede ver la ubicación del bucket de S3 en la cuenta B que acaba de crear con la CLI.

Paso 5: crear e iniciar unaDataSync tarea

Antes de transferir tus datos, recapitulemos lo que has hecho hasta ahora:

  • Creé un rol de IAM en la cuenta A paraDataSync poder escribir datos en el bucket de S3 de la cuenta B.

  • Configuró su bucket de S3 en la cuenta B para garantizar queDataSync la tarea funcione.

  • Creaste tus ubicacionesDataSync de origen y destino en la cuenta A.

Para crear e iniciar laDataSync tarea
  1. Mientras sigues usando laDataSync consola de la cuenta A, expande Transferencia de datos en el panel de navegación izquierdo y, a continuación, selecciona Tareas y Crear tarea.

    nota

    Debe iniciar sesión en la consola con la misma función de IAM para la cuenta A que especificó en la política de bucket de S3 en el paso 3.

  2. Si el depósito de la cuenta B está en una región diferente al depósito de la cuenta A, elija la región del depósito de la cuenta B en el panel de navegación.

    Debe iniciar laDataSync tarea desde la región de la ubicación de destino (en este caso, el bucket de la cuenta B) para evitar un error de conexión.

  3. En la página Configurar ubicación de origen, elija Elegir una ubicación existente.

  4. Para las transferencias entre regiones, elige la región en la que se encuentra el bucket de la cuenta A.

  5. Elija la ubicación de origen desde la que va a copiar los datos (el bucket de S3 de la cuenta A) y luego Siguiente.

  6. En la página Configurar ubicación de destino, elija Elegir una ubicación existente. Elija la ubicación de destino a la que va a copiar los datos (el bucket de S3 de la cuenta B) y luego Siguiente.

  7. En la página Configurar ajustes, asigne un nombre a la tarea. Según sea necesario, configure ajustes adicionales, como especificar un grupo deCloudWatch registro de Amazon. Elija Siguiente.

  8. En la página de revisión, revisa la configuración y selecciona Crear tarea.

  9. En la página de detalles de la tarea, elija Iniciar y, a continuación, elija una de las siguientes opciones:

    • Para ejecutar la tarea sin modificaciones, elija Comenzar con valores predeterminados.

    • Para modificar la tarea antes de ejecutarla, elija Comenzar con opciones sustitutivas.

Cuando termine la tarea, compruebe el depósito de S3 en la cuenta B. Debería ver los datos del depósito de la cuenta A.

Recursos relacionados

Para obtener más información acerca de lo que ha hecho en este tutorial, consulte los temas siguientes: