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.
Mit IAM können Sie Nutzern, Gruppen und Dienstkonten bestimmte Rollen zuweisen und ihnen so die erforderlichen Berechtigungen für die Ausführung ihrer Aufgaben geben. Sie können diese IAM-Rollen über die Google Cloud Console oder die IAM API gewähren.
In Pub/Sub kann die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfiguriert werden. Im Folgenden finden Sie einige Beispiele für die Verwendung der Pub/Sub-Zugriffssteuerung:
Sie können den Zugriff ressourcenbasiert anstatt für das gesamte Cloud-Projekt gewähren.
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 andere Google Cloud Produkte unterstützt Pub/Sub drei Arten von Rollen:
Einfache Rollen: Einfache Rollen sind Rollen mit sehr weitreichenden Berechtigungen, die es schon vor der Einführung von IAM gab. Weitere Informationen zu einfachen Rollen finden Sie unter Einfache Rollen.
Vordefinierte Rollen: Vordefinierte Rollen ermöglichen detaillierten Zugriff auf bestimmteGoogle Cloud Ressourcen. Weitere Informationen zu vordefinierten Rollen finden Sie unter Vordefinierte Rollen. Die vordefinierten Pub/Sub-Rollen werden weiter unten in diesem Abschnitt behandelt.
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 sind 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 die einzelnen Pub/Sub API-Methoden zu Themen aufgeführt. Sie sehen dort, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktionsweise der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.topics.create
|
Damit wird das angegebene Thema mit dem angegebenen Namen erstellt. | pubsub.topics.create für das zugehörige Cloudprojekt |
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 für die 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 angefragte Cloudprojekt |
projects.topics.patch
|
Aktualisiert ein vorhandenes Thema. | pubsub.topics.update für das angeforderte Thema |
projects.topics.publish
|
Dem Thema werden eine oder mehrere Nachrichten hinzugefügt. | pubsub.topics.publish für das angeforderte Thema |
projects.topics.setIamPolicy
|
Legt die IAM-Richtlinie zur Zugriffssteuerung 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 die einzelnen Pub/Sub API-Methoden zu Abos aufgeführt. Sie enthält Informationen dazu, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktionsweise der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.subscriptions.acknowledge
|
Bestätigt die Nachrichten, die mit den ack_ids in der 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 mit einem Thema T in Projekt B verknüpft 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 angefragte Cloudprojekt |
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 bestimmtes 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
|
Es wird ein vorhandenes Abo zu einem bestimmten Zeitpunkt oder Snapshot gesucht. | 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-Richtlinie zur Zugriffssteuerung 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 |
Erforderliche Berechtigungen für Schemas
In der folgenden Tabelle sind die erforderlichen Berechtigungen für jede Pub/Sub API-Methode aufgeführt, die sich auf Schemas bezieht. Sie enthält Informationen dazu, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktionsweise der Methode.
Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.schemas.commit
|
Committet eine neue Schemaversion. | pubsub.schemas.commit für das angefragte Schema |
projects.schemas.create
|
Erstellt ein Schema. | pubsub.schemas.create für das zugehörige Cloudprojekt |
projects.schemas.delete
|
Löscht ein Schema. | pubsub.schemas.delete für das angefragte Schema |
projects.schemas.deleteRevision
|
Löscht eine bestimmte Schemaversion. | pubsub.schemas.delete für das angefragte Schema |
projects.schemas.get
|
Ruft ein Schema ab. | pubsub.schemas.get für das angefragte Schema |
projects.schemas.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für ein Schema ab. | pubsub.schemas.getIamPolicy für das angefragte Schema |
projects.schemas.list
|
Listet Schemas in einem Projekt auf. | pubsub.schemas.list für das angefragte Cloudprojekt |
projects.schemas.listRevisions
|
Listet alle Schemaüberarbeitungen für das benannte Schema auf. | pubsub.schemas.listRevisions für das angefragte Schema |
projects.schemas.rollback
|
Erstellt eine neue Schemaversion aus einer vorherigen Version. | pubsub.schemas.rollback für das angefragte Schema |
projects.schemas.validate
|
Validiert eine Schemadefinition. | pubsub.schemas.validate für das zugehörige Cloudprojekt |
projects.schemas.validateMessage
|
Validiert eine Nachricht anhand eines Schemas. | pubsub.schemas.validate für das zugehörige Cloudprojekt |
Erforderliche Berechtigungen für Snapshots
In der folgenden Tabelle sind die erforderlichen Berechtigungen für die einzelnen Pub/Sub API-Methoden zu Snapshots aufgeführt. Sie enthält Informationen dazu, welche IAM-Berechtigung für den Aufruf der einzelnen Methoden erforderlich ist, sowie eine Beschreibung der Funktionsweise der Methode.
REST-Methode | Beschreibung | Erforderliche Berechtigung |
---|---|---|
projects.snapshots.create
|
Erstellt einen Snapshot aus dem angeforderten Abo. | pubsub.snapshots.create für das zugehörige Cloudprojekt und die Berechtigung pubsub.subscriptions.consume für das Quellabo. |
projects.snapshots.delete
|
Entfernt einen vorhandenen Snapshot. | pubsub.snapshots.delete für den angefragten Snapshot |
projects.snapshots.getIamPolicy
|
Ruft die IAM-Richtlinie zur Zugriffssteuerung für einen Snapshot ab. | pubsub.snapshots.getIamPolicy für den angefragten Snapshot |
projects.snapshots.list
|
Listet die vorhandenen Snapshots auf. | pubsub.snapshots.list für das angefragte Cloudprojekt |
projects.snapshots.patch
|
Aktualisiert einen vorhandenen Snapshot. | pubsub.snapshots.update für den angefragten Snapshot |
projects.snapshots.setIamPolicy
|
Legt die IAM-Richtlinie zur Zugriffssteuerung für einen Snapshot fest. | pubsub.snapshots.setIamPolicy für den angefragten 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 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:
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.
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" } ] }
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.
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.
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.
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.
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.
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.
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:
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.
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" ] } ] }
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.
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.
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.
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.
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.
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:
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.
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
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.
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.
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.
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.
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:
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.
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
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.
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.
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.
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.
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:
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 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" } ]
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.
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.
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.
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.
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.
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:
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 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" } ]
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.
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.
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.
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.
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.
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 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 topictopic-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.