Estou tendo algumas dificuldades para fazer algumas coisas funcionarem com cópias de dados entre contas. Especificamente, estou tentando clonar um bucket S3 de uma conta AWS (em eu-west-1
) para outra (em eu-west-2
).
Tentei configurar a replicação de bucket conforme este guia , adicionando uma Operação em Lote de Replicação para copiar arquivos existentes e também tentei um trabalho DataSync conforme este guia .
Apesar de ter seguido os guias à risca:
As métricas de replicação não mostram nenhuma atividade e o bucket de destino ainda está vazio 24 horas depois.
A operação em lote de replicação foi abortada pelo motivo
Job failure rate 100% is above 50%
.O log do CloudWatch para o trabalho do DataSync fornece apenas este detalhe:
finished with status Unable to connect to S3 endpoint
Gostaria de saber se estou esquecendo de algum pré-requisito que os guias assumem que já terá sido configurado; por exemplo: há necessidade de estabelecer algum tipo de relação de confiança entre duas contas da AWS antes que as permissões entre contas funcionem?
ou seja, onde o bucket S3 de destino pretendido na conta 987654321098 tem uma política de permissões que inclui este snippet para identificar a função de ação na conta de origem:
"Sid": "DataSyncCreateS3LocationAndTaskAccess",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:role/source-account-datasync-s3-copy-role" }
...isso é tudo o que é necessário para que a conta de destino confie na função do IAM da outra conta?
A resposta à pergunta parece ser não — ações entre contas funcionam bem sem nenhuma confiança especial no nível da conta (pelo menos para S3).
Fiz mais pesquisas sobre os tutoriais que estava seguindo e encontrei várias postagens sobre como as instruções também não estavam funcionando para outras pessoas, então acabei seguindo as instruções nesta postagem para adicionar meu usuário do IAM da conta de origem à Política de Bucket do bucket de destino e, em seguida, como o usuário da conta de origem:
aws s3 sync s3://sourcebucket s3://destinationbucket
- o que funcionou bem.Nota 1: Ao tentar salvar alterações na política de bucket, tendo adicionado uma série de ações ao exemplo dado no link acima, encontrei um erro do tipo:
action doesn't apply to any resources
; A correção para isso foi reunir as duas instruções em uma, conforme mostrado nesta postagem . (Imagino que também seja possível refinar as listas de ações para o indivíduo..bucketname
e..bucketname/*
os ARNs na versão de duas instruções.)Nota 2: A AWS CLI pode não ser a maneira mais econômica de atingir o resultado desejado, mas o prazo está se aproximando e ela deu conta do recado.