Pourquoi est-ce que je reçois une erreur Access Denied (Accès refusé) lorsque j'essaie d'accéder à Amazon S3 à l'aide d'un kit de développement logiciel AWS ?

Lecture de 4 minute(s)
0

Je suis en mesure d'accéder à mes ressources Amazon Simple Storage Service (Amazon S3) lorsque j'utilise l'interface de la ligne de commande AWS (CLI AWS). Cependant, j'obtiens une erreur Accès refusé lorsque j'utilise un kit SDK AWS. Comment résoudre ce problème ?

Solution

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Vérifiez les informations d'identification de votre interface de ligne de commande CLI AWS et SDK AWS

Vérifiez que l'interface de ligne de commande CLI AWS et le kit SDK AWS que vous utilisez sont configurés avec les mêmes informations d'identification. Pour ce faire, procédez selon les étapes suivantes :

Pour obtenir les informations d'identification configurées sur l'interface de ligne de commande CLI AWS, exécutez cette commande :

aws iam list-access-keys

Si vous utilisez un rôle AWS Identity et Access Management (IAM) associé à l'interface de ligne de commande CLI AWS, exécutez cette commande pour obtenir le rôle :

aws sts get-caller-identity

Pour obtenir les informations d'identification configurées sur le kit SDK AWS que vous utilisez, exécutez un appel GetCallerIdentity à l'aide de votre client AWS Security Token Service (AWS STS). Par exemple, si vous utilisez AWS SDK pour Python (Boto3), exécutez get_caller_identity.

Si la CLI AWS et le kit SDK AWS utilisent des informations d'identification différentes, essayez d'utiliser le kit SDK AWS avec les informations d'identification stockées sur la CLI AWS.

Résoudre les problèmes liés aux requêtes CLI AWS et SDK adressées à Amazon S3

Si les informations d'identification utilisées par la CLI et le kit SDK AWS sont identiques, poursuivez le dépannage en posant les questions suivantes :

  • Les requêtes CLI et SDK adressées à S3 proviennent-elles de la même source ? Par exemple, vérifiez que les demandes proviennent de la même instance Amazon Elastic Compute Cloud (Amazon EC2).
  • Si les requêtes proviennent de la même source, le SDK utilise-t-il les informations d'identification prévues ? Par exemple, si vous utilisez le kit AWS SDK pour Python (Boto3), il vous permet de configurer les informations d'identification à l'aide de plusieurs méthodes. Boto3 recherche alors les informations d'identification dans plusieurs emplacements, dans un ordre spécifique. Si des informations d'identification incorrectes sont spécifiées plus tôt, elles sont utilisées. Pour en savoir plus sur l'ordre dans lequel Boto3 recherche les informations d'identification, consultez la sectionCredentials du site internet du kit SDK Boto3.

Vérifiez que les points de terminaison de votre VPC autorisent les requêtes adressées à S3

Si les demandes sont envoyées par des sources différentes, vérifiez que la source utilisant le kit SDK envoie des demandes via un pare-feu, un proxy HTTP ou un point de terminaison d'un VPC. Vérifiez ensuite que le point de terminaison du VPC autorise la demande que vous essayez d'envoyer à Amazon S3.

Par exemple, la stratégie de point de terminaison d'un VPC suivante autorise les autorisations de téléchargement et de chargement pour DOC-EXAMPLE-BUCKET. Si vous utilisez ce point de terminaison d'un VPC, l'accès à tout autre compartiment vous est refusé.

{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

Si vous ne trouvez aucun problème dans vos informations d'identification ou votre source, vérifiez certaines des raisons pour lesquelles une erreur Accès refusé peut être renvoyée par S3. Pour plus d'informations, consultez Comment puis-je résoudre les erreurs 403 Accès refusé à partir d'Amazon S3 ?


Informations connexes

Identity and Access Management dans Amazon S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans