

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Transferindo dados do armazenamento local para o Amazon S3 em todo Contas da AWS
<a name="s3-cross-account-transfer"></a>

Ao usar AWS DataSync com armazenamento local, você normalmente transfere dados para um serviço AWS de armazenamento que pertence ao Conta da AWS mesmo que seu DataSync agente. No entanto, há situações em que talvez seja necessário transferir dados para um bucket do Amazon S3 associado a uma conta diferente.

**Importante**  
A transferência de dados Contas da AWS usando os métodos deste tutorial funciona somente quando o Amazon S3 é um dos locais de DataSync transferência.

## Visão geral do
<a name="s3-cross-account-overview"></a>

Não é incomum precisar transferir dados entre diferentes Contas da AWS, especialmente se você tiver equipes separadas gerenciando os recursos da sua organização. Veja como DataSync pode ser uma transferência entre contas:
+ **Conta de origem**: A Conta da AWS para gerenciar recursos de rede. Essa é a conta com a qual você ativa seu DataSync agente.
+ **Conta de destino**: a Conta da AWS para gerenciar o bucket do S3 para o qual você precisa transferir dados.

O diagrama a seguir ilustra esse tipo de cenário.

![\[Um exemplo de DataSync cenário de transferência de dados de um sistema de armazenamento local por meio de uma Direct Connect conexão pela Internet para AWS. Os dados são primeiro transferidos para uma Conta da AWS (sua conta de origem), antes de finalmente serem transferidos para um bucket do Amazon S3 em outro Conta da AWS (sua conta de destino).\]](http://docs.aws.amazon.com/pt_br/datasync/latest/userguide/images/s3-cross-account-diagram.png)


## Pré-requisito: permissões necessárias na conta de origem
<a name="onprem-s3-cross-account-required-permissions-source"></a>

Para sua fonte Conta da AWS, há dois conjuntos de permissões a serem considerados com esse tipo de transferência entre contas:
+ *Permissões de usuário* que permitem que um usuário trabalhe com DataSync (pode ser você ou seu administrador de armazenamento). Essas permissões permitem criar DataSync locais e tarefas.
+ *DataSync permissões de serviço* que permitem DataSync transferir dados para o bucket da sua conta de destino.

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

Na sua conta de origem, adicione pelo menos as seguintes permissões a uma função do IAM para criar seus DataSync locais e tarefas. Para obter informações sobre como adicionar permissões a um perfil, consulte [criação ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) ou [modificação](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) de um perfil do 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"
                    ]
                }
            }
        }
    ]
}
```

**dica**  
Para configurar suas *permissões de usuário*, considere usar [AWSDataSyncFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-awsdatasyncfullaccess). Essa é uma política AWS gerenciada que fornece ao usuário acesso total DataSync e acesso mínimo às suas dependências.

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

O DataSync serviço precisa das seguintes permissões em sua conta de origem para transferir dados para o bucket da conta de destino.

Posteriormente neste tutorial, você adiciona essas permissões ao [criar uma função do IAM](#s3-cross-account-create-iam-role-source-account) para DataSync. Você também especifica essa função (`source-datasync-role`) em sua [política de bucket de destino](#s3-cross-account-update-s3-policy-destination-account) e ao [criar seu local 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/*"
    }
  ]
}
```

------

## Pré-requisito: permissões necessárias na conta de destino
<a name="onprem-s3-cross-account-required-permissions-destination"></a>

Na sua conta de destino, suas *permissões de usuário* devem permitir que você atualize a política do bucket de destino e desative suas listas de controle de acesso (ACLs). Para obter mais informações sobre essas permissões específicas, consulte o [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/).

## Etapa 1: na sua conta de origem, crie um DataSync agente
<a name="s3-cross-account-deploy-agent"></a>

Para começar, você deve criar um DataSync agente que possa ler do seu sistema de armazenamento local e se comunicar com o DataSync serviço. Esse processo inclui a implantação de um agente no ambiente de armazenamento on-premises e a ativação do agente na Conta da AWS fonte. 

**nota**  
As etapas deste tutorial se aplicam a qualquer tipo de agente e endpoint de serviço que você usa.

**Para criar um DataSync agente**

1. [Implante um DataSync agente](deploy-agents.md) em seu ambiente de armazenamento local.

1. [Escolha um endpoint de serviço](choose-service-endpoint.md) que o agente usará para se comunicar AWS.

1. [Ative seu agente](activate-agent.md) na sua conta de origem.

## Etapa 2: na sua conta de origem, crie uma função DataSync do IAM para acesso ao bucket de destino
<a name="s3-cross-account-create-iam-role-source-account"></a>

Na sua conta de origem, você precisa de uma função do IAM que dê DataSync as permissões para transferir dados para o bucket da sua conta de destino. 

