L'accès est interdit lors de la synchronisation entre les paniers s3 Dans différents comptes AWS

J'essaie de mettre en place une synchronisation entre deux segments de différents comptes AWS.

j'ai eu

cp

Je travaille avec:

@ubuntu:~$ s3cmd cp -v s3://src/dir/ s3://dest/folder --recursive

Je suis un utilisateur qui appartient

/src/dir

Et j'ai ajouté:

{
"Version": "2012-10-17",
"Id": "Policy1477299702471",
"Statement": [
{
"Sid": "Stmt1477299696163",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::awsid:user/name"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*"
}
]}

Aux politiques des autorisations de panier dans le panier de test.

Maintenant je suis après

aws sync

travailler

s3 cp

Il n'est pas recommandé d'utiliser avec cron.

J'ai essayé

user@ubuntu:~$ aws s3 sync --dryrun s3://src/ s3://dest/ --region eu-central-1

Mais on m'a refusé l'accès:

Erreur fatale: une erreur est survenue (AccessDenied) Lorsque vous appelez une opération ListObjects: L'accès est refusé

Comment puis-je avoir accès à l'accès s'il s'agit d'un utilisateur à qui le segment appartient et exécute Sync?
Invité:

Alice

Confirmation de:

La raison est à vous

ListObjects

L'erreur est que vous avez donné la permission d'accéder à

teneur

Votre seau (

arn:aws:s3:::bucket/*

) Mais vous n'avez pas donné la permission

Au seau lui-même

(

arn:aws:s3:::bucket

). DANS

ListObjects

L'équipe nécessite un accès au seau.

Pour vérifier, j'ai procédé à ce qui suit:

Deux comptes sont utilisés AWS: Compte A, Compte B

Créé

bucket-a

en compte A

Créé

bucket-b

en compte B

Utilisateur créé IAM

user-a

Dans un compte A avec permis d'accès

bucket-a

Politique de segment ajoutée dans

bucket-b

:

{
"Id": "CopyBuckets",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket-b",
"arn:aws:s3:::bucket-b/*"
],
"Principal": {
"AWS": [
"arn:aws:iam::<account-a-id>:user/user-a"
]
}
}
]
}

Puis j'ai lancé la synchronisation en utilisant

user-a

en compte A:

aws s3 sync s3://bucket-a s3://bucket-b --profile user-a

Cela a fonctionné avec succès.
</account-a-id>

Pour répondre aux questions, connectez-vous ou registre