Auf dieser Seite wird gezeigt, wie Sie Objekte, deren Inhaber Sie sind, für jeden im öffentlichen Internet lesbar machen können und wie Sie den öffentlichen Zugriff auf Ihren Bucket entfernen. Informationen über den Zugriff auf öffentliche Daten finden Sie unter Auf öffentliche Daten zugreifen.
Auf öffentlich freigegebene Objekte kann jeder Nutzer zugreifen, der den Objekt-URI kennt, solange es öffentlich ist.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden Rollen für den Bucket zuzuweisen, der die Daten enthält, die Sie öffentlich lesbar machen möchten, um die erforderlichen Berechtigungen zu erhalten:
So machen Sie alle Objekte in einem Bucket öffentlich lesbar: Storage-Administrator (
roles/storage.admin
)So machen Sie einzelne Objekte öffentlich lesbar: Storage-Objekt-Administrator (
roles/storage.objectAdmin
)- Wenn Sie die Google Cloud -Konsole verwenden möchten, benötigen Sie die Rolle „Storage-Administrator“ (
roles/storage.admin
) anstelle der Rolle „Storage-Objekt-Administrator“.
- Wenn Sie die Google Cloud -Konsole verwenden möchten, benötigen Sie die Rolle „Storage-Administrator“ (
So entfernen Sie den öffentlichen Zugriff auf alle Objekte in einem Bucket: Storage-Administrator (
roles/storage.admin
)
Diese Rollen enthalten die Berechtigungen, die zum Veröffentlichen von Objekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Die folgenden Berechtigungen sind nur erforderlich, um die Aufgaben auf dieser Seite mit derGoogle Cloud -Konsole auszuführen:
storage.buckets.list
storage.objects.list
Sie können diese Berechtigungen möglicherweise auch mit anderen vordefinierten Rollen oder benutzerdefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.
Alle Objekte in einem Bucket öffentlich lesbar machen
Wenn Sie alle Objekte in einem Bucket für alle Nutzer im öffentlichen Internet lesbar machen möchten, weisen Sie dem Hauptkonto allUsers
die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) zu:
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie veröffentlichen möchten.
Wählen Sie oben auf der Seite den Tab Berechtigungen aus.
Klicken Sie im Abschnitt Berechtigungen auf die Schaltfläche
Zugriff erlauben.Das Dialogfeld Zugriff erlauben wird angezeigt.
Geben Sie im Feld Neue Hauptkonten
allUsers
ein.Geben Sie im Drop-down-Menü Rolle auswählen
Storage Object Viewer
in das Filterfeld ein und wählen Sie Storage-Objekt-Betrachter aus den gefilterten Ergebnissen aus.Klicken Sie auf Speichern.
Klicken Sie auf Öffentlichen Zugriff erlauben.
Sobald der öffentliche Zugriff gewährt wurde, wird in der Spalte für den öffentlichen Zugriff für jedes Objekt die Schaltfläche URL kopieren angezeigt. Sie können auf diese Schaltfläche klicken, um die öffentliche URL für das Objekt abzurufen. Die öffentliche URL unterscheidet sich von dem Link, den Sie erhalten, wenn Sie direkt mit der rechten Maustaste auf ein Objekt klicken. Beide Links ermöglichen den Zugriff auf ein Objekt. Die öffentliche URL kann jedoch auch verwendet werden, ohne sich bei einem Nutzerkonto anmelden zu müssen. Weitere Informationen finden Sie unter Anfrageendpunkte.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Informationen zum Beheben von Fehlern bei Organisationsrichtlinien und Berechtigungsfehlern finden Sie unter Fehlerbehebung beim Veröffentlichen von Daten.Befehlszeile
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie in Ihrer Entwicklungsumgebung den Befehl
buckets add-iam-policy-binding
aus:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Dabei ist
BUCKET_NAME
der Name des Buckets, dessen Objekte Sie veröffentlichen möchten. Beispiel:my-bucket
.
Clientbibliotheken
C++
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
C#
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
PHP
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Ruby
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Terraform
Sie können eine Terraform-Ressource verwenden, um alle Objekte in einem Bucket öfentlich zu machen.
REST APIs
JSON API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Verwenden Sie
cURL
, um die JSON API mit einerPUT
-Bucket-Anfrage aufzurufen:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dabei gilt:
JSON_FILE_NAME
ist der Pfad für die Datei, die Sie in Schritt 2 erstellt haben.BUCKET_NAME
ist der Name des Buckets, dessen Objekte Sie veröffentlichen möchten. Beispiel:my-bucket
.
XML API
Die öffentliche Freigabe aller Objekte in einem Bucket wird von der XML API nicht unterstützt. Verwenden Sie die Google Cloud -Konsole oder gcloud storage
.
Teile eines Buckets öffentlich lesbar machen
Mit einem verwalteten Ordner können Sie den Zugriff auf Objekte steuern, deren Namenspräfix mit dem Namen des verwalteten Ordners übereinstimmt. Mit einem verwalteten Ordner namens my-folder
kann beispielsweise der Zugriff auf Objekte mit den Namen my-folder/cats.jpg
und my-folder/dogs.jpg
gesteuert werden.
Um solche Objekte öffentlich zugänglich zu machen, erstellen Sie zuerst den verwalteten Ordner und legen dann eine IAM-Richtlinie für den Ordner fest, die allUsers
die Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer
) zuweist:
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie auf den Namen des Buckets, der die Objekte enthält, die Sie veröffentlichen möchten.
So erstellen Sie einen Ordner:
Klicken Sie auf die Schaltfläche Ordner erstellen.
Geben Sie den Namen für den Ordner ein. Sobald der Ordner in einen verwalteten Ordner umgewandelt wurde, unterliegen Objekte, deren Name mit diesem Namen beginnt, den im Ordner festgelegten IAM-Rollen.
Klicken Sie auf Erstellen.
So konvertieren Sie den Ordner in einen verwalteten Ordner:
Suchen Sie im Bereich mit dem Inhalt des Buckets nach dem Namen des Ordners, den Sie erstellt haben, und klicken Sie auf das Symbol Weitere Optionen
.Klicken Sie auf Zugriff bearbeiten.
Klicken Sie im dann angezeigten Fenster auf Aktivieren.
Fügen Sie dem Ordner eine IAM-Richtlinie hinzu, die
allUsers
die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) zuweist. Gehen Sie dazu so vor:Wenn der Bereich Berechtigungen für Ihren verwalteten Ordner noch nicht geöffnet ist, klicken Sie für den verwalteten Ordner auf das Symbol Weitere Optionen
und dann auf Zugriff bearbeiten.Klicken Sie im Bereich Berechtigungen auf die Schaltfläche
Hauptkonto hinzufügen.Geben Sie im Feld Neue Hauptkonten
allUsers
ein.Geben Sie im Drop-down-Menü Rolle auswählen
Storage Object Viewer
in das Filterfeld ein und wählen Sie Storage-Objekt-Betrachter aus den gefilterten Ergebnissen aus.Klicken Sie auf Speichern.
Klicken Sie auf Öffentlichen Zugriff erlauben.
Sobald der öffentliche Zugriff gewährt wurde, wird in der Spalte für den öffentlichen Zugriff für jedes relevante Objekt die Schaltfläche URL kopieren angezeigt. Sie können auf diese Schaltfläche klicken, um die öffentliche URL für das Objekt abzurufen. Die öffentliche URL unterscheidet sich von dem Link, den Sie erhalten, wenn Sie direkt mit der rechten Maustaste auf ein Objekt klicken. Beide Links ermöglichen den Zugriff auf ein Objekt. Die öffentliche URL kann jedoch auch verwendet werden, ohne sich bei einem Nutzerkonto anmelden zu müssen. Weitere Informationen finden Sie unter Anfrageendpunkte.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Informationen zum Beheben von Fehlern bei Organisationsrichtlinien und Berechtigungsfehlern finden Sie unter Fehlerbehebung beim Veröffentlichen von Daten.Befehlszeile
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Erstellen Sie in Ihrer Entwicklungsumgebung einen verwalteten Ordner mit dem
gcloud storage managed-folders create
-Befehl:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Dabei gilt:
BUCKET_NAME
ist der Name des Buckets, in dem Sie einen verwalteten Ordner erstellen möchten. Beispiel:my-bucket
.MANAGED_FOLDER_NAME
ist der Name des verwalteten Ordners, den Sie erstellen möchten. Beispiel:my-managed-folder
.
Fügen Sie in Ihrer Entwicklungsumgebung der IAM-Richtlinie des verwalteten Ordners mit dem Befehl
gcloud storage managed-folders add-iam-policy-binding
allUsers
hinzu:gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=allUsers --role=roles/storage.objectViewer
Dabei gilt:
BUCKET_NAME
ist der Name des Buckets, der den verwalteten Ordner enthält, dem Sie die IAM-Richtlinie hinzufügen. Beispiel:my-bucket
.MANAGED_FOLDER_NAME
ist der Name des verwalteten Ordners, dem Sie öffentlichen Zugriff hinzufügen möchten. Beispiel:my-managed-folder
REST APIs
JSON API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "name": "MANAGED_FOLDER_NAME" }
MANAGED_FOLDER_NAME
ist der Name des Ordners, den Sie erstellen möchten. Beispiel:my-managed-folder
.Verwenden Sie
cURL
, um die JSON API mit einerInsert ManagedFolder
-Anfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"
Dabei gilt:
JSON_FILE_NAME
ist der Pfad für die Datei, die Sie im vorherigen Schritt erstellt haben.BUCKET_NAME
ist der Name des Buckets, in dem Sie einen verwalteten Ordner erstellen möchten. Beispiel:my-bucket
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Verwenden Sie
cURL
, um die JSON API mit einersetIamPolicy
-ManagedFolder-Anfrage aufzurufen:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dabei gilt:
JSON_FILE_NAME
ist der Pfad für die Datei, die Sie im vorherigen Schritt erstellt haben.BUCKET_NAME
ist der Name des Buckets, der den verwalteten Ordner enthält, dem Sie die IAM-Richtlinie hinzufügen. Beispiel:my-bucket
.MANAGED_FOLDER_NAME
ist der Name des verwalteten Ordners, dem Sie die IAM-Richtlinie hinzufügen. Beispiel:my-managed-folder
.
XML API
Die XML API unterstützt verwaltete Ordner nicht. Verwenden Sie ein anderes Tool wie die Google Cloud Console oder legen Sie ACLs für einzelne Objekte mit Set Object ACL
-Anfragen fest. Im Folgenden sehen Sie ein Beispiel für eine ACL-Datei, die allUsers
Zugriff auf ein Objekt gewährt:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Öffentlichen Zugriff für alle Objekte in einem Bucket entfernen
Wenn Sie den öffentlichen Zugriff auf alle Objekte in einem Bucket entfernen möchten, entfernen Sie die IAM-Richtlinie, die allUsers
die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) zuweist:
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, für den Sie den öffentlichen Zugriff entfernen möchten.
Wählen Sie den Tab Berechtigungen aus.
Die IAM-Richtlinie, die für den Bucket gilt, wird im Bereich Berechtigungen angezeigt.
Setzen Sie auf dem Tab Nach Hauptkonten ansehen das Häkchen für das Hauptkonto
allUsers
, das Sie entfernen möchten.Klicken Sie auf - Zugriff entfernen.
Klicken Sie im eingeblendeten Fenster auf Bestätigen.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Befehlszeile
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie in Ihrer Entwicklungsumgebung den Befehl
buckets remove-iam-policy-binding
aus:
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
BUCKET_NAME
ist der Name des Buckets, für den Sie den Zugriff widerrufen. Beispiel: my-bucket
.
REST APIs
JSON
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Rufen Sie die vorhandene Richtlinie ab, die für Ihren Bucket gilt. Verwenden Sie dazu
cURL
, um die JSON API mit einerGET getIamPolicy
-Anfrage aufzurufen:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dabei ist
BUCKET_NAME
der Name des Buckets, dessen IAM-Richtlinie Sie aufrufen möchten. Beispiel:my-bucket
Erstellen Sie eine JSON-Datei mit der Richtlinie, die Sie im vorherigen Schritt abgerufen haben, und entfernen Sie die Bindung des
allUsers
-Hauptkontos aus der Richtlinie.Verwenden Sie
cURL
, um die JSON API mit einerPUT setIamPolicy
-Anfrage aufzurufen:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dabei gilt:
JSON_FILE_NAME
ist der Pfad für die Datei, die Sie in Schritt 3 erstellt haben.BUCKET_NAME
ist der Name des Buckets, für den der Zugriff entfernt werden soll. Beispiel:my-bucket
Nächste Schritte
- Auf veröffentlichte Daten zugreifen
- Mehr über Zugriffssteuerungsoptionen für Buckets und Objekte erfahren