

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 a través de Cuentas de AWS
<a name="s3-cross-account-transfer"></a>

Cuando se usa AWS DataSync con almacenamiento local, normalmente se transfieren datos a un servicio AWS de almacenamiento que pertenece al Cuenta de AWS mismo que su agente. DataSync Sin embargo, hay situaciones en las que es posible que necesite transferir datos a un bucket de Amazon S3 asociado a una cuenta diferente.

**importante**  
La transferencia de datos Cuentas de AWS mediante los métodos de este tutorial solo funciona cuando Amazon S3 es una de las ubicaciones de DataSync transferencia.

## Descripción general de
<a name="s3-cross-account-overview"></a>

No es raro tener que transferir datos entre diferentes equipos Cuentas de AWS, especialmente si tiene equipos independientes que administran los recursos de su organización. Así es como DataSync puede ser una transferencia entre cuentas mediante una transferencia entre cuentas:
+ **Cuenta de origen**: la que se utiliza Cuenta de AWS para administrar los recursos de la red. Esta es la cuenta con la que activas a tu DataSync agente.
+ **Cuenta de destino**: la que se utiliza Cuenta de AWS para administrar el depósito de S3 al que necesita transferir los datos.

En el siguiente diagrama se ilustra este tipo de escenario.

![\[Un ejemplo de DataSync situación en la que los datos se transfieren de un sistema de almacenamiento local a través de una Direct Connect conexión a través de Internet a AWS. Los datos se transfieren primero a una Cuenta de AWS (su cuenta de origen) y, finalmente, a un bucket de Amazon S3 en otra Cuenta de AWS (su cuenta de destino).\]](http://docs.aws.amazon.com/es_es/datasync/latest/userguide/images/s3-cross-account-diagram.png)


## Requisito previo: permisos de cuenta de origen necesarios
<a name="onprem-s3-cross-account-required-permissions-source"></a>

Para su fuente Cuenta de AWS, hay dos conjuntos de permisos que debe tener en cuenta en este tipo de transferencia entre cuentas:
+ *Permisos de usuario* que permiten a un usuario trabajar con ellos DataSync (puede ser usted o su administrador de almacenamiento). Estos permisos le permiten crear DataSync ubicaciones y tareas.
+ *DataSync permisos de servicio* que permiten DataSync transferir datos al depósito de cuentas de destino.

------
#### [ User permissions ]

En su cuenta de origen, añada al menos los siguientes permisos a un rol de IAM para crear sus DataSync ubicaciones y tareas. Para obtener información sobre cómo añadir permisos a un rol, consulte [creación](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) o [modificación](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) de un rol de IAM.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SourceUserRolePermissions",
            "Effect": "Allow",
            "Action": [
                "datasync:CreateLocationS3",
                "datasync:CreateTask",
                "datasync:DescribeLocation*",
                "datasync:DescribeTaskExecution",
                "datasync:ListLocations",
                "datasync:ListTaskExecutions",
                "datasync:DescribeTask",
                "datasync:CancelTaskExecution",
                "datasync:ListTasks",
                "datasync:StartTaskExecution",
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "IAMPermissions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:ListRoles",
                "iam:CreatePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/DataSync-*"
        },
        {
            "Sid": "IAMAttachRolePermissions",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/DataSync-*",
            "Condition": {
            "ArnLike": {
                "iam:PolicyARN": [
                   "arn:aws:iam::111122223333:policy/DataSync-*",
                   "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess",
                   "arn:aws:iam::aws:policy/service-role/AWSDataSyncFullAccess"
                ]
            }
          }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "datasync.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

**sugerencia**  
Para configurar los *permisos de usuario*, considere [AWSDataSyncFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-awsdatasyncfullaccess)utilizarlos. Se trata de una política AWS gestionada que proporciona al usuario un acceso total DataSync y mínimo a sus dependencias.

------
#### [ DataSync service permissions ]

El DataSync servicio necesita los siguientes permisos en la cuenta de origen para transferir los datos al depósito de cuentas de destino.

Más adelante en este tutorial, añadirá estos permisos al [crear un rol de IAM](#s3-cross-account-create-iam-role-source-account) para DataSync. También debe especificar este rol (`source-datasync-role`) en su [política de segmentos de destino](#s3-cross-account-update-s3-policy-destination-account) y al [crear su ubicación de DataSync destino](#s3-cross-account-create-datasync-destination).

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    },
    {
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:ListMultipartUploadParts",
        "s3:PutObject",
        "s3:GetObjectTagging",
        "s3:PutObjectTagging"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
    }
  ]
}
```

------

## Requisito previo: permisos de cuenta de destino obligatorios
<a name="onprem-s3-cross-account-required-permissions-destination"></a>

En tu cuenta de destino, tus *permisos de usuario* deben permitirte actualizar la política del depósito de destino e inhabilitar sus listas de control de acceso (ACLs). Para obtener más información sobre estos permisos específicos, consulte la [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)[https://docs.aws.amazon.com/AmazonS3/latest/userguide/](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

## Paso 1: En tu cuenta de origen, crea un DataSync agente
<a name="s3-cross-account-deploy-agent"></a>

Para empezar, debe crear un DataSync agente que pueda leer el contenido de su sistema de almacenamiento local y comunicarse con el DataSync servicio. Este proceso incluye la implementación de un agente en su entorno de almacenamiento en las instalaciones y la activación del agente en su origen Cuenta de AWS.

**nota**  
Los pasos de este tutorial se aplican a cualquier tipo de agente y punto de conexión de servicio que utilice.

**Para crear un agente DataSync**

1. [Implemente un DataSync agente](deploy-agents.md) en su entorno de almacenamiento local.

1. [Elija un punto final de servicio](choose-service-endpoint.md) con AWS el que el agente se comunicará.

1. [Active su agente](activate-agent.md) en su cuenta de origen.

## Paso 2: En su cuenta de origen, cree un rol de DataSync IAM para acceder al bucket de destino
<a name="s3-cross-account-create-iam-role-source-account"></a>

En tu cuenta de origen, necesitas un rol de IAM que te dé DataSync los permisos para transferir datos al depósito de tu cuenta de destino. 

Como vas a realizar transferencias entre cuentas, debes crear el rol manualmente. (DataSyncpuede crearte este rol en la consola al transferirlo a la misma cuenta).

### Cree el rol DataSync de IAM
<a name="s3-cross-account-create-iam-role"></a>

Cree un rol de IAM DataSync como entidad de confianza.

**Creación del rol de IAM**

1. Inicie sesión en el Consola de administración de AWS con su cuenta de origen.

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación situado a la izquierda, en **Administración de acceso**, elija **Roles** y luego **Crear rol**.

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

1. **En Caso de uso**, elige una opción **DataSync**en la lista desplegable y selecciona **DataSync**. Elija **Siguiente**.

1. En la página **Agregar permisos**, elija **Siguiente**.

1. Introduzca un nombre de rol y elija **Crear rol**.

Para obtener más información, consulte [Crear un rol para una Servicio de AWS (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) en la Guía del *usuario de IAM*.

### Añada permisos al rol de DataSync IAM
<a name="s3-cross-account-attach-custom-policy"></a>

El rol de IAM que acaba de crear necesita los permisos que permiten transferir datos DataSync al bucket de S3 de su cuenta de destino.

**Para añadir permisos a su rol de IAM**

1. En la página **Roles** de la consola de IAM, busque el rol que acaba de crear y seleccione el nombre.

1. En la página de detalles del rol, elija la pestaña **Permisos**. Elija **Agregar permisos** y luego **Crear política insertada**.

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

   1. Pegue el siguiente JSON en el editor de políticas:
**nota**  
El valor de `aws:ResourceAccount` debe ser el ID de la cuenta propietaria del bucket de Amazon S3 especificado en la política.

------
#### [ JSON ]

****  

      ```
      {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:GetBucketLocation",
                   "s3:ListBucket",
                   "s3:ListBucketMultipartUploads"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
               "Condition": {
                   "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                   }
               }
           },
           {
               "Action": [
                   "s3:AbortMultipartUpload",
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:GetObjectTagging",
                   "s3:GetObjectVersion",
                   "s3:GetObjectVersionTagging",
                   "s3:ListMultipartUploadParts",
                   "s3:PutObject",
                   "s3:PutObjectTagging"
                 ],
               "Effect": "Allow",
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "123456789012"
                   }
               }
           }
       ]
      }
      ```

------

   1. Reemplace cada instancia de `amzn-s3-demo-destination-bucket` por el nombre del bucket de S3 de su cuenta de destino.

1. Elija **Siguiente**. Escriba un nombre para la política y elija **Crear política**.

## Paso 3: en su cuenta de destino, actualice su política de buckets de S3
<a name="s3-cross-account-update-s3-policy-destination-account"></a>

En su cuenta de destino, modifique la política del bucket de S3 de destino para incluir el [rol de DataSync IAM](#s3-cross-account-create-iam-role-source-account) que creó en su cuenta de origen.

**Antes de empezar**: asegúrese de tener los [permisos necesarios para su cuenta de destino](#onprem-s3-cross-account-required-permissions-destination).

**Cómo actualizar la política de bucket de S3 de destino**

1. En el Consola de administración de AWS, cambia a tu cuenta de destino.

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación situado a la izquierda, elija **Buckets**. 

1. En la lista **Buckets**, elija el bucket de S3 al que va a transferir los datos.

1. En la página de detalles del bucket, elija la pestaña **Permisos**.

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

   1. Actualice lo que hay en el editor para incluir las siguientes declaraciones de política:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "DataSyncCreateS3LocationAndTaskAccess",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/source-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:::amzn-s3-demo-destination-bucket",
              "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ]
          }
        ]
      }
      ```

