30 septembre 2026 · 6 min de lecture

Comment rendre un bucket Amazon S3 public

Les nouveaux buckets S3 bloquent tout accès public et les ACL sont désactivées par défaut : l'ancien bouton « rendre public » sur chaque objet ne sert donc plus à rien. La lecture publique passe désormais par une stratégie de bucket (bucket policy).

Étape 1 : autoriser les stratégies de bucket publiques

  1. Ouvrez le bucket dans la console S3 et allez dans l'onglet Permissions.
  2. Sous Block public access (bucket settings), sélectionnez Edit.
  3. Décochez les deux réglages concernant les bucket and access point policies. Vous pouvez laisser les deux réglages ACL activés, car la stratégie n'utilise pas d'ACL.
  4. Enregistrez et confirmez.

Si ce réglage est aussi activé au niveau du compte (Block Public Access settings for this account dans la barre latérale S3), il prime sur celui du bucket et doit lui aussi autoriser les stratégies.

Étape 2 : ajouter une stratégie de lecture publique

Toujours dans Permissions, modifiez la Bucket policy et collez ceci, avec le nom de votre bucket :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket/*"
    }
  ]
}

Cela autorise la lecture des objets, pas le listing du bucket. Pour ne rendre public qu'un seul dossier, restreignez la ressource, par exemple arn:aws:s3:::your-bucket/public/*.

Avec l'AWS CLI, les deux mêmes étapes donnent :

aws s3api put-public-access-block --bucket your-bucket \
  --public-access-block-configuration \
  BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=false,RestrictPublicBuckets=false

aws s3api put-bucket-policy --bucket your-bucket --policy file://policy.json

Étape 3 : trouver l'URL publique

Les objets sont maintenant disponibles via l'URL de style virtual-hosted :

https://your-bucket.s3.eu-central-1.amazonaws.com/2026/09/report.pdf

Utilisez la région de votre bucket. Si cette adresse renvoie AccessDenied, les réglages Block Public Access bloquent encore la stratégie, ou le nom du bucket dans la stratégie contient une faute de frappe.

L'alternative plus sûre : CloudFront avec un bucket privé

Si vous préférez ne pas ouvrir le bucket lui-même, laissez Block Public Access activé et créez une distribution CloudFront avec le bucket comme origine et l'Origin access control (OAC). CloudFront vous fournit la stratégie de bucket qui permet uniquement à la distribution de lire les objets. Vous obtenez le HTTPS sur votre propre domaine, la mise en cache, et un bucket qui reste privé. Voir les domaines personnalisés pour les liens de bucket.

Questions fréquentes

Pourquoi « Make public using ACL » ne fonctionne-t-il plus ?

Depuis avril 2023, la propriété des objets des nouveaux buckets est réglée sur Bucket owner enforced, ce qui désactive les ACL. L'accès public doit passer par une stratégie de bucket ou par CloudFront.

Un bucket public permet-il de lister mes fichiers ?

Pas avec la stratégie ci-dessus. Elle n'autorise que s3:GetObject. Le listing exigerait s3:ListBucket sur le bucket lui-même, qu'il ne faut pas accorder publiquement.

Un bucket public va-t-il augmenter ma facture AWS ?

Vous payez les requêtes et le trafic sortant quand des gens téléchargent des fichiers. Pour des fichiers très partagés, CloudFront ou un fournisseur sans frais de trafic sortant, comme Cloudflare R2, revient généralement moins cher.