Auf dieser Seite erhalten Sie eine Übersicht über signierte URLs. Für diese werden Signaturen genutzt, um einen zeitlich begrenzten Zugriff auf eine bestimmte Cloud Storage-Ressource zu gewähren. Jeder, der über eine signierte URL verfügt, kann sie verwenden, während sie aktiv ist. Dies gilt unabhängig davon, ob die Person ein gültiges Konto besitzt. Informationen zum Erstellen von signierten URLs finden Sie unter Signierte URLs mit gsutil erstellen und Signierte URLs mit einem eigenen Programm erstellen. Weitere Möglichkeiten zur Kontrolle des Zugriffs auf Buckets und Objekte finden Sie in der Übersicht über die Zugriffssteuerung.
Übersicht
Eine signierte URL beschränkt die Berechtigung und die Zeit zum Senden einer Anfrage. Der Abfragestring von signierten URLs enthält Authentifizierungsinformationen, einschließlich einer Signatur, damit Nutzer ohne Anmeldedaten bestimmte Aktionen für eine Ressource ausführen können.
Wenn Sie eine signierte URL generieren, müssen Sie ein Konto angeben, das ausreichende Berechtigungen hat, um die Anfrage der signierten URL ausführen zu können.
In den meisten Fällen handelt es sich bei dem Konto um ein Dienstkonto.
Wenn Sie ein eigenes Programm zum Generieren signierter URLs erstellen, können Sie ein Nutzerkonto verwenden, sofern es einen zugehörigen HMAC-Schlüssel hat.
Nachdem Sie eine signierte URL generiert haben, kann sie von allen Nutzern, die darüber verfügen, verwendet werden, um innerhalb eines bestimmten Zeitraums bestimmte Aktionen auszuführen, z. B. das Lesen eines Objekts.
Wann sollte ich eine signierte URL verwenden?
Unter bestimmten Voraussetzungen ist es möglicherweise hilfreich, wenn Nutzer nicht zwingend ein eigenes Konto haben müssen, um auf Cloud Storage zuzugreifen, der Zugriff dennoch mithilfe Ihrer anwendungsspezifischen Logik gesteuert werden kann. Üblicherweise wird dem Nutzer dafür eine signierte URL zur Verfügung gestellt, über die er innerhalb eines begrenzten Zeitraums Lese-, Schreib- oder Löschzugriff auf die entsprechende Ressource erhält. Beim Erstellen der signierten URL geben Sie eine Ablaufzeit an. Jeder, der die URL kennt, kann auf die Ressource zugreifen, bis die Ablaufzeit für die URL erreicht oder der Schlüssel zum Signieren der URL rotiert wurde.
Am häufigsten werden signierte URLs für Uploads und Downloads verwendet, da bei solchen Anfragen Objektdaten zwischen Anforderer und Cloud Storage übertragen werden. In den meisten Fällen, z. B. beim Kopieren von Objekten, Erstellen von Objekten, Löschen von Objekten oder Bearbeiten von Metadaten, ist das Erstellen einer signierten URL und deren Weitergabe an einen Nutzer nicht notwendig. Stattdessen sollte ein Design gewählt werden, bei dem die Entität, die für das Erstellen der signierten URL zuständig ist, die gewünschte Anfrage direkt an Cloud Storage sendet.
Beispiel einer signierten URL
Das folgende Beispiel zeigt eine signierte URL, die mit dem V4-Signaturprozess mit Dienstkontoauthentifizierung erstellt wurde:
https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7
Diese signierte URL hat Lesezugriff auf das Objekt cat.jpeg im Bucket example-bucket ermöglicht. Die folgenden Abfrageparameter machen diese URL zu einer signierten URL:
X-Goog-Algorithm: Der zum Signieren der URL verwendete Algorithmus.X-Goog-Credential: Informationen zu den Anmeldedaten, die zum Erstellen der signierten URL verwendet wurden.X-Goog-Date: Das Datum und die Uhrzeit, ab dem bzw. ab der die signierte URL verwendet werden konnte, im ISO 8601-BasisformatYYYYMMDD'T'HHMMSS'Z'.X-Goog-Expires: Die Gültigkeitsdauer der signierten URL, gemessen in Sekunden ab dem Wert vonX-Goog-Date. In diesem Beispiel läuft die signierte URL in 15 Minuten ab. Der längste Ablaufwert beträgt 604.800 Sekunden (7 Tage).X-Goog-SignedHeaders: Header, die in jeder Anfrage enthalten sein mussten, bei der die signierte URL verwendet wurde.X-Goog-Signature: Der Authentifizierungsstring, der Anfragen mit dieser signierten URL Zugriff aufcat.jpegermöglicht hat.
Signierte URLs mit fortsetzbaren Uploads
Im Allgemeinen ist es nicht erforderlich, signierte URLs für fortsetzbare Uploads zu erstellen. Nach der Anfrage zum Starten des Uploads wird für nachfolgende PUT-Anfragen zum Hochladen der Objektdaten ein Sitzungs-URI verwendet, der als Authentifizierungstoken dient. Das bedeutet, dass für PUT-Anfragen keine signierten URLs genutzt werden.
Sie können zwar für die erste POST-Anfrage eine signierte URL erstellen und verwenden, um den Upload zu starten. In den meisten Fällen kann aber stattdessen der Server den fortsetzbaren Upload initiieren. Der Server sendet dann den Sitzungs-URI an den Client, um den Upload auszuführen. Dadurch wird der komplexe Vorgang vermieden, wenn der Server eine signierte URL erstellt und der Client die signierte URL verarbeitet sowie den fortsetzbaren Upload initiiert.
Wie signierte URLs kann ein Sitzungs-URI von allen verwendet werden, die darüber verfügen, um Daten hochzuladen. Wichtig: Achten Sie beim Senden des Sitzungs-URI an einen Client darauf, dass er über HTTPS übertragen wird.
Überlegungen zu signierten URLs
Folgendes sollten Sie beim Arbeiten mit signierten URLs beachten:
Signierte URLs können nur für den Zugriff auf Cloud Storage-Ressourcen über XML API-Endpunkte verwendet werden.
Für die Angabe von Anmeldedaten wird empfohlen, dass Sie Ihr Dienstkonto anhand der zugehörigen E-Mail-Adresse identifizieren. Sie können aber auch die Dienstkonto-ID verwenden.
Kanonische Anfragen
Signierte URLs verwenden kanonische Anfragen als Teil der Informationen, die im zugehörigen Abfragestringparameter X-Goog-Signature codiert sind. Wenn Sie eine signierte URL mit Cloud Storage-Tools erstellen, wird die erforderliche kanonische Anfrage automatisch angelegt und eingefügt. Wenn Sie jedoch eine signierte URL mit Ihrem eigenen Programm erstellen, müssen Sie die kanonische Anfrage selbst definieren und zum Erstellen einer Signatur verwenden.
Anmeldedatenbereich
Der Anmeldedatenbereich ist im zu signierenden String und im Abfragestringparameter X-Goog-Credential enthalten.
Nächste Schritte
- Signierte URL mit Cloud Storage-Tools wie Clientbibliotheken oder der Google Cloud CLI erstellen
- Signierte URL mit einem eigenen Programm erstellen
- Weitere Informationen zu kanonischen Anfragen
- Weitere Informationen zu Signaturen