In diesem Dokument werden die Zugriffssteuerungsoptionen beschrieben, die in Pub/Sub zur Verfügung stehen.
Übersicht
Pub/Sub verwendet Identity and Access Management (IAM) für die Zugriffssteuerung.
Mit IAM können Sie Nutzern, Gruppen und Dienstkonten bestimmte Rollen zuweisen, damit sie die erforderlichen Berechtigungen für ihre Aufgaben erhalten. Sie können diese IAM-Rollen über dieGoogle Cloud -Konsole oder die IAM API zuweisen.
In Pub/Sub kann die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfiguriert werden. Hier sind einige Beispiele für die Verwendung der Pub/Sub-Zugriffssteuerung:
Gewähren Sie Zugriff auf Ressourcenebene und nicht für das gesamte Cloud-Projekt.
Zugriff mit begrenzten Möglichkeiten gewähren, zum Beispiel zum Veröffentlichen von Nachrichten nur zu einem Thema oder zum Erhalten von Nachrichten aus einem Abo ohne Löschen des Themas oder Abos.
Einer Gruppe von Entwicklern Zugriff auf alle Pub/Sub-Ressourcen innerhalb eines Projekts gewähren
Wenn Sie nur Lesezugriff auf eine einzelne Ressource wie ein Thema oder ein Abo haben, können Sie die Ressource nicht über die Google Cloud Console aufrufen. Stattdessen können Sie die Google Cloud CLI verwenden, um die Ressource aufzurufen.
Eine ausführliche Beschreibung von IAM und den entsprechenden Funktionen finden Sie in der IAM-Dokumentation. Lesen Sie insbesondere den Abschnitt Zugriff auf Ressourcen erteilen, ändern und entziehen.
Arten von Rollen in Pub/Sub
Ähnlich wie bei anderen Google Cloud -Produkten werden in Pub/Sub drei Arten von Rollen unterstützt:
Einfache Rollen: Einfache Rollen sind sehr permissive Rollen, die vor der Einführung von IAM vorhanden waren. Weitere Informationen zu einfachen Rollen finden Sie unter Einfache Rollen.
Vordefinierte Rollen: Vordefinierte Rollen ermöglichen einen detaillierten Zugriff auf bestimmteGoogle Cloud -Ressourcen. Weitere Informationen zu vordefinierten Rollen finden Sie unter Vordefinierte Rollen. Die vordefinierten Pub/Sub-Rollen werden später in diesem Abschnitt beschrieben.
Benutzerdefinierte Rollen: Mit benutzerdefinierten Rollen können Sie das Prinzip der geringsten Berechtigung erzwingen. Weitere Informationen zu benutzerdefinierten Rollen finden Sie unter Benutzerdefinierte Rollen.
Erforderliche Pub/Sub-Berechtigungen
In den folgenden Abschnitten werden die Pub/Sub-Berechtigungen aufgeführt, die für den Zugriff auf verschiedene Pub/Sub-Ressourcen erforderlich sind.
Erforderliche Berechtigungen für Themen
In der folgenden Tabelle sind die erforderlichen Berechtigungen für jede Pub/Sub API-Methode im Zusammenhang mit Themen aufgeführt. Dort wird angezeigt, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, zusammen mit einer Beschreibung der Funktion der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.topics.create
|
Erstellt das angegebene Thema mit dem angegebenen Namen. | pubsub.topics.create
für das zugehörige Cloud-Projekt |
projects.topics.delete
|
Löscht das Thema mit dem angegebenen Namen. | pubsub.topics.delete
für das angeforderte Thema |
projects.topics.get
|
Ruft die Konfiguration eines Themas ab. | pubsub.topics.get
für das angeforderte Thema |
projects.topics.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für ein Thema ab. | pubsub.topics.getIamPolicy
für das angeforderte Thema |
projects.topics.list
|
Listet alle Themen auf. | pubsub.topics.list
für das angeforderte Cloud-Projekt |
projects.topics.patch
|
Aktualisiert ein vorhandenes Thema. | pubsub.topics.update
für das angeforderte Thema |
projects.topics.publish
|
Fügt dem Thema eine oder mehrere Nachrichten hinzu. | pubsub.topics.publish
für das angeforderte Thema |
projects.topics.setIamPolicy
|
Legt die IAM-Zugriffssteuerungsrichtlinie für ein Thema fest. | pubsub.topics.setIamPolicy
für das angeforderte Thema |
projects.topics.testIamPermissions
|
Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück. | Keine |
Erforderliche Berechtigungen für Abos
In der folgenden Tabelle sind die erforderlichen Berechtigungen für jede Pub/Sub API-Methode im Zusammenhang mit Abos aufgeführt. Dort wird angezeigt, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktion der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.subscriptions.acknowledge
|
Bestätigt die Nachrichten, die mit den ack_ids im AcknowledgeRequest verknüpft sind. | pubsub.subscriptions.consume
für das angeforderte Abo |
projects.subscriptions.create
|
Erstellt ein Abo für ein bestimmtes Thema. | pubsub.subscriptions.create für das zugehörige Cloudprojekt und pubsub.topics.attachSubscription für das angeforderte Thema.
Wenn Sie ein Abo S in Projekt A erstellen möchten, das an ein Thema T in Projekt B angehängt ist, müssen die entsprechenden Berechtigungen sowohl für Projekt A als auch für Thema T erteilt werden. In diesem Fall können Informationen zur Nutzeridentität in den Audit-Logs von Projekt B erfasst werden. |
projects.subscriptions.delete
|
Löscht ein vorhandenes Abo. | pubsub.subscriptions.delete
für das angeforderte Abo |
projects.subscriptions.detach
|
Trennt ein Abo von diesem Thema. | pubsub.subscriptions.detach
für das Abo |
projects.subscriptions.get
|
Ruft die Konfigurationsdetails eines Abos ab. | pubsub.subscriptions.get
für das angeforderte Abo |
projects.subscriptions.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für ein Abo ab. | pubsub.subscriptions.getIamPolicy
für das angeforderte Abo |
projects.subscriptions.list
|
Listet übereinstimmende Abos auf. | pubsub.subscriptions.list
für das angeforderte Cloud-Projekt |
projects.subscriptions.modifyAckDeadline
|
Ändert die Bestätigungsfrist für eine bestimmte Nachricht. | pubsub.subscriptions.consume
für das angeforderte Abo |
projects.subscriptions.modifyPushConfig
|
Ändert die pushConfig für ein angegebenes Abo. | pubsub.subscriptions.update
für das angeforderte Abo |
projects.subscriptions.patch
|
Aktualisiert ein vorhandenes Abo. | pubsub.subscriptions.update
für das angeforderte Abo |
projects.subscriptions.pull
|
Ruft Nachrichten vom Server ab. | pubsub.subscriptions.consume
für das angeforderte Abo |
projects.subscriptions.seek
|
Sucht in einem vorhandenen Abo nach einem bestimmten Zeitpunkt oder Snapshot. | pubsub.subscriptions.consume
für das angeforderte Abo und pubsub.snapshots.seek
für den angeforderten Snapshot, falls vorhanden. |
projects.subscriptions.setIamPolicy
|
Legt die IAM-Zugriffssteuerungsrichtlinie für ein Abo fest. | pubsub.subscriptions.setIamPolicy
für das angeforderte Abo |
projects.subscriptions.testIamPermissions
|
Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück. | Keine |
Für Schemas erforderliche Berechtigungen
In der folgenden Tabelle sind die erforderlichen Berechtigungen für jede Pub/Sub API-Methode im Zusammenhang mit Schemas aufgeführt. Dort wird angezeigt, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktion der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.schemas.commit
|
Es wird eine neue Schemaversion übernommen. | pubsub.schemas.commit
für das angeforderte Schema |
projects.schemas.create
|
Erstellt ein Schema. | pubsub.schemas.create
für das zugehörige Cloud-Projekt |
projects.schemas.delete
|
Löscht ein Schema. | pubsub.schemas.delete
für das angeforderte Schema |
projects.schemas.deleteRevision
|
Löscht eine bestimmte Schemaversion. | pubsub.schemas.delete
für das angeforderte Schema |
projects.schemas.get
|
Ruft ein Schema ab. | pubsub.schemas.get
für das angeforderte Schema |
projects.schemas.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für ein Schema ab. | pubsub.schemas.getIamPolicy für das angeforderte Schema |
projects.schemas.list
|
Listet Schemas in einem Projekt auf. | pubsub.schemas.list
für das angeforderte Cloud-Projekt |
projects.schemas.listRevisions
|
Listet alle Schemaversionen für das benannte Schema auf. | pubsub.schemas.listRevisions
für das angeforderte Schema |
projects.schemas.rollback
|
Erstellt eine neue Schemaversion aus einer vorherigen Version. | pubsub.schemas.rollback
für das angeforderte Schema |
projects.schemas.validate
|
Validiert eine Schemadefinition. | pubsub.schemas.validate
für das zugehörige Cloud-Projekt |
projects.schemas.validateMessage
|
Validiert eine Nachricht anhand eines Schemas. | pubsub.schemas.validate
für das zugehörige Cloud-Projekt |
Erforderliche Berechtigungen für Snapshots
In der folgenden Tabelle sind die erforderlichen Berechtigungen für jede Pub/Sub API-Methode im Zusammenhang mit Snapshots aufgeführt. Dort wird angezeigt, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktion der Methode.
REST-Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.snapshots.create
|
Erstellt einen Snapshot des angeforderten Abos. | pubsub.snapshots.create für das zugehörige Cloud-Projekt und die Berechtigung pubsub.subscriptions.consume für das Quellabo. |
projects.snapshots.delete
|
Entfernt einen vorhandenen Snapshot. | pubsub.snapshots.delete
für den angeforderten Snapshot |
projects.snapshots.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für einen Snapshot ab. | pubsub.snapshots.getIamPolicy
für den angeforderten Snapshot |
projects.snapshots.list
|
Listet die vorhandenen Snapshots auf. | pubsub.snapshots.list
für das angeforderte Cloud-Projekt |
projects.snapshots.patch
|
Aktualisiert einen vorhandenen Snapshot. | pubsub.snapshots.update
für den angeforderten Snapshot |
projects.snapshots.setIamPolicy
|
Legt die IAM-Zugriffssteuerungsrichtlinie für einen Snapshot fest. | pubsub.snapshots.setIamPolicy
für den angeforderten Snapshot |
projects.snapshots.testIamPermissions
|
Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück. | Keine |
Verfügbare Pub/Sub-Rollen
In der folgenden Tabelle sind alle Pub/Sub-Rollen und die Berechtigungen aufgeführt, die mit jeder Rolle verknüpft sind:
Role | Permissions |
---|---|
Pub/Sub Admin( Provides full access to topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Editor( Provides access to modify topics and subscriptions, and access to publish and consume messages. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Publisher( Provides access to publish messages to a topic. Lowest-level resources where you can grant this role:
|
|
Cloud Pub/Sub Service Agent( Grants Cloud Pub/Sub Service Account access to manage resources. |
|
Pub/Sub Subscriber( Provides access to consume messages from a subscription and to attach subscriptions to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Viewer( Provides access to view topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Zugriff über die Google Cloud Konsole steuern
Mit der Google Cloud Console können Sie die Zugriffssteuerung für Ihre Themen und Projekte verwalten.
So legen Sie Zugriffssteuerungen auf Projektebene fest:
Rufen Sie in der Google Cloud Console die IAM-Seite auf.
Wählen Sie Ihr Projekt aus.
Klicken Sie auf
Hinzufügen.Geben Sie einen oder mehrere Hauptkontonamen ein.
Wählen Sie in der Liste Rolle auswählen die Rolle aus, die Sie zuweisen möchten.
Klicken Sie auf Speichern.
Prüfen Sie, ob das Hauptkonto mit der Rolle aufgelistet wird, die Sie ihm zugewiesen haben.
So legen Sie Zugriffssteuerungen für Themen und Abos fest:
Rufen Sie in der Google Cloud Console die Liste Pub/Sub-Themen auf.
Wählen Sie bei Bedarf Ihr Pub/Sub-fähiges Projekt aus.
Führen Sie einen der folgenden Schritte aus:
Wenn Sie Rollen für ein oder mehrere Themen festlegen möchten, wählen Sie die Themen aus.
Wenn Sie Rollen für ein Abo festlegen möchten, das mit einem Thema verknüpft ist, klicken Sie auf die Themen-ID. Klicken Sie auf der Seite Themendetails auf die Abo-ID. Die Seite Abo-Details wird angezeigt.
Wenn das Infofeld ausgeblendet ist, klicken Sie auf Infofeld ansehen.
Klicken Sie auf dem Tab Berechtigungen auf
Hauptkonto hinzufügen.Geben Sie einen oder mehrere Hauptkontonamen ein.
Wählen Sie in der Liste Rolle auswählen die Rolle aus, die Sie zuweisen möchten.
Klicken Sie auf Speichern.
Zugriff über die IAM API steuern
Mit der IAM API von Pub/Sub können Sie Richtlinien für einzelne Themen und Abos in einem Projekt festlegen und abrufen sowie die Berechtigungen eines Nutzers für eine bestimmte Ressource testen. Wie bei den normalen Pub/Sub-Methoden können Sie die IAM API-Methoden über die Clientbibliotheken, den API Explorer oder direkt über HTTP aufrufen.
Beachten Sie, dass Sie mit der IAM API von Pub/Sub keine Richtlinien auf Google Cloud Projektebene verwalten können.
Die folgenden Abschnitte enthalten Beispiele zum Festlegen und Abrufen von Richtlinien sowie zum Testen der Berechtigungen, die ein Aufrufer für eine bestimmte Ressource hat.
Richtlinie abrufen
Mit der Methode getIamPolicy()
können Sie eine vorhandene Richtlinie abrufen.
Diese Methode gibt ein JSON-Objekt zurück, das die Richtlinien enthält, die mit der Ressource verbunden sind.
Es folgt Beispielcode zum Abrufen von Richtlinien für ein Abo:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
Rufen Sie die Abo-Richtlinie ab:
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Ausgabe:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com", "user:user-3@gmail.com" ] } ] }
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Es folgt Beispielcode zum Abrufen von Richtlinien für ein Thema:C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
Themenrichtlinie abrufen
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
Ausgabe:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Richtlinie festlegen
Mit der Methode setIamPolicy()
können Sie eine Richtlinie mit einer Ressource verknüpfen. Die Methode setIamPolicy()
akzeptiert eine SetIamPolicyRequest
, die eine festzulegende Richtlinie sowie die Ressource enthält, mit der die Richtlinie verknüpft ist.
Sie gibt die entsprechende Richtlinie zurück.
Der folgende Beispielcode dient zum Festlegen von Richtlinien für ein Abo:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
1 Speichern Sie die Richtlinie für das Abo.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. Öffnen Sie subscription_policy.json
und aktualisieren Sie die Bindungen, indem Sie den entsprechenden Hauptkonten die entsprechenden Rollen zuweisen.
Weitere Informationen zum Arbeiten mit subscription_policy.json
-Dateien finden Sie unter Richtlinie in der IAM-Dokumentation.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com" ] } ] }
3. Wenden Sie die neue Richtlinie für Abos an.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Es folgt ein Abschnitt mit Beispielcode zum Festlegen von Richtlinien für ein Thema:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
1 Speichern Sie die Richtlinie für das Thema.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. Öffnen Sie topic_policy.json
und aktualisieren Sie die Bindungen, indem Sie den entsprechenden Hauptkonten die entsprechenden Rollen zuweisen.
Weitere Informationen zum Arbeiten mit subscription_policy.json
-Dateien finden Sie unter Richtlinie in der IAM-Dokumentation.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Wenden Sie die neue Themenrichtlinie an.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Berechtigungen testen
Mit der Methode testIamPermissions()
können Sie prüfen, welche Berechtigungen für die angegebene Ressource hinzugefügt oder entfernt werden können. Es verwendet als Parameter einen Ressourcennamen und eine Reihe von Berechtigungen und gibt eine Teilmenge der Berechtigungen zurück.
Es folgt Beispielcode zum Testen von Berechtigungen für ein Abo:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Ausgabe:
[ { "name": "pubsub.subscriptions.consume", "stage": "GA" }, { "name": "pubsub.subscriptions.delete", "stage": "GA" }, { "name": "pubsub.subscriptions.get", "stage": "GA" }, { "name": "pubsub.subscriptions.getIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.setIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.update", "stage": "GA" } ]
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Es folgt Beispielcode zum Festlegen von Richtlinien für ein Thema:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \ --format json
Ausgabe
[ { "name": "pubsub.topics.attachSubscription", "stage": "GA" }, { "name": "pubsub.topics.delete", "stage": "GA" }, { "name": "pubsub.topics.detachSubscription", "stage": "GA" }, { "name": "pubsub.topics.get", "stage": "GA" }, { "name": "pubsub.topics.getIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.publish", "stage": "GA" }, { "name": "pubsub.topics.setIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.update", "stage": "GA" } ]
Go
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Projektübergreifende Kommunikation
Pub/Sub IAM ist nützlich, um bei projektübergreifender Kommunikation die Zugriffsrechte genau abzustimmen.
Angenommen, ein Dienstkonto in Cloud-Projekt A möchte Nachrichten zu einem Thema in Cloud-Projekt B veröffentlichen. Aktivieren Sie zuerst die Pub/Sub API in Projekt A.
Gewähren Sie dem Dienstkonto als Nächstes die Berechtigung Bearbeiten in Cloud-Projekt B. Dieser Ansatz ist jedoch oft zu grob. Mit der IAM API können Sie die Zugriffsebene noch präziser festlegen.
Beispielsweise verwendet dieses Snippet die setIamPolicy()
-Methode in project-b und eine vorbereitete topic_policy.json
-Datei, um dem Dienstkonto foobar@
project-a.iam.gserviceaccount.com
von project-a die Publisher-Rolle für das Thema projects/
project-b/topics/
topic-b zu gewähren:
gcloud pubsub topics set-iam-policy \ projects/project-b/topics/topic-b \ topic_policy.json
Updated IAM policy for topic topic-b. bindings: - members: - serviceAccount:foobar@project-a.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwWGrQYX6R4=
Verhalten bei teilweiser Verfügbarkeit
Die Autorisierungsprüfungen hängen vom IAM-Subsystem ab. Das System kann auf im Cache gespeicherte IAM-Richtlinien zurückgreifen, um eine konsistent niedrige Reaktionslatenz für Datenoperationen (Veröffentlichung und Nachrichtenverbrauch) zu bieten. Weitere Informationen dazu, wann Ihre Änderungen wirksam werden, finden Sie in der IAM-Dokumentation.
Weitere Informationen
- Wenn Sie Probleme beim Zugriff auf Pub/Sub-Ressourcen oder bei der Authentifizierung haben, lesen Sie den Abschnitt Allgemeine Fehlerbehebung.