Pourquoi est-ce que je reçois le message d'erreur de type 403 Access Denied (Accès refusé) lorsque j'essaie de modifier une politique de compartiment dans Amazon S3 ?

Date de la dernière mise à jour : 16/05/2022

Je reçois toujours une erreur de type 403 Access Denied (Accès refusé) lorsque j'essaie de modifier la politique de mon compartiment Amazon Simple Storage Service (Amazon S3).

Brève description

L'erreur « 403 Access Denied » peut se produire pour les raisons suivantes :

Pour résoudre ces problèmes :

  • Vérifiez que l'utilisateur ou le rôle IAM dispose de l'autorisation s3:Get:BucketPolicy pour afficher la politique de compartiment et de l'autorisation s3:PutBucketPolicy pour la modifier. Ajoutez une politique d'utilisateur IAM pour vous accorder l'accès s'il n'en existe pas.
  • Si les autorisations vous sont refusées, utilisez une autre identité IAM disposant d'un accès au compartiment et modifiez la politique de compartiment. Vous pouvez également supprimer et recréer la politique de compartiment si personne n'y a accès.
  • Si vous essayez d'ajouter une politique de lecture publique, désactivez le S3 Block Public Access du compartiment.
  • Si vous utilisez AWS Organizations, vérifiez que vous n'avez aucune politique de contrôle des services qui refuse explicitement les actions S3. Vérifiez également que vous pouvez ajouter des exceptions pour votre opération.

Solution

Vérifiez vos autorisations pour s3:GetBucketPolicy et s3:PutBucketPolicy

Procédez comme suit :

1.    Ouvrez la console IAM.

2.    Sélectionnez l'entité utilisée pour accéder à la stratégie de compartiment, telle que Utilisateur ou Rôle.

3.    Sélectionnez le nom de l'identité IAM que vous utilisez pour accéder à la stratégie de compartiment.

4.    Dans l'onglet Permissions (Autorisations) de l'identité IAM que vous utilisez, développez chaque stratégie pour afficher son document de stratégie JSON.

5.    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.

L'exemple suivant de stratégie IAM permet à l'identité IAM d'exécuter les actions s3:GetBucketPolicy et s3:PutBucketPolicy sur DOC-EXAMPLE-BUCKET (DOC-EXAMPLE-COMPARTIMENT) :

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

Remarque : L'instruction AccessS3Console de la politique IAM précédente accorde l'accès à la console Amazon S3. Elle n'est pas spécifique à la modification d'une stratégie de compartiment.

6.    Dans les documents de stratégie JSON, recherchez les instructions avec "Effect": "Deny". Ensuite, vérifiez que ces instructions n'interdisent pas à votre identité IAM d'accéder à s3:GetBucketPolicy ou s3:PutBucketPolicy.

Ajoutez une stratégie de compartiment si elle n'existe pas

Si vous ne trouvez pas de stratégies qui vous accordent l'autorisation s3:GetBucketPolicy ou s3:PutBucketPolicy, ajoutez une stratégie qui les accorde à votre identité IAM. Si vous trouvez des stratégies qui refusent l'accès à s3:GetBucketPolicy ou s3:PutBucketPolicy, supprimez ces stratégies. Pour plus d'informations sur la modification de vos autorisations IAM, consultez Modification des autorisations d'un utilisateur IAM.

Utilisez une autre identité IAM disposant d'un accès au compartiment et modifiez la stratégie de compartiment

Procédez comme suit pour modifier 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.    Modifiez la stratégie de compartiment pour mettre à jour les instructions "Effect": "Deny" qui refusent l'accès à s3:GetBucketPolicy ou s3:PutBucketPolicy à l'identité IAM.

Supprimez et recréez la stratégie de compartiment si elle refuse l'accès à tout le monde

Si la stratégie de compartiment refuse à tout le monde l'accès à s3:GetBucketPolicy, s3:PutBucketPolicy, ou à toutes les actions Amazon S3 (s3:*), supprimez-la. Si vous ne pouvez pas supprimer une stratégie de compartiment, essayez de la supprimer en tant qu'utilisateur racine du compte AWS. Une fois la stratégie supprimée, vous pouvez créer une nouvelle stratégie de compartiment.

Désactiver S3 Block Public Access

Si votre politique de compartiment accorde un accès public, vérifiez si S3 Block Public Access est activé sur le compartiment ou le compte et désactivez-le. Pour empêcher un futur refus d'accès aux compartiments S3 que vous rendez publics, vérifiez que vous n'avez pas activé S3 Block Public Access pour le compte.

Remarque : Avant de désactiver S3 Block Public Access au niveau du compte, vérifiez qu'il est activé au niveau du compartiment pour les compartiments privés afin d'empêcher tout accès public indésirable.

Pour AWS Organizations, supprimez les politiques de contrôle des services qui n'autorisent pas l'accès à Amazon S3

Si vous utilisez AWS Organizations, vérifiez les politiques de contrôle des services pour toutes les instructions qui refusent explicitement l'action s3:PutBucketPolicy ou toute autre action S3. Supprimez les politiques de contrôle des services qui refusent explicitement les actions S3 conformément aux politiques de sécurité de votre organisation.

Par exemple, la politique suivante refuse l'accès à toutes les actions S3 :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}

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


Avez-vous besoin d'aide pour une question technique ou de facturation ?