In diesem Dokument werden die Zugriffssteuerungsoptionen beschrieben, die in Pub/Sub zur Verfügung stehen.
Übersicht
Pub/Sub verwendet die Identitäts- und Zugriffsverwaltung (IAM) für die Zugriffssteuerung.
In Pub/Sub kann die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfiguriert werden. Beispiel:
Zugriff je nach Thema oder Abo und nicht für das gesamte Cloud-Projekt gewähren.
Wenn Sie nur Lesezugriff auf ein einzelnes Thema oder Abo haben, können Sie es nicht über die Google Cloud Console aufrufen. Stattdessen können Sie die Google Cloud CLI verwenden.
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
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.
Für jede Pub/Sub-Methode sind die erforderlichen Berechtigungen erforderlich. Eine Liste der Berechtigungen und Rollen, die Pub/Sub IAM unterstützt, finden Sie im unteren Abschnitt Rollen.
Berechtigungen und Rollen
In diesem Abschnitt werden die von Pub/Sub IAM unterstützten Berechtigungen und Rollen beschrieben.
Erforderliche Berechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die zum Aufrufen der einzelnen Methoden erforderlich sind:
REST-Methode | Erforderliche Berechtigungen |
---|---|
projects.snapshots.create |
pubsub.snapshots.create für das zugehörige Cloudprojekt und die Berechtigung pubsub.subscriptions.consume für das Quellabo. |
projects.snapshots.delete |
pubsub.snapshots.delete für den angefragten Snapshot. |
projects.snapshots.getIamPolicy |
pubsub.snapshots.getIamPolicy für den angefragten Snapshot. |
projects.snapshots.list |
pubsub.snapshots.list für das angefragte Cloudprojekt. |
projects.snapshots.patch |
pubsub.snapshots.update für den angefragten Snapshot. |
projects.snapshots.setIamPolicy |
pubsub.snapshots.setIamPolicy für den angefragten Snapshot. |
projects.snapshots.testIamPermissions |
– |
projects.subscriptions.acknowledge |
pubsub.subscriptions.consume für das angeforderte Abo. |
projects.subscriptions.create |
pubsub.subscriptions.create für das zugehörige Cloudprojekt und pubsub.topics.attachSubscription für das angeforderte Thema.
Wenn Sie ein Abo in Projekt A für ein Thema T in Projekt B erstellen möchten, 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 |
pubsub.subscriptions.delete für das angeforderte Abo. |
projects.subscriptions.get |
pubsub.subscriptions.get für das angeforderte Abo. |
projects.subscriptions.getIamPolicy |
pubsub.subscriptions.getIamPolicy für das angeforderte Abo. |
projects.subscriptions.list |
pubsub.subscriptions.list für das angefragte Cloudprojekt. |
projects.subscriptions.modifyAckDeadline |
pubsub.subscriptions.consume für das angeforderte Abo. |
projects.subscriptions.modifyPushConfig |
pubsub.subscriptions.update für das angeforderte Abo. |
projects.subscriptions.patch |
pubsub.subscriptions.update für das angeforderte Abo. |
projects.subscriptions.pull |
pubsub.subscriptions.consume für das angeforderte Abo. |
projects.subscriptions.seek |
pubsub.subscriptions.consume für das angeforderte Abo und pubsub.snapshots.seek für den angeforderten Snapshot, falls vorhanden. |
projects.subscriptions.setIamPolicy |
pubsub.subscriptions.setIamPolicy für das angeforderte Abo. |
projects.subscriptions.testIamPermissions |
– |
projects.topics.create |
pubsub.topics.create für das zugehörige Cloudprojekt. |
projects.topics.delete |
pubsub.topics.delete für das angeforderte Thema. |
projects.topics.detachSubscription |
pubsub.topics.detachSubscription für das angeforderte Thema. |
projects.topics.get |
pubsub.topics.get für das angeforderte Thema. |
projects.topics.getIamPolicy |
pubsub.topics.getIamPolicy für das angeforderte Thema. |
projects.topics.list |
pubsub.topics.list für das angefragte Cloudprojekt. |
projects.topics.patch |
pubsub.topics.update für das angeforderte Thema. |
projects.topics.publish |
pubsub.topics.publish für das angeforderte Thema. |
projects.topics.setIamPolicy |
pubsub.topics.setIamPolicy für das angeforderte Thema. |
projects.topics.subscriptions.list |
pubsub.topics.get für das angeforderte Thema. |
projects.topics.testIamPermissions |
– |
Rollen
In der folgenden Tabelle sind alle Pub/Sub-Rollen und die mit jeder Rolle verknüpften Berechtigungen aufgeführt:
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:
|
|
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 Console 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:
Öffnen Sie in der Google Cloud Console die Seite "IAM".
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 gewähren 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 gegebenenfalls 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 Abodetails 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 gewähren 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.
Beispielanwendungsfall: Projektübergreifende Kommunikation
Pub/Sub IAM ist nützlich, um bei projektübergreifender Kommunikation die Zugriffsrechte genau abzustimmen.
Angenommen, ein Dienstkonto in Cloudprojekt A möchte Nachrichten zu einem Thema in Cloudprojekt B veröffentlichen. Aktivieren Sie zuerst die Pub/Sub API in Projekt A.
Zweitens: Gewähren Sie dem Dienstkonto die Berechtigung Bearbeiten in Cloudprojekt 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.