Comment puis-je résoudre l'erreur « Vous n'êtes pas autorisé à modifier la politique relative aux compartiments » lorsque j'essaie de modifier une politique relative aux compartiments dans Amazon S3 ?

Lecture de 6 minute(s)
0

L'erreur suivante s'affiche lorsque j'essaie de modifier la politique relative aux compartiments de mon compartiment Amazon Simple Storage Service (Amazon S3) : Vous n'êtes pas autorisé à modifier la politique des compartiments

Brève description

Cette erreur s'affiche pour les raisons suivantes :

  • Votre utilisateur ou rôle AWS Identity and Access Management (IAM) ne dispose pas d'autorisations pour s3:GetBucketPolicy et s3:PutBucketPolicy.
  • La politique du compartiment refuse votre autorisation d'identité IAM pour s3:GetBucketPolicy et s3:PutBucketPolicy.
  • La fonctionnalité Blocage de l’accès public Amazon S3 est activée pour le compartiment.
  • Les politiques de contrôle des services d'AWS Organizations n'autorisent pas l'accès à Amazon S3.

Pour résoudre ces problèmes, essayez les solutions suivantes :

  • Vérifiez que l'utilisateur ou le rôle IAM dispose de l'autorisation s3:GetBucketPolicy pour consulter la politique du compartiment et de l'autorisation s3:PutBucketPolicy pour la modifier. Ajoutez une politique utilisateur IAM pour vous accorder un 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 du compartiment. Ou bien, supprimez et recréez la politique du compartiment si personne n'y a accès.
  • Si vous essayez d'ajouter une politique de lecture publique, désactivez la fonctionnalité S3 Block Public Access du compartiment.
  • Si vous utilisez AWS Organizations, vérifiez qu'aucune politique de contrôle des services ne refuse explicitement les actions S3. Vérifiez également que vous pouvez ajouter des exceptions pour votre opération.

Résolution

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

Procédez comme suit :

1.    Ouvrez la console IAM.

2.    Sélectionnez l'identité utilisée pour accéder à la politique du compartiment, telle que Utilisateur ou Rôle.

3.    Sélectionnez le nom d'identité IAM que vous utilisez pour accéder à la politique du compartiment.

4.    Dans l'onglet Autorisations de votre identité IAM, développez chaque politique pour afficher son document de politique JSON.

5.    Dans les documents de politique JSON, recherchez les politiques relatives à l'accès à Amazon S3. Vérifiez ensuite que vous disposez des autorisations nécessaires pour les actions s3:GetBucketPolicy et s3:PutBucketPolicy sur le compartiment.

L'exemple de politique IAM suivant permet à l'identité IAM d'exécuter les actions s3:GetBucketPolicy et s3:PutBucketPolicy sur 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 figurant dans la politique IAM précédente autorise l'accès à la console Amazon S3. Cela n'est pas spécifique à la modification d'une politique de compartiment.

6.    Dans les documents de politique JSON, recherchez les déclarations avec « Effet » : « Rejeter ». Vérifiez ensuite que ces instructions ne refusent pas à votre identité IAM l'accès à s3:GetBucketPolicy ou à s3:PutBucketPolicy.

7.    Assurez-vous que l'ARN du compartiment (exemple : arn:aws:s3:::DOC-EXAMPLE-BUCKET) est présent dans la section Resource de la politique. Cela est dû au fait que s3:GetBucketPolicy et ** s3:PutBucketPolicy** sont des actions au niveau du compartiment.

8.    Vérifiez si des conditions globales telles que aws:SourceIP sont appliquées dans la politique IAM pour restreindre les actions s3:GetBucketPolicy et s3:PutBucketPolicy. Si ces conditions restreignent l'accès, supprimez-les ou mettez-les à jour.

Ajouter une politique de compartiment si elle n'existe pas

Si vous ne trouvez pas de politiques qui accordent des autorisations s3:GetBucketPolicy ou s3:PutBucketPolicy, ajoutez une politique pour les accorder à votre identité IAM. Si vous trouvez des politiques qui refusent l'accès à s3:GetBucketPolicy ou à s3:PutBucketPolicy, supprimez-les. Pour obtenir des instructions sur la modification de vos autorisations IAM, consultez la section Modification des autorisations d'un utilisateur IAM.

Utiliser une autre identité IAM disposant d'un accès au compartiment et modifier la politique du compartiment

Pour modifier la politique relative aux compartiments, procédez comme suit :

1.    Ouvrez la console Amazon S3.

2.    Dans la liste des compartiments, ouvrez le compartiment contenant la politique de compartiment que vous souhaitez modifier.

3.    Choisissez l'onglet Autorisations.

4.    Choisissez la politique relative aux compartiments.

5.    Recherchez les déclarations avec « Effet » : « Rejeter ».

6.    Modifiez la politique du compartiment pour mettre à jour n'importe quel **« effet » : Instructions **« Rejeter » qui interdisent à l'identité IAM l'accès à s3:GetBucketPolicy ou à s3:PutBucketPolicy.

7.    Vérifiez si des conditions telles que aws:PrincipalArn sont appliquées dans la politique du compartiment afin de restreindre les actions s3:GetBucketPolicy et s3:PutBucketPolicy pour votre entité IAM. Si ces conditions restreignent l'accès, supprimez-les ou mettez-les à jour.

Supprimez et recréez la politique des compartiments si elle refuse l'accès à tout le monde

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

Désactiver S3 Block Public Access

Si votre politique de compartiment autorise l'accès public, vérifiez si S3 Block Public Access est activé pour le compartiment et désactivez-le. Pour éviter tout refus d'accès futur aux compartiments S3 que vous rendez publics, vérifiez que vous n'avez pas activé S3 Block Public Access pour le compte.

Pour plus d'informations, consultez la section Blocage de l'accès public à votre espace de stockage Amazon S3. Voir également La signification du terme public.

Remarque : Avant de désactiver S3 Block Public Access au niveau du compte, vérifiez que vous l'avez activé au niveau du compartiment pour les compartiments privés. Cela est nécessaire pour empêcher tout accès public indésirable à ces compartiments privés.

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 détecter toute déclaration refusant 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": "*"
    }
  ]
}
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an