Ich habe mithilfe eines temporären Tokens eine vorsignierte URL für einen Amazon Simple Storage Service (Amazon S3)-Bucket erstellt. Die URL ist jedoch vor der von mir angegebenen Ablaufzeit abgelaufen. Warum ist das passiert? Wie kann ich eine vorsignierte URL erstellen, die länger gültig ist?
Behebung
Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft. Die URL läuft ab, auch wenn die URL mit einer späteren Ablaufzeit erstellt wurde.
Zu den Anmeldeinformationen, die Sie verwenden können, um eine vorsignierte URL zu erstellen, gehören:
- **Instance-Profil für AWS Identity and Access Management (IAM):**Gültig bis zu sechs Stunden.
- **AWS-Sicherheitstoken-Service (STS):**Gültig bis zu 36 Stunden, wenn es von einem AWS Identity and Access Management (IAM)-Benutzer signiert wurde, oder bis zu einer Stunde gültig, wenn es vom Root-Benutzer signiert wurde.
- **IAM-Benutzer:**Gültig bis zu sieben Tage, wenn Sie AWS Signature Version 4 verwenden.
Um eine vorsignierte URL zu erstellen, die bis zu sieben Tage gültig ist, geben Sie IAM-Benutzeranmeldeinformationen (den Zugangsschlüssel und den geheimen Zugriffsschlüssel) für Ihr SDK an. Generieren Sie dann eine vorsignierte URL mit AWS Signature Version 4. Beispiele finden Sie unter Signaturberechnungen in AWS Signature Version 4.
Beachten Sie beim Erstellen einer vorsignierten URL die folgenden Punkte:
- Dienste, die eine Rolle übernehmen, wie z. B. die AWS Lambda-Ausführungsrolle, entsprechen nicht unbedingt den Einstellungen der Sitzungsdauer der Rolle.
- Da vorsignierte URLs jedem, der über die URL verfügt, Zugriff auf Amazon S3-Buckets gewähren, ist es eine bewährte Methode, sie angemessen zu schützen.
- Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde.
Um Benutzern länger als sieben Tage lang Zugriff auf die Objekte in Ihrem Amazon S3-Bucket zu gewähren, sollten Sie eine der folgenden Optionen verwenden:
Verwandte Informationen
Teilen von Objekten mithilfe vorsignierter URLs
GetSessionToken
Sicherheitsanmeldeinformationen aus Instance-Metadaten abrufen
Authentifizieren von Anfragen: Verwenden von Abfrageparametern (AWS Signature Version 4)
Boto 3 Dokumente: S3