30. September 2026 · 5 Min. Lesezeit

So teilst du private S3- und R2-Dateien mit Presigned URLs

Nicht jede Datei gehört in einen öffentlichen Bucket. Verträge, Rechnungen oder unveröffentlichte Builds können privat bleiben und trotzdem geteilt werden, mit einem Link, der nur für begrenzte Zeit funktioniert.

So funktionieren Presigned URLs

Die URL enthält alles, was S3 zum Prüfen der Anfrage braucht: den Schlüssel, mit dem sie signiert wurde, den Zeitpunkt der Signatur, die Gültigkeitsdauer und eine Signatur. Sie sieht so aus:

https://your-bucket.s3.eu-central-1.amazonaws.com/contract.pdf
  ?X-Amz-Algorithm=AWS4-HMAC-SHA256
  &X-Amz-Credential=AKIA…/20260930/eu-central-1/s3/aws4_request
  &X-Amz-Date=20260930T120000Z
  &X-Amz-Expires=3600
  &X-Amz-SignedHeaders=host
  &X-Amz-Signature=…

Signiert wird auf deinem Computer. An den Anbieter geht erst etwas, wenn jemand den Link öffnet, und jede Änderung an der URL macht die Signatur ungültig.

Mit der AWS CLI erstellen

aws s3 presign s3://your-bucket/contract.pdf --expires-in 86400

Dieser Link funktioniert 24 Stunden. Für Cloudflare R2 oder einen anderen S3-kompatiblen Dienst richtest du die CLI auf dessen Endpunkt aus:

aws s3 presign s3://your-bucket/contract.pdf --expires-in 86400 \
  --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com

Grenzen, die du kennen solltest

  • Höchstens 7 Tage. Signature Version 4 erlaubt bis zu 604.800 Sekunden, bei S3 wie bei R2.
  • Temporäre Zugangsdaten enden früher. Eine mit einer STS- oder SSO-Sitzung signierte URL funktioniert nicht mehr, sobald diese Sitzung abläuft, auch wenn du eine längere Dauer angegeben hast.
  • R2 braucht die API-Domain. Presigned URLs funktionieren bei R2 mit <ACCOUNT_ID>.r2.cloudflarestorage.com, nicht mit einer eigenen Domain.
  • Jeder mit dem Link kann ihn nutzen. Behandle ihn bis zum Ablauf wie ein Passwort.
  • Kein Widerruf pro Link. Um einen Link vorzeitig zu sperren, lösche oder benenne das Objekt um, oder deaktiviere den Access Key, mit dem er signiert wurde.

Presigned URL oder öffentlicher Bucket?

Nutze einen öffentlichen Bucket für Dateien, die gesehen werden sollen und dauerhaft funktionieren müssen: Screenshots in Dokumentationen, Bilder in einer README. Nutze Presigned URLs für alles, was sensibel oder kurzlebig ist. Viele haben von beidem einen Bucket und entscheiden pro Datei.

Häufige Fragen

Kann eine Presigned URL länger als 7 Tage gelten?

Nicht mit Signature Version 4, die S3 und R2 verwenden. Für längeren Zugriff machst du die Datei öffentlich oder erzeugst einen neuen Link, wenn der alte abläuft.

Warum liefert meine Presigned URL SignatureDoesNotMatch?

Meist wurde die URL nach dem Signieren verändert, zum Beispiel von einem E-Mail-Programm oder weil der Host gegen eine eigene Domain getauscht wurde. Auch Region und Endpunkt müssen zum Bucket passen.

Funktionieren Presigned URLs mit Backblaze B2 und MinIO?

Ja. Beide unterstützen Presigned URLs mit Signature Version 4 über ihre S3-kompatiblen APIs.