Pourquoi la console Amazon S3 affiche l'erreur « Access Denied » (Accès refusé) lors de la modification d'une stratégie de compartiment ?

Date de la dernière mise à jour : 27/03/2020

L'erreur « Access Denied » (Accès refusé) s'affiche lors de la modification de la stratégie du compartiment Amazon Simple Storage Service (Amazon S3) à l'aide de la console. Comment résoudre ce problème ? 

Brève description

Pour afficher une stratégie de compartiment à partir de la console Amazon S3, l’utilisateur ou le rôle AWS Identity and Access Management (IAM) que vous utilisez doit être autorisé à effectuer l'action s3:GetBucketPolicy. Pour modifier une stratégie de compartiment existante, votre identité IAM doit être autorisée à exécuter l’action s3:PutBucketPolicy.

Pour résoudre le problème « Access Denied » (Accès refusé), vérifiez que :

  • Votre identité IAM dispose d'autorisations pour s3:GetBucketPolicy et s3:PutBucketPolicy.
  • La stratégie de compartiment n’interdit pas à votre identité IAM d’exécuter l’action s3:GetBucketPolicy ou s3:PutBucketPolicy.
  • Si la stratégie de compartiment refuse à tout le monde l’accès à s3:GetBucketPolicy et s3:PutBucketPolicy, supprimez-la.

Solution

Votre identité IAM est autorisée à exécuter les actions s3:GetBucketPolicy et s3:PutBucketPolicy

1.    Ouvrez la console IAM.

2.    Dans la console, ouvrez l'utilisateur ou le rôle IAM que vous utilisez pour accéder à la stratégie de compartiment.

3.    Dans l'onglet Permissions (Autorisations) de l’utilisateur ou du rôle IAM que vous utilisez, développez chaque stratégie pour afficher son document de stratégie JSON.

4.    Dans les documents de stratégie JSON, recherchez les stratégies associées à l'accès Amazon S3. Ensuite, vérifiez que vous êtes autorisé à exécuter les actions s3:GetBucketPolicy et s3:PutBucketPolicy sur le compartiment.

Par exemple, la stratégie IAM suivante permet à l'utilisateur ou au rôle d’exécuter les actions s3:GetBucketPolicy et s3:PutBucketPolicy sur awsexamplebucket:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ModifyBucketPolicy",
      "Action": [
        "s3:GetBucketPolicy",
        "s3:PutBucketPolicy"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::awsexamplebucket"
    },
    {
      "Sid": "AccessS3Console",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    }
  ]
}

Remarque : l'instruction « AccessS3Console » de l'exemple précédent de stratégie IAM accorde l'accès à la console Amazon S3 et n'est pas spécifique à la modification d'une stratégie de compartiment. 

Dans l’autre exemple ci-dessous, la stratégie IAM autorise l'utilisateur ou le rôle à accéder à toutes les actions Amazon S3 sur awsexamplebucket. Il n’est pas nécessaire d'ajouter des autorisations pour s3:GetBucketPolicy ou s3:PutBucketPolicy si vous êtes autorisé à exécuter toutes les actions Amazon S3. 

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "S3Permissions",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::awsexamplebucket/*",
        "arn:aws:s3:::awsexamplebucket"
      ]
    }
  ]
}

5.    Dans le document de stratégie JSON, recherchez également les instructions avec "Effect": "Deny". Ensuite, vérifiez que ces instructions n’interdisent pas à l’utilisateur ou au rôle IAM que vous utilisez d’accéder à l’action s3:GetBucketPolicy ou s3:PutBucketPolicy sur le compartiment.

6.    Si vous ne trouvez pas de stratégies qui vous autorisent à l’action  s3:GetBucketPolicy ou s3:PutBucketPolicy sur le compartiment, ajoutez une stratégie qui accorde à votre identité IAM ces autorisations. Si vous trouvez des stratégies qui vous interdisent l’accès à s3:GetBucketPolicy ou s3:PutBucketPolicy sur le compartiment, supprimez l'instruction ou la stratégie qui refuse l'accès. Pour plus d'informations sur la modification de vos autorisations IAM, consultez Modification des autorisations d’un utilisateur IAM.

La stratégie de compartiment n’interdit pas à votre identité IAM d’exécuter l’action s3:GetBucketPolicy ou s3:PutBucketPolicy

Si vous confirmez que votre identité IAM vous accorde les autorisations appropriées et que vous ne pouvez toujours pas modifier la stratégie de compartiment, une autre identité IAM disposant des accès doit vérifier la stratégie de compartiment. Cette identité IAM doit vérifier que la stratégie ne contient pas d’instructions qui bloquent votre accès.

Suivez les étapes ci-dessous en utilisant une identité IAM ayant accès à la stratégie de compartiment :

1.    Ouvrez la console Amazon S3.

2.    Dans la liste des compartiments, ouvrez le compartiment avec la stratégie de compartiment à modifier.

3.    Sélectionnez l’onglet Permissions (Autorisations).

4.    Sélectionnez Bucket policy (Stratégie de compartiment).

5.    Rechercher les instructions avec "Effect": "Deny".

6.    Modifier la stratégie de compartiment pour modifier ou supprimer les instructions  "Effect": "Deny" qui interdisent à l’utilisateur ou au rôle IAM d’accéder à s3:GetBucketPolicy ou s3:PutBucketPolicy.

Si la stratégie de compartiment refuse à tout le monde l’accès à s3:GetBucketPolicy et s3:PutBucketPolicy, supprimez-la.

Si aucune identité IAM ne peut afficher ou modifier la stratégie de compartiment, l'utilisateur racine du compte AWS est toujours autorisé à supprimer la stratégie de compartiment existante. Une fois la stratégie existante supprimée par l'utilisateur racine, l’utilisateur ou le rôle IAM que vous utilisez peut créer une stratégie de compartiment.


Cette page vous a-t-elle été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?