Cloud Storage-Authentifizierung

Die meisten Vorgänge in Cloud Storage müssen authentifiziert werden. Die einzige Ausnahme sind Vorgänge an Objekten, auf die anonym zugegriffen werden kann. Eine Ressource hat anonymen Zugriff, wenn die Gruppe allUsers in der ACL für die Ressource enthalten ist oder wenn die Gruppe allUsers in einer IAM-Richtlinie enthalten ist, die für die Ressource gilt. Zur Gruppe allUsers gehört jeder im Internet.

Authentifizierung mit OAuth 2.0

Cloud Storage nutzt OAuth 2.0 für die API-Authentifizierung und -Autorisierung. Bei der Authentifizierung wird die Identität eines Clients ermittelt. Der genaue Ablauf der Authentifizierung hängt davon ab, wie Sie auf Cloud Storage zugreifen. Es gibt jedoch zwei grundlegende Arten:

  • Bei einem serverbezogenen Ablauf kann eine Anwendung die Anmeldedaten eines Dienstkontos direkt bereithalten, um sich zu authentifizieren. Verwenden Sie diesen Ablauf, wenn Ihre Anwendung mit eigenen Daten anstatt mit denen von Nutzern arbeitet. Google Cloud-Projekte haben Standarddienstkonten, die Sie verwenden können. Alternativ können Sie auch neue erstellen.

  • Bei einem nutzerbezogenen Ablauf kann die Anwendung Anmeldedaten von einem Endnutzer abrufen. Der Nutzer meldet sich an, um sich zu authentifizieren. Verwenden Sie diesen Ablauf, wenn Ihre Anwendung auf Nutzerdaten zugreifen muss. Unter Anmeldedaten für Nutzerkonten finden Sie Szenarien, in denen ein nutzerorientierter Ablauf geeignet ist.

Sie können auch beide Authentifizierungsarten gemeinsam in derselben Anwendung verwenden. Weitere Hintergrundinformationen zur Authentifizierung finden Sie im Google Cloud-Authentifizierungsleitfaden.

Authentifizierung der Befehlszeilenschnittstelle

Wenn Sie mit Cloud Storage über die Google Cloud CLI arbeiten, sollten Sie sich in der Regel mit den Anmeldedaten Ihres Nutzerkontos authentifizieren. Führen Sie dazu den Befehl gcloud auth login aus und folgen Sie der Anleitung, die eine Anmeldung in Ihrem Nutzerkonto umfasst. Weitere -Authentifizierungsoptionen finden Sie unter Zur Verwendung der gcloud CLI authentifizieren.

Authentifizierung der Clientbibliothek

Clientbibliotheken können Standardanmeldedaten für Anwendungen verwenden, um sich einfach bei Google APIs zu authentifizieren und Anfragen an diese APIs zu senden. Mit den Standardanmeldedaten für Anwendungen können Sie Ihre Anwendung lokal testen und bereitstellen, ohne den zugrunde liegenden Code zu ändern. Weitere Informationen finden Sie unter <atrack-type="commonincludes" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5VtDH5LoWw0lj/" track-name="referenceLink">. Authentifizieren Sie sich für die Verwendung von Clientbibliotheken.</atrack-type="commoninclude">

  • Google Cloud

    Wenn Sie Ihre Anwendung auf Diensten ausführen, die Angehängte Dienstkonten wie App Engine, Cloud Functions, Cloud Run oder Compute Engine unterstützen, stellt die Umgebung bereits Dienstkonto-Authentifizierungsinformationen bereit, sodass keine weitere Einrichtung erforderlich ist. Bei Compute Engine hängt der Bereich des Dienstkontos davon ab, wie Sie die Instanz erstellt haben Siehe Zugriffsbereiche in der Compute Engine-Dokumentation. Bei App Engine wird der Bereich cloud-platform verwendet.

  • Andere Umgebungen

    Zur Initialisierung Ihrer lokalen Entwicklungs- oder Produktionsumgebung müssen Sie ein Google Cloud-Dienstkonto erstellen, den Schlüssel herunterladen und die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS so festlegen, dass der Schlüssel verwendet wird. Eine detaillierte Anleitung mit Verwendung von Cloud Storage-Clientbibliotheken finden Sie unter Authentifizierung einrichten.

API-Authentifizierung

Für Anfragen mit OAuth 2.0 an die XML API oder die JSON API von Cloud Storage fügen Sie das Zugriffstoken Ihrer Anwendung in den Authorization-Header jeder Anfrage ein, die authentifiziert werden muss. Sie können ein Zugriffstoken aus dem OAuth 2.0 Playground erstellen.

  1. Wählen Sie in derOAuth 2.0 Playground, klickenCloud Storage API Version 1 und wählen Sie dann eine Zugriffsebene für Ihre Anwendung aus (full_control, read_only oder read_write).

  2. Klicken Sie auf Authorize APIs (APIs autorisieren).

  3. Melden Sie sich bei Ihrer Aufforderung in Ihrem Konto an. Klicken Sie im angezeigten Dialogfeld auf Zulassen.

  4. Klicken Sie in Schritt 2 des Playground auf Autorisierungscode gegen Tokens austauschen für den angezeigten Autorisierungscode.

  5. Kopieren Sie das Zugriffstoken und fügen Sie es in den Header Authorization der Anfrage ein:

    Authorization: Bearer OAUTH2_TOKEN

Das folgende Beispiel enthält eine Anfrage zum Auflisten von Objekten in einem Bucket.

JSON API

Verwenden Sie die list-Methode der Objektressource:

GET /storage/v1/b/example-bucket/o HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Wenn Sie Anfragen über die Befehlszeile oder zum Testen autorisieren möchten, können Sie den Befehl "curl" mit der folgenden Syntax verwenden:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"

Für lokale Tests können Sie mit dem Befehl gcloud auth application-default print-access-token ein Token generieren.

XML API

Verwenden Sie eine Anfrage zum Auflisten von Objekten:

GET / HTTP/1.1
Host: example-bucket.storage.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Wenn Sie Anfragen über die Befehlszeile oder zum Testen autorisieren möchten, können Sie den Befehl "curl" mit der folgenden Syntax verwenden:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://BUCKET_NAME.storage.googleapis.com"

Für lokale Tests können Sie mit dem Befehl gcloud auth application-default print-access-token ein Token generieren.

Da die Verwaltung und Aktualisierung von Zugriffstokens sehr kompliziert ist und der direkte Umgang mit kryptografischen Anwendungen ein hohes Sicherheitsrisiko birgt, sollten Sie unbedingt eine verifizierte Clientbibliothek verwenden.

HMAC-Schlüssel zur Verwendung mit der XML API für den interoperablen Zugriff mit Amazon S3 finden Sie unter HMAC-Schlüssel für Dienstkonten verwalten.

Nächste Schritte