Passer au contenu

Comment puis-je utiliser la fonctionnalité Blocage de l'accès public Amazon S3 pour gérer l'accès public aux ressources Amazon S3 ?

Lecture de 3 minute(s)
0

Je souhaite gérer l'accès à mes ressources Amazon Simple Storage Service (Amazon S3). Pour ce faire, je souhaite utiliser le blocage de l'accès public Amazon S3.

Résolution

Vous pouvez configurer les paramètres du blocage de l'accès public Amazon S3 pour différents niveaux d'accès.

Ajouter les autorisations requises

Pour modifier les paramètres de blocage de l'accès public Amazon S3, votre utilisateur ou rôle Gestion des identités et des accès AWS (AWS IAM) doit disposer des autorisations suivantes :

  • s3:PutAccountPublicAccessBlock
  • s3:PutBucketPublicAccessBlock

Pour consulter vos paramètres de blocage de l'accès public S3 actuels, assurez-vous que votre rôle ou rôle IAM dispose des autorisations suivantes :

  • s3:GetAccountPublicAccessBlock
  • s3:GetBucketPublicAccessBlock

Pour plus d'informations, consultez la section Autorisations.

Activer ou désactiver le blocage de l'accès public S3

Remarque : À compter du mois d'avril 2023, Amazon S3 active automatiquement le blocage de l’accès public S3 pour tous les compartiments que vous créez.

Vous pouvez configurer les paramètres de blocage de l’accès public S3 au niveau du compte, au niveau du compartiment ou des deux.

Activer le blocage de l'accès public S3

Une fois que vous avez activé le blocage de l’accès public S3, Amazon S3 prend les mesures suivantes :

  • Les requêtes anonymes et non authentifiées sont refusées sans exception. Les URI et URL Amazon S3 qui utilisent un navigateur Web ou curl pour l’accès reçoivent un message erreur "HTTP 403 Access Denied".
  • Ignore les nouvelles ACL publiques que vous appliquez aux objets Amazon S3 et révoque l'accès des utilisateurs au compartiment et aux objets S3.

Désactiver l'accès public au bloc S3

Si vous désactivez le blocage de l’accès public S3, Amazon S3 autorise l'accès à un objet avec une politique de compartiment public ou une ACL publique. Les requêtes Amazon S3, telles que LIST ou GET, peuvent entraîner des coûts. AWS vous facture pour les requêtes anonymes effectuées par quelqu'un sur le compartiment ou l'objet public. Les règles AWS Config et Analyseur d'accès IAM pour S3 génèrent des avertissements concernant le statut public de votre compartiment.

Lorsque vous désactivez le blocage de l'accès public Amazon S3, votre console Amazon S3 affiche les paramètres d'accès dans le volet Récapitulatif de l’accès externe.

Résolution des erreurs "Access Denied" et liées au compartiment S3

Un message d’erreur "Access Denied" peut s'afficher lorsque vous tentez d'activer ou de désactiver le blocage de l'accès public S3 sur votre compartiment S3.

Pour résoudre ce problème, procédez comme suit :

  • Vérifiez que les politiques de contrôle des services (SCP) d'AWS Organizations n'empêchent pas les modifications apportées au blocage de l’accès public S3 au niveau du compte ou du compartiment. Vérifiez les instructions Refus pour les actions s3:PutBucketPublicAccessBlock et s3:PutAccountPublicAccessBlock.
  • Si votre compartiment affiche Error dans sa colonne Accès, ajoutez les autorisations suivantes pour répertorier les compartiments et les paramètres d'accès public à votre politique IAM :
    s3:GetAccountPublicAccessBlock
    s3:GetBucketPublicAccessBlock
    s3:GetBucketPolicyStatus
    s3:GetBucketLocation
    s3:GetBucketAcl
    s3:ListAccessPoints
    s3:ListAllMyBuckets

Identifier l'utilisateur ou le rôle IAM qui a modifié le blocage de l’accès public S3

Consultez votre historique d’événements AWS CloudTrail pour identifier les événements associés aux EventNames suivants :

  • Pour le niveau de compte, recherchez PutAccountPublicAccessBlock.
  • Pour le niveau de compartiment, recherchez PutBucketPublicAccessBlock.

Pour identifier l’Amazon Resource Name (ARN) de l'appelant, consultez le champ UserIdentity du journal. Exemple de journal :

 "userIdentity": {  
 "type": "AssumedRole",  
 "principalId": "[AccountID]:[RoleName]",  
 "arn": "arn:aws:sts::[AccountID]:assumed-role/[RoleName]/[RoleSession]",

Puis, vérifiez bucketName pour identifier le compartiment S3 modifié. Exemple de journal :

"requestParameters": {  
 "publicAccessBlock": "",  
 "bucketName": "[BucketName]"
AWS OFFICIELA mis à jour il y a 8 mois