Tutorial: Transferencia de datos del almacenamiento local 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: Transferencia de datos del almacenamiento local a Amazon S3 en un lugar diferenteCuenta de AWS

Cuando se utilizaAWS DataSync con almacenamiento local, normalmente se copian los datos a un servicioAWS de almacenamiento que pertenece alCuenta de AWS mismo que elDataSync agente. Sin embargo, hay situaciones en las que puede que necesite transferir datos a un bucket de Amazon S3 asociado a una cuenta diferente.

importante

Copiar datosCuentas de AWS mediante los métodos de este tutorial solo funciona cuando Amazon S3 es una de lasDataSync ubicaciones.

Información general

En este tutorial, aprenderás cómoAWS Identity and Access Management (IAM) y theAWS Command Line Interface (AWS CLI) pueden ayudarte a crearDataSync tareas que transfieran datos del almacenamiento local a un bucket de S3 en otroCuenta de AWS.

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

  • Cuenta A: LaCuenta de AWS que usa para administrar los recursos de la red. El punto de conexión con el que se activa elDataSync agente también pertenece a esta cuenta.

    nota

    Los pasos de este tutorial se aplican a cualquier tipo de punto de conexión con el que active su agente.

  • Cuenta B: laCuenta de AWS del bucket de S3 en el que desea copiar datos.

En el siguiente diagrama se ilustra este escenario.

Un ejemplo deDataSync escenario de transferencia de datos desde un sistema de almacenamiento local a través de Internet aAWS. Los datos se transfieren primero a unaCuenta de AWS (cuenta A) y, finalmente, a un bucket de Amazon S3 en otraCuenta de AWS (cuenta B).

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. Configure la red para que su sistema de almacenamiento local pueda conectarse conAWS.

  2. Despliegue y active suDataSync agente con la cuenta A.

  3. Crea una ubicaciónDataSync de origen con la cuenta A para el sistema de almacenamiento local desde el que vas a copiar los datos.

  4. 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. Como 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.

Adjunte 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. 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" }
  8. Vuelva a la cuenta A en elAWS Management Console.

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

  10. 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:

  • Implementó y activó suDataSync agente en la cuenta A para que pueda leer el contenido de su sistema de almacenamiento autogestionado y comunicarse con élAWS.

  • 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. En la página Configurar ubicación de origen, elija Elegir una ubicación existente. Elija la ubicación de origen desde la que va a copiar los datos (su almacenamiento local) y luego Siguiente.

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

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

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

  6. 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, verá los datos de su almacenamiento local en el bucket de S3. Ahora puede acceder a los datos del bucket desde la cuenta B.

Recursos relacionados

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