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: Transferência de dados entre buckets do Amazon S3 entre Contas da AWS
Com AWS DataSync, você pode transferir dados entre buckets do Amazon S3 que pertencem a diferentes. Contas da AWS
Importante
A transferência de dados Contas da AWS usando os métodos deste tutorial funciona somente com o Amazon S3. Além disso, este tutorial pode ajudar você a transferir dados entre buckets do S3 que também estão em diferentes Regiões da AWS.
Visão geral
Não é incomum transferir dados entre eles 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 o bucket do S3 do qual você precisa transferir dados.
-
Conta de destino: a Conta da AWS para gerenciar o bucket do S3 para o qual você precisa transferir dados.
Pré-requisito: permissões necessárias na conta de origem
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.
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 ou modificação 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", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "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. Essa é uma política AWS gerenciada que fornece ao usuário acesso total DataSync e acesso mínimo às suas dependências.
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 para DataSync. Você também especifica essa função (
) em sua política de bucket de destino e ao criar seu local de DataSync destino.source-datasync-role
{ "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
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 Guia de usuário do Amazon S3.
Etapa 1: na sua conta de origem, crie uma função DataSync do IAM para acesso ao bucket de destino
Na sua fonte Conta da AWS, 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 uma função do IAM DataSync como entidade confiável.
Faça login no AWS Management Console com sua conta de origem.
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação esquerdo, em Gerenciamento de acesso, escolha Perfis e, em seguida, escolha Criar perfil.
-
Na página Selecionar entidade confiável, para Tipo de entidade confiável, escolha AWS service (Serviço da AWS).
-
Em Caso de uso, escolha DataSyncna lista suspensa e selecione. DataSync Escolha Próximo.
-
Na página Adicionar permissões, escolha Próximo.
-
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) no Guia do usuário do IAM.
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.
Na página Perfis do console do IAM, procure o perfil que você acabou de criar e escolha seu nome.
Na página do perfil, escolha a guia Permissões. Selecione Adicionar permissões e, em seguida, Criar política em linha.
-
Selecione a guia JSON e faça o seguinte:
Cole o JSON a seguir no editor de política:
{ "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
/*" } ] }Substitua cada instância do
pelo nome do bucket do S3 em sua conta de destino.amzn-s3-demo-destination-bucket
-
Escolha Próximo. Digite um nome para a política e escolha Criar política.
Etapa 2: na conta de destino, atualize a política do bucket do S3
Na sua conta de destino, modifique a política de bucket do S3 de destino para incluir a função DataSync do IAM 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.
-
No AWS Management Console, mude para sua conta de destino.
Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
No painel de navegação à esquerda, escolha Buckets.
-
Na lista Buckets, escolha o bucket do S3 para o qual você está transferindo dados.
-
Na página do perfil, escolha a guia Permissões.
-
Em Política de bucket, escolha Editar e faça o seguinte para modificar sua política de bucket do S3:
-
Atualize o que está no editor para incluir as seguintes declarações de política:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
: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
/*" ] } ] } -
Substitua cada instância
de pelo Conta da AWS ID da sua conta de origem.source-account
-
Substitua pela função do IAM que você criou DataSync na sua conta de origem.source-datasync-role
-
Substitua cada instância do
pelo nome do bucket do S3 em sua conta de destino.amzn-s3-demo-destination-bucket
-
-
Escolha Salvar alterações.
Etapa 3: na sua conta de destino, desative ACLs o bucket do S3
É importante que todos os dados transferidos para o bucket do S3 pertençam à sua 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 do usuário do Amazon S3.
Antes de começar: certifique-se de que tem as permissões necessárias para conta de destino.
-
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.
-
Na página do perfil, escolha a guia Permissões.
-
Em Object Ownership, escolha Editar.
-
Se ainda não estiver selecionada, escolha a opção ACLs desativada (recomendada).
-
Escolha Salvar alterações.
Etapa 4: na sua conta de origem, crie seus DataSync locais
Na sua conta de origem, crie os DataSync locais para seus buckets S3 de origem e destino.
Antes de começar: certifique-se de que tem as permissões necessárias para conta de origem.
Na conta de origem, crie um local para o bucket do S3 do qual você está transferindo dados.
Ainda na conta de origem, crie um local para o bucket do S3 para o qual você está transferindo dados.
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. CloudShellpermite 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 use a mesma função do IAM que inclui as permissões de usuário necessárias para uso DataSync em sua conta de origem.
Para criar um local de DataSync destino usando CloudShell
-
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 CloudShelle, em seguida, escolha a CloudShellopção.
-
-
Copie o seguinte comando
create-location-s3
:aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::
amzn-s3-demo-destination-bucket
\ --regionamzn-s3-demo-destination-bucket-region
\ --s3-config '{ "BucketAccessRoleArn":"arn:aws:iam::source-account-id
:role/source-datasync-role
" }' -
Substitua
pelo nome de bucket S3 em sua conta de destino.amzn-s3-demo-destination-bucket
-
Se o bucket de destino estiver em uma região diferente do bucket de origem, substitua
pela região onde o bucket de destino reside (por exemplo,amzn-s3-demo-destination-bucket-region
). Remova essa opção se os buckets estiverem na mesma região.us-east-2
-
Substitua pelo Conta da AWS ID de origem.source-account-id
-
Substitua pela função DataSync do IAM que você criou na sua conta de origem.source-datasync-role
-
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" }
-
No painel de navegação esquerdo, expanda Transferência de dados e, em seguida, escolha Locais.
-
Se você criou o local em uma região diferente, escolha essa região no painel de navegação.
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 5: na sua conta de origem, crie e inicie sua DataSync tarefa
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 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.
-
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.
-
Se o bucket na sua conta de destino estiver em uma região diferente do bucket na sua conta de origem, escolha a região do bucket de destino no painel de navegação superior.
Importante
Para evitar um erro de conexão de rede, você deve criar sua DataSync tarefa na mesma região do local de destino.
-
Na página Configurar local de origem, faça o seguinte:
-
Selecione Escolher um local existente.
-
(Para transferências entre regiões) No menu suspenso Região, escolha a região em que o bucket de origem reside.
-
Em Locais existentes, escolha o local de origem do bucket do S3 do qual você está transferindo dados e, em seguida, escolha Próximo.
-
-
Na página Configurar local de destino, faça o seguinte:
-
Selecione Escolher um local existente.
-
Em Locais existentes, escolha o local de destino para o bucket do S3 para o qual você está transferindo dados e, em seguida, escolha Próximo.
-
-
Na página Definir configurações, escolha um modo de tarefa.
dica
Recomendamos usar o modo Avançado. Para obter mais informações, consulte Escolhendo um modo de tarefa para sua transferência de dados.
-
Dê um nome à tarefa e defina configurações adicionais, como especificar um grupo de CloudWatch logs da Amazon. Escolha Próximo.
-
Na página Revisão, revise suas configurações e selecione Criar tarefa.
-
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 bucket da sua conta de origem.
Solução de problemas
Consulte as informações a seguir se tiver problemas ao tentar realizar a transferência entre contas.
- Erros de conexão
-
Ao transferir entre buckets do S3 em diferentes Contas da AWS regiões, você pode receber um erro de conexão de rede ao iniciar sua tarefa. DataSync Para resolver isso, crie uma tarefa na mesma região do local de destino e tente executar a tarefa.
Relacionado: transferências entre contas com buckets S3 usando criptografia no servidor
Se você estiver tentando fazer essa transferência com buckets S3 usando criptografia no servidor, consulte o Blog da AWS sobre armazenamento