30. September 2026 · 6 Min. Lesezeit
So machst du einen Amazon-S3-Bucket öffentlich
Neue S3-Buckets blockieren jeden öffentlichen Zugriff, und ACLs sind standardmäßig deaktiviert. Der alte "Make public"-Button für einzelne Objekte bewirkt also nichts mehr. Öffentliches Lesen kommt heute über eine Bucket-Policy.
Schritt 1: öffentliche Bucket-Policies zulassen
- Öffne den Bucket in der S3-Konsole und geh zum Tab Permissions.
- Wähle unter Block public access (bucket settings) die Option Edit.
- Deaktiviere die beiden Einstellungen zu bucket and access point policies. Die beiden ACL-Einstellungen kannst du aktiviert lassen, denn die Policy nutzt keine ACLs.
- Speichern und bestätigen.
Ist die Einstellung auch auf Kontoebene aktiv (Block Public Access settings for this account in der S3-Seitenleiste), hat sie Vorrang vor der Bucket-Einstellung und muss Policies ebenfalls zulassen.
Schritt 2: Bucket-Policy für öffentliches Lesen hinzufügen
Bearbeite, weiterhin unter Permissions, die Bucket policy und füge Folgendes mit deinem Bucket-Namen ein:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket/*"
}
]
}
Damit lassen sich Objekte lesen, der Bucket aber nicht auflisten. Um nur einen Ordner öffentlich zu machen, schränkst du die Ressource ein, zum Beispiel auf arn:aws:s3:::your-bucket/public/*.
Mit der AWS CLI sehen dieselben zwei Schritte so aus:
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.jsonSchritt 3: öffentliche URL finden
Objekte sind jetzt unter der Virtual-Hosted-URL erreichbar:
https://your-bucket.s3.eu-central-1.amazonaws.com/2026/09/report.pdf
Verwende die Region deines Buckets. Wenn diese Adresse AccessDenied liefert, blockieren die Block-Public-Access-Einstellungen die Policy noch, oder der Bucket-Name in der Policy enthält einen Tippfehler.
Die sicherere Alternative: CloudFront mit privatem Bucket
Wenn du den Bucket selbst lieber nicht öffnen willst, lass Block Public Access aktiviert und erstelle eine CloudFront-Distribution mit dem Bucket als Origin und Origin access control (OAC). CloudFront zeigt dir die Bucket-Policy an, mit der nur die Distribution Objekte lesen darf. So bekommst du HTTPS auf deiner eigenen Domain, Caching und einen Bucket, der privat bleibt. Siehe eigene Domains für Bucket-Links.
Häufige Fragen
Warum funktioniert "Make public using ACL" nicht mehr?
Seit April 2023 haben neue Buckets die Object Ownership Bucket owner enforced, wodurch ACLs deaktiviert sind. Öffentlicher Zugriff muss über eine Bucket-Policy oder CloudFront kommen.
Können andere bei einem öffentlichen Bucket meine Dateien auflisten?
Mit der Policy oben nicht. Sie erlaubt nur s3:GetObject. Zum Auflisten wäre s3:ListBucket auf den Bucket selbst nötig, und das solltest du nicht öffentlich freigeben.
Erhöht ein öffentlicher Bucket meine AWS-Rechnung?
Du bezahlst für Anfragen und ausgehenden Datentransfer, wenn Leute Dateien herunterladen. Für viel geteilte Dateien ist CloudFront oder ein Anbieter ohne Traffic-Gebühren wie Cloudflare R2 meist günstiger.