Comment accorder à un utilisateur dans un autre compte AWS l'accès pour charger des objets dans mon compartiment Amazon S3 ?

Dernière mise à jour : 10/02/2021

Je souhaite accorder à un utilisateur AWS Identity and Access Management (IAM) dans un autre compte l'accès à mon compartiment Amazon Simple Storage Service (Amazon S3). L'utilisateur tente de charger des objets dans mon compartiment Amazon S3. Comment puis-je accorder cet accès inter-comptes ?

Résolution

Effectuez les étapes suivantes pour accorder à un utilisateur IAM d'un compte A l'accès pour charger des objets dans un compartiment S3 dans un compte B :

1.    Depuis le compte A, attachez une stratégie à l'utilisateur IAM. La stratégie doit permettre à l'utilisateur d'exécuter les actions s3:PutObject et s3:PutObjectAcl sur le compartiment dans le compte B.

Par exemple :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"      
            ],
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
            ]
        }
    ]
}

Remarque : l'autorisation s3:PutObjectAcl est requise pour les utilisateurs qui doivent spécifier une liste de contrôle d'accès (ACL) aux objets pendant le chargement. Sans cette autorisation, les utilisateurs obtiennent une erreur Accès refusé lorsqu'ils chargent un objet avec une ACL (l'ACL bucket-owner-full control, par exemple).

2.    Depuis le compte A, obtenez l’Amazon Resource Name (ARN) de l’utilisateur IAM.

3.    Depuis le compte B, attachez une stratégie de compartiment qui accorde à l'utilisateur IAM dans le compte A l'autorisation d'exécuter les actions s3:PutObject et s3:PutObjectAcl :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::999999999999:user/UploadData"},
            "Action": ["s3:PutObject", "s3:PutObjectAcl"],
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
            ]
        }
    ]
}

Important : pour la valeur de Principal, veillez à entrer l'ARN de l'utilisateur IAM dans le compte A.

Après avoir configuré la stratégie d'utilisateur IAM dans le compte A et la stratégie de compartiment dans le compte B, l'utilisateur IAM peut charger des objets dans Amazon S3.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?