Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Comment résoudre les erreurs Accès refusé lorsque des utilisateurs IAM d'un autre compte AWS tentent d'accéder à mon compartiment Amazon S3 ?
Ma politique de compartiment Amazon Simple Storage Service (Amazon S3) accorde un accès complet à un autre compte AWS. Toutefois, lorsque les utilisateurs d’AWS Identity and Access Management (IAM) de l’autre compte tentent d’accéder à mon compartiment, ils reçoivent un message d’erreur « Accès refusé ».
Brève description
Si votre politique de compartiment autorise déjà l’accès à un autre compte, les utilisateurs intercomptes peuvent recevoir des erreurs Accès refusé pour les raisons suivantes :
- La politique IAM de l’utilisateur n’autorise pas l’accès au compartiment.
- Vous avez chiffré l’objet avec AWS Key Management Service (AWS KMS) et l’utilisateur n’a pas accès à la clé AWS KMS.
- Une instruction de rejet figurant dans la politique du compartiment ou la politique IAM bloque l’accès de l’utilisateur.
- La politique de point de terminaison Amazon Virtual Private Cloud (Amazon VPC) bloque l’accès au compartiment.
- La politique de contrôle des services (SCP) d’AWS Organizations bloque l’accès au compartiment.
- L’objet n’appartient pas au compte propriétaire du compartiment.
- Vous avez activé Paiement par le demandeur pour le compartiment Amazon S3.
- Vous avez adopté une politique de session qui a bloqué l’accès au compartiment.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
La politique IAM de l’utilisateur n’autorise pas l’accès au compartiment
Pour l’accès intercompte, assurez-vous d’accorder l’accès au compartiment dans la politique IAM du compte de l’utilisateur et dans la politique de compartiment dans votre compte.
Pour ajouter des autorisations de compartiment à la politique IAM du compte des utilisateurs, procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, sélectionnez les utilisateurs ou les rôles IAM qui ne peuvent pas accéder au compartiment.
- Dans Politiques d'autorisations, développez chaque politique pour afficher son document de politique JSON.
- Dans les documents de politique JSON qui contiennent le nom du compartiment, vérifiez que les politiques autorisent les actions S3 correctes sur le compartiment.
- Si l’utilisateur ou le rôle IAM n’autorise pas l’accès au compartiment, ajoutez une politique qui accorde les autorisations appropriées.
L'exemple de politique IAM suivant accorde à un utilisateur l'accès au téléchargement d'objets dans la requête GetObject provenant de DOC-EXAMPLE-BUCKET :{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": "s3:GetObject", "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
Remarque : Si vous utilisez des profils d'instance ou si vous endossez un rôle, assurez-vous que votre politique dispose des autorisations appropriées.
Vous avez chiffré l'objet avec AWS KMS
Si la politique IAM et la politique du compartiment autorisent l’accès intercompte, vérifiez que le compartiment est chiffré par défaut avec AWS KMS. Vous pouvez également vérifier les propriétés de l’objet pour le chiffrement AWS KMS. Si vous avez chiffré l'objet à l'aide d'une clé KMS, l'utilisateur doit également être autorisé à utiliser cette clé.
Pour accorder à un utilisateur IAM les autorisations de téléchargement et de chargement vers un compartiment et d'utiliser la clé AWS KMS, procédez comme suit :
-
Modifiez la politique de clé KMS pour ajouter l'instruction suivante :
{ "Sid": "ExampleStmt", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Jane" }, "Resource": "*" }
Remarque : Remplacez l'exemple d'ARN par l'ARN de votre principal.
-
Si la clé AWS KMS appartient au même compte que l’utilisateur IAM, vous n’avez pas besoin de mettre à jour la politique de clé. Si la clé AWS KMS appartient à votre compte, vous devez mettre à jour les autorisations de l'utilisateur IAM pour ajouter l’instruction de politique IAM suivante :
{ "Sid": "KMSAccess", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" }
Remarque : Remplacez l'ARN de l'exemple de clé KMS par l'ARN de votre clé KMS.
Pour de plus amples informations, consultez la section Pourquoi les utilisateurs intercomptes reçoivent-ils des erreurs d'accès refusé lorsqu'ils tentent d'accéder à mes objets S3 que j'ai chiffrés avec une clé gérée par le client AWS KMS ?
Une instruction de rejet dans la politique bloque l'accès des utilisateurs
Vérifiez l’existence d’instructions refusant explicitement à l’utilisateur l’accès au compartiment dans la politique de compartiment et les politiques IAM des utilisateurs.
Pour vérifier la politique de compartiment, procédez comme suit :
- Ouvrez la console Amazon S3.
- Dans la liste de compartiments, sélectionnez le compartiment contenant la politique de compartiment que vous souhaitez vérifier.
- Choisissez l’onglet Autorisations.
- Dans Politique de compartiment, recherchez des instructions contenant « Effet » : « Refuser ».
- Modifiez la politique de compartiment pour supprimer toutes les instructions « Effet » : « Refuser » qui refusent à l’utilisateur l’accès au compartiment.
Pour vérifier les politiques IAM des utilisateurs, procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, sélectionnez les utilisateurs ou les rôles IAM qui ne peuvent pas accéder au compartiment.
- Dans Politiques d'autorisations, développez chaque politique pour afficher les documents de politique JSON.
- Dans les documents de politique JSON liés au compartiment S3, recherchez des instructions contenant ** « Effet » : « Refuser »**.
- Modifiez les politiques d’autorisations IAM de l’utilisateur pour supprimer les instructions « Effet » : « Refuser » qui refusent à l’utilisateur l’accès au compartiment.
La politique de point de terminaison de VPC bloque l'accès au compartiment
Si les utilisateurs accèdent au compartiment via une instance Amazon Elastic Compute Cloud (Amazon EC2) routée via un point de terminaison de VPC, vérifiez la politique de point de terminaison du VPC. Vérifiez que la politique de point de terminaison du VPC inclut les autorisations appropriées pour accéder au compartiment S3.
La politique de point de terminaison de VPC suivante autorise l’accès à DOC-EXAMPLE-BUCKET :
{ "Id": "Policy1234567890123", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567890123", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Principal": "*" } ] }
Avertissement : L’élément « Principal » : « * » permet à tous ceux qui utilisent le point de terminaison de VPC d’accéder au compartiment. Assurez-vous de limiter la portée de la valeur de Principal pour votre cas d’utilisation.
Le SCP d’Organizations bloque l'accès au compartiment
Si le compte de l'utilisateur utilise Organizations, vérifiez que les SCP ne contiennent pas d'instructions de rejet bloquant l'accès au compartiment.
L'exemple de politique suivant refuse explicitement l'accès à Amazon S3 :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }
L’objet n’appartient pas au compte propriétaire du compartiment
Par défaut, le compte qui charge l'objet est propriétaire de l'objet, même lorsqu'un autre compte est propriétaire du compartiment. Les autorisations du compartiment ne s'appliquent pas automatiquement à un objet appartenant à un autre compte.
Pour résoudre les erreurs Accès refusé renvoyées par S3 Object Ownership, appliquez les bonnes pratiques suivantes :
- Appliquez le paramètre imposé par le propriétaire du compartiment pour S3 Object Ownership afin de désactiver les listes de contrôle d'accès (ACL) pour vos compartiments.
- Si vous ne souhaitez pas désactiver les ACL pour imposer la propriété de nouveaux objets, appliquez le paramètre préféré du propriétaire du compartiment. Assurez-vous de mettre à jour votre politique de compartiment afin d'exiger l'ACL prédéfinie avec contrôle total du propriétaire du compartiment pour toutes les requêtes PUT adressées à votre compartiment. Le propriétaire de l'objet peut exécuter la commande put-object-acl suivante pour accorder l'accès au propriétaire du compartiment :
Remarque : Pour accéder à l’objet, le propriétaire de l’objet doit explicitement accorder l’accès au propriétaire du compartiment. Utilisez le compte propriétaire de l'objet pour exécuter la commande précédente.aws s3api put-object-acl --bucket examplebucket --key keyname --acl bucket-owner-full-control
Vous avez activé Paiement par le demandeur
Si vous avez activé Paiement par le demandeur pour votre compartiment, les utilisateurs d'autres comptes doivent spécifier le paramètre x-amz-request-payer.
Les utilisateurs doivent effectuer les actions suivantes :
- Pour les requêtes DELETE, GET, HEAD, POST et PUT, incluez x-amz-request-payer : requester dans l’en-tête.
- Pour les URL signées, incluez x-amz-request-payer=requester dans la requête.
- Pour les commandes AWS CLI, incluez le paramètre --request-payer.
aws s3 cp exampleobject.jpg s3://DOC-EXAMPLE-BUCKET/exampleobject.jpg --request-payer requester
Une politique de session a bloqué l'accès au compartiment
Assurez-vous que la politique de session que vous avez transmise ne bloque pas l'accès au compartiment S3.
Informations connexes
Comment puis-je résoudre les erreurs 403 Accès refusé renvoyées par Amazon S3 ?

Contenus pertinents
- demandé il y a 3 moislg...
- demandé il y a 2 anslg...
- demandé il y a 7 moislg...
- demandé il y a 2 anslg...
- demandé il y a un anlg...
- AWS OFFICIELA mis à jour il y a 6 mois