Eu estava lutando com isso também, mas encontrei uma resposta aqui link que ajudou a resolver esse problema para mim . Repostando a resposta abaixo.
Você não precisa abrir permissões para todos. Use as políticas de bucket abaixo na origem e no destino para copiar de um bucket de uma conta para outra usando um usuário do IAM
Balde para copiar de - SourceBucket
Balde para copiar para - DestinationBucket
ID da conta de origem da AWS - XXXX – XXXX-XXXX
Usuário do IAM de origem - src – iam-user
A política abaixo significa - o usuário do IAM - XXXX - XXXX - XXXX: src - iam - user tem os privilégios s3: ListBucket e s3: GetObject nos privilégios SourceBucket / * e s3: ListBucket e s3: PutObject no DestinationBucket / *
No SourceBucket, a política deve ser como:
{
"Id": "Policy1357935677554",
"Statement": [
{
"Sid": "Stmt1357935647218",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::SourceBucket",
"Principal": {"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/src–iam-user"}
},
{
"Sid": "Stmt1357935676138",
"Action": ["s3:GetObject"],
"Effect": "Allow",
"Resource": "arn:aws:s3::: SourceBucket/*",
"Principal": {"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/src–iam-user"}
}
]
}
No DestinationBucket, a política deve ser:
{
"Id": "Policy1357935677554",
"Statement": [
{
"Sid": "Stmt1357935647218",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3::: DestinationBucket",
"Principal": {"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/src–iam-user"}
},
{
"Sid": "Stmt1357935676138",
"Action": ["s3:PutObject"],
"Effect": "Allow",
"Resource": "arn:aws:s3::: DestinationBucket/*",
"Principal": {"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/src–iam-user"}
}
]
}
O comando a ser executado é s3cmd cp s3://SourceBucket/File1 s3://DestinationBucket/File1