Como você está transferindo entre contas, você deve criar a função manualmente. (DataSyncpode criar essa função para você no console ao transferir para a mesma conta.)

### Crie a DataSync função do IAM
<a name="s3-cross-account-create-iam-role"></a>

Crie uma função do IAM DataSync como entidade confiável.

**Para criar perfil do IAM**

1. Faça login no Console de gerenciamento da AWS com sua conta de origem.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação esquerdo, em **Gerenciamento de acesso**, escolha **Perfis** e, em seguida, escolha **Criar perfil**.

1. Na página **Selecionar entidade confiável**, para **Tipo de entidade confiável**, escolha **AWS service (Serviço da AWS)**.

1. **Em Caso de uso**, escolha **DataSync**na lista suspensa e selecione. **DataSync** Escolha **Próximo**.

1. Na página **Adicionar permissões**, escolha **Próximo**.

1. Forneça um nome ao perfil e escolha **Criar perfil**.

Para obter mais informações, consulte [Criação de uma função para um AWS service (Serviço da AWS) (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) no *Guia do usuário do IAM*.

### Adicionar permissões à função do DataSync IAM
<a name="s3-cross-account-attach-custom-policy"></a>

A função do IAM que você acabou de criar precisa das permissões que permitem DataSync transferir dados para o bucket do S3 na sua conta de destino.

**Para adicionar permissões ao perfil do IAM**

1. Na página **Perfis** do console do IAM, procure o perfil que você acabou de criar e escolha seu nome.

1. Na página do perfil, escolha a guia **Permissões**. Selecione **Adicionar permissões** e, em seguida, **Criar política em linha**.

1. Selecione a guia **JSON** e faça o seguinte:

   1. Cole o JSON a seguir no editor de política:
**nota**  
O valor de `aws:ResourceAccount` deve ser o ID da conta proprietária do bucket do Amazon S3 especificado na 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. Substitua cada instância do `amzn-s3-demo-destination-bucket` pelo nome do bucket do S3 em sua conta de destino.

1. Escolha **Próximo**. Digite um nome para a política e escolha **Criar política**.

## Etapa 3: na conta de destino, atualize a política do bucket do S3
<a name="s3-cross-account-update-s3-policy-destination-account"></a>

Na sua conta de destino, modifique a política de bucket do S3 de destino para incluir a [função DataSync do IAM](#s3-cross-account-create-iam-role-source-account) que você criou na sua conta de origem.

**Antes de começar**: certifique-se de que tem as [permissões necessárias para conta de destino](#onprem-s3-cross-account-required-permissions-destination).

**Para atualizar a política de bucket do S3 de destino**

1. No Console de gerenciamento da AWS, mude para sua conta de destino.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**. 

1. Na lista **Buckets**, escolha o bucket do S3 para o qual você está transferindo dados.

1. Na página do perfil, escolha a guia **Permissões**.

1. Em **Política de bucket**, escolha **Editar** e faça o seguinte para modificar sua política de bucket do S3:

   1. Atualize o que está no editor para incluir as seguintes declarações 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. Substitua cada instância `source-account` de pelo ID Conta da AWS da sua conta de origem.

   1. `source-datasync-role`Substitua pela [função do IAM que você criou DataSync na sua conta de origem](#s3-cross-account-create-iam-role-source-account).

   1. Substitua cada instância do `amzn-s3-demo-destination-bucket` pelo nome do bucket do S3 em sua conta de destino.

1. Escolha **Salvar alterações**.

## Etapa 4: na sua conta de destino, desative ACLs o bucket do S3
<a name="s3-cross-account-disable-acls-destination-account"></a>

É importante que todos os dados que você copia para o bucket do S3 pertençam à conta de destino. Para garantir que essa conta possua os dados, desative as listas de controle de acesso (ACLs) do bucket. Para obter mais informações, consulte [Controle da propriedade de objetos e desativação ACLs do seu bucket no Guia](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) do usuário do *Amazon S3*.

**Para desativar ACLs para seu bucket de destino**

1. Enquanto ainda estiver conectado ao console do S3 com sua conta de destino, escolha o bucket do S3 para o qual você está transferindo dados.

1. Na página do perfil, escolha a guia **Permissões**.

1. Em **Object Ownership**, escolha **Editar**.

1. Se ainda não estiver selecionada, escolha a opção **ACLs desativada (recomendada)**.

1. Escolha **Salvar alterações**.

## Etapa 5: na sua conta de origem, crie um local de DataSync origem para seu armazenamento local
<a name="s3-on-prem-cross-account-create-source-location"></a>

Na sua conta de origem, crie um [local de DataSync origem](working-with-locations.md) para o sistema de armazenamento local do qual você está transferindo dados. Esse local deve usar o [agente que você acabou de ativar](#s3-cross-account-deploy-agent) na conta de origem.

## Etapa 6: na sua conta de origem, crie um local de DataSync destino para seu bucket do S3
<a name="s3-cross-account-create-datasync-destination"></a>

Ainda na conta de origem, crie um local para o bucket do S3 para o qual você está transferindo dados.

**Antes de começar**: certifique-se de que tem as [permissões necessárias para conta de origem](#onprem-s3-cross-account-required-permissions-source).

Como você não pode criar locais entre contas usando a interface do DataSync console, essas instruções exigem que você execute um `create-location-s3` comando para criar seu local de destino. Recomendamos executar o comando usando AWS CloudShell um shell pré-autenticado baseado em navegador que você inicia diretamente do console. CloudShell permite que você execute AWS CLI comandos `create-location-s3` sem baixar ou instalar ferramentas de linha de comando.

**nota**  
Para concluir as etapas a seguir usando uma ferramenta de linha de comando diferente de CloudShell, certifique-se de que seu [AWS CLI perfil](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) use a mesma função do IAM que inclui as [permissões de usuário necessárias](#onprem-s3-cross-account-required-permissions-source) para uso DataSync em sua conta de origem. 

**Para criar um local de DataSync destino usando CloudShell**

1. Enquanto ainda estiver na sua conta de origem, faça o seguinte para iniciar a CloudShell partir do console:
   + Escolha o CloudShell ícone na barra de navegação do console. Ele está à direita da caixa de pesquisa.
   + Use a caixa de pesquisa na barra de navegação do console para pesquisar **CloudShell**e, em seguida, escolha a **CloudShell**opção.

1. Copie o seguinte 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. Substitua `amzn-s3-demo-destination-bucket` pelo nome de bucket S3 em sua conta de destino.

1. Substitua `source-user-account` pelo ID Conta da AWS da sua conta de origem.

1. `source-datasync-role`Substitua pela [função DataSync do IAM](#s3-cross-account-create-iam-role-source-account) que você criou na sua conta de origem.

1. Execute o comando em CloudShell.

   Se o comando retornar um ARN de DataSync localização semelhante a este, você criou o local com sucesso:

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

1. No painel de navegação esquerdo, expanda **Transferência de dados** e, em seguida, escolha **Locais**.

Na conta de origem, você pode ver o local do bucket do S3 que acabou de criar para o bucket da conta de destino.

## Etapa 7: na sua conta de origem, crie e inicie sua DataSync tarefa
<a name="s3-cross-account-create-start-datasync-task"></a>

Antes de iniciar uma DataSync tarefa para transferir seus dados, vamos recapitular o que você fez até agora:
+ Na sua conta de origem, você criou seu DataSync agente. O agente pode ler do seu sistema de armazenamento local e se comunicar com o DataSync serviço.
+ Na sua conta de origem, você criou uma função do IAM que permite DataSync transferir dados para o bucket do S3 na sua conta de destino.
+ Na sua conta de destino, você configurou seu bucket do S3 para DataSync poder transferir dados para ele.
+ Na sua conta de origem, você criou os locais de DataSync origem e destino para sua transferência.

**Para criar e iniciar a DataSync tarefa**

1. Enquanto ainda estiver usando o DataSync console em sua conta de origem, expanda **Transferência de dados** no painel de navegação esquerdo e escolha **Tarefas** e **Criar tarefa**.

1. Na página **Configurar local de origem**, selecione **Escolher local existente**. Escolha o local de origem do qual você está copiando os dados (seu armazenamento on-premises) e, em seguida, **Próximo**.

1. Na página **Configurar local de destino**, escolha **Escolher um local existente**. Escolha o local de destino para o qual você está copiando os dados (o bucket S3 na conta de destino) e, em seguida, **Próximo**.

1. Na página **Definir configurações**, dê um nome à tarefa. Conforme necessário, defina configurações adicionais, como especificar um grupo de CloudWatch logs da Amazon. Escolha **Próximo**.

1. Na página **Revisão**, revise suas configurações e selecione **Criar tarefa**.

1. Na página de detalhes da tarefa, escolha **Iniciar** e, em seguida, escolha uma das seguintes opções:
   + Para executar a tarefa sem modificação, escolha **Iniciar com padrões**.
   + Para modificar a tarefa antes de executá-la, escolha **Iniciar com opções de substituição**.

Quando sua tarefa terminar, verifique o bucket do S3 na sua conta de destino. Você deve ver os dados que foram movidos do local de origem.

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

Para obter mais informações sobre o que você fez neste tutorial, consulte os seguintes tópicos:
+ [Criando uma função para um AWS service (Serviço da AWS) (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)
+ [Modificar a política de confiança de um perfil (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
+ [Adição de uma política de bucket usando o console do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)
+ [Crie um local S3 com o AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-location-s3.html)