Comment octroyer à un utilisateur d'un autre compte AWS le droit de télécharger des objets dans mon compartiment Amazon S3 ?

Dernière mise à jour : 02/11/2020

Je souhaite qu’un utilisateur AWS Identity and Access Management (IAM) d'un autre compte AWS puisse charger des objets dans mon compartiment Amazon Simple Storage Service (Amazon S3). Comment puis-je octroyer cet accès inter-comptes ?

Résolution

Procédez comme suit pour octroyer à un utilisateur IAM d'un compte (Compte A) l’accès pour télécharger des objets dans un compartiment S3 d'un autre compte (Compte B) :

1.    Depuis le compte A, joignez une stratégie à l’utilisateur IAM qui autorise l’utilisateur à exécuter les actions s3:PutObject et s3:PutObjectAcl sur le compartiment du Compte B, comme ici :

{
    "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, telle que l’ACL de contrôle complet du propriétaire du compartiment ou l’ACL de lecture publique. 

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

3.    Depuis le compte B, joignez une stratégie de compartiment qui autorise l’utilisateur IAM du compte A à exécuter les actions s3:PutObject et s3:PutObjectAcl, comme suit :

Important : pour la valeur de Principal, entrez l'ARN de l’utilisateur IAM du compte A.

{
    "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/*"
            ]
        }
    ]
}

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 télécharger des objets dans le compartiment.


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


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