------

   1. Sustituya cada instancia de `source-account` por el ID de Cuenta de AWS de su cuenta de origen.

   1. `source-datasync-role`Sustitúyala por la [función de IAM para la que creaste DataSync en tu cuenta de origen](#s3-cross-account-create-iam-role-source-account).

   1. Reemplace cada instancia de `amzn-s3-demo-destination-bucket` por el nombre del bucket de S3 de su cuenta de destino.

1. Seleccione **Save changes (Guardar cambios)**.

## Paso 4: En tu cuenta de destino, inhabilita tu bucket ACLs de S3
<a name="s3-cross-account-disable-acls-destination-account"></a>

Es importante que todos los datos que copie en el bucket de S3 pertenezcan a su cuenta de destino. Para asegurarte de que esta cuenta es la propietaria de los datos, desactiva las listas de control de acceso del bucket (ACLs). Para obtener más información, consulte [Controlar la propiedad de los objetos y deshabilitar ACLs su bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) en la *Guía del usuario de Amazon S3*.

**ACLs Para inhabilitarlo en su bucket de destino**

1. Mientras esté conectado en la consola de S3 con su cuenta de destino, elija el bucket de S3 al que va a transferir los datos.

1. En la página de detalles del bucket, elija la pestaña **Permisos**.

1. En **Propiedad de objeto**, elija **Editar**.

1. Si aún no está seleccionada, elige la opción **ACLs deshabilitada (recomendada)**.

1. Seleccione **Save changes (Guardar cambios)**.

## Paso 5: En tu cuenta de origen, crea una ubicación de DataSync origen para tu almacenamiento local
<a name="s3-on-prem-cross-account-create-source-location"></a>

En tu cuenta de origen, crea una [ubicación de DataSync origen](working-with-locations.md) para el sistema de almacenamiento local desde el que vas a transferir los datos. Esta ubicación usa el [agente que acaba de activar](#s3-cross-account-deploy-agent) en su cuenta de origen.

## Paso 6: En tu cuenta de origen, crea una ubicación de DataSync destino para tu bucket de S3
<a name="s3-cross-account-create-datasync-destination"></a>

Aún en su cuenta de origen, cree una ubicación para el bucket de S3 al que transfiere los datos.

**Antes de empezar**: asegúrese de tener los [permisos necesarios para su cuenta de origen](#onprem-s3-cross-account-required-permissions-source).

Como no puede crear ubicaciones entre cuentas mediante la interfaz de la DataSync consola, estas instrucciones requieren que ejecute un `create-location-s3` comando para crear la ubicación de destino. Recomendamos ejecutar el comando mediante AWS CloudShell un shell preautenticado y basado en un navegador que se inicie directamente desde la consola. CloudShell permite ejecutar AWS CLI comandos `create-location-s3` sin necesidad de descargar ni instalar herramientas de línea de comandos.

**nota**  
Para completar los siguientes pasos con una herramienta de línea de comandos que no sea CloudShell, asegúrese de que su [AWS CLI perfil](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) utilice la misma función de IAM que incluye los [permisos de usuario necesarios](#onprem-s3-cross-account-required-permissions-source) para utilizarla DataSync en su cuenta de origen. 

**Para crear una ubicación de DataSync destino mediante CloudShell**

1. Mientras estés en tu cuenta de origen, realiza una de las siguientes acciones para CloudShell iniciarla desde la consola:
   + Selecciona el CloudShell icono de la barra de navegación de la consola. Se encuentra a la derecha del cuadro de búsqueda.
   + Utilice el cuadro de búsqueda de la barra de navegación de la consola para buscar la **CloudShell**opción **CloudShell**y, a continuación, seleccionarla.

1. Copie el siguiente comando:

   ```
   aws datasync create-location-s3 \
     --s3-bucket-arn arn:aws:s3:::amzn-s3-demo-destination-bucket \
     --s3-config '{
       "BucketAccessRoleArn":"arn:aws:iam::source-user-account:role/source-datasync-role"
     }'
   ```

1. Sustituya `amzn-s3-demo-destination-bucket` por el nombre del bucket de S3 en su cuenta de destino.

1. Sustituya `source-user-account` por el ID de Cuenta de AWS de su cuenta de origen.

1. `source-datasync-role`Sustitúyala por la [función de DataSync IAM](#s3-cross-account-create-iam-role-source-account) que creaste en tu cuenta de origen.

1. Ejecute el comando en CloudShell.

   Si el comando devuelve un ARN de DataSync ubicación similar a este, la ubicación se ha creado correctamente:

   ```
   {
     "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890"
   }
   ```

1. En el panel de navegación situado a la izquierda, expanda **Transferencia de datos** y, a continuación, seleccione **Ubicaciones**.

En su cuenta de origen, puede ver la ubicación de S3 que acaba de crear para el bucket de la cuenta de destino.

## Paso 7: En su cuenta de origen, cree e inicie DataSync la tarea
<a name="s3-cross-account-create-start-datasync-task"></a>

Antes de iniciar una DataSync tarea para transferir tus datos, recapitulemos lo que has hecho hasta ahora:
+ En tu cuenta de origen, creaste tu DataSync agente. El agente puede leer el contenido de su sistema de almacenamiento local y comunicarse con el DataSync servicio.
+ En su cuenta de origen, creó un rol de IAM que permite transferir datos DataSync al depósito de S3 de su cuenta de destino.
+ En su cuenta de destino, configuró su bucket de S3 para DataSync poder transferirle datos.
+ En su cuenta de origen, creó las ubicaciones de DataSync origen y destino de la transferencia.

**Para crear e iniciar la DataSync tarea**

1. Mientras sigues usando la DataSync consola de tu cuenta de origen, expande **Transferencia de datos** en el panel de navegación izquierdo y, a continuación, selecciona **Tareas** y **Crear tarea**.

1. 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 en las instalaciones) y, luego, **Siguiente**.

1. En la página **Configurar la ubicación de destino**, seleccione **Elegir una ubicación existente**. Elija la ubicación de destino a la que va a copiar los datos (el bucket de S3 de su cuenta de destino) y, a continuación, **Siguiente**.

1. En la página **Configurar los ajustes**, asigne un nombre a la tarea. Según sea necesario, configure ajustes adicionales, como especificar un grupo de CloudWatch registros de Amazon. Elija **Siguiente**.

1. En la página **Revisar**, revise los ajustes y seleccione **Crear tarea**.

1. En la página de detalles de la tarea, elija **Iniciar** y, a continuación, elija una de las siguientes acciones:
   + Para ejecutar la tarea sin modificarla, seleccione **Comenzar con los valores predeterminados**.
   + Para modificar la tarea antes de ejecutarla, elija **Comenzar con las opciones principales**.

Cuando finalice la tarea, compruebe el bucket de S3 en su cuenta de destino. Debería ver los datos que se movieron desde la ubicación de origen.

## Recursos relacionados
<a name="s3-cross-account-create-start-datasync-task"></a>

Para obtener más información sobre lo que hizo en este tutorial, consulte los siguientes temas:
+ [Crear un rol para una Servicio de AWS (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)
+ [Modificación de una política de confianza de rol (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
+ [Incorporación de una política de bucket mediante la consola de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)
+ [Cree una ubicación S3 con AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-location-s3.html)