Zugriffssteuerung für die Service Management API

Die Service Management API verwendet Cloud IAM (Identity and Access Management) um den Zugriff auf verwaltete Dienste und ihre untergeordneten Ressourcen zu steuern. Auf dieser Seite werden die IAM-Ressourcen, -Rollen und -Berechtigungen für die Service Management API und deren Verwendung zur Zugriffssteuerung erläutert.

IAM-Ressourcen

IAM steuert mithilfe von IAM-Richtlinien, welcher Nutzer welche Vorgänge für die Ressourcen ausführen darf. Die Service Management API stellt ihre Funktionen mithilfe der folgenden Ressourcen bereit:

Sie benötigen unterschiedliche Berechtigungen, um verschiedene Ressourcen zu verwenden und zu verwalten. Weitere Informationen finden Sie in den folgenden Abschnitten.

IAM-Berechtigungen

Für Aufrufe an die Service Management API muss der Aufrufer über die erforderlichen IAM-Berechtigungen für die Zielressourcen verfügen.

Die folgende Tabelle zeigt die verschiedenen Berechtigungen für Dienste:

Berechtigung Beschreibung
servicemanagement.services.delete Dienste entfernen
servicemanagement.services.get Lesezugriff auf Dienste
servicemanagement.services.create Neue Dienste in Projekten erstellen
servicemanagement.services.list Dienste in Projekten auflisten
servicemanagement.services.update Dienste aktualisieren
servicemanagement.services.bind Dienst für Projekte ansehen und aktivieren, die der Aufrufer steuert
servicemanagement.services.setIamPolicy IAM-Zugriffsrichtlinien für Dienste festlegen
servicemanagement.services.getIamPolicy Lesezugriff auf IAM-Zugriffsrichtlinien für Dienste
servicemanagement.services.check Status für Dienstnutzer prüfen. Siehe services.check
servicemanagement.services.quota Einem Dienstnutzer Kontingente zuweisen. Siehe services.allocateQuota
servicemanagement.services.report Berichte zur Dienstnutzung erstellen. Siehe services.report

Die folgende Tabelle zeigt die erforderlichen Berechtigungen für die einzelnen Methoden der Service Management API, sofern zutreffend. Die erforderlichen Berechtigungen sind auch in der API-Referenz nachzulesen.

Methode Erforderliche Berechtigungen
services.delete servicemanagement.services.delete für die angegebene service_name.
services.get servicemanagement.services.get für den angegebenen service_name.
services.getConfig servicemanagement.services.get für den angegebenen service_name.
services.undelete servicemanagement.services.delete für den angegebenen service_name.
services.configs.create servicemanagement.services.update für den angegebenen service_name.
services.configs.get servicemanagement.services.get für den angegebenen service_name.
services.configs.list servicemanagement.services.get für den angegebenen service_name.
services.configs.submit servicemanagement.services.update für den angegebenen service_name.
services.rollouts.create servicemanagement.services.update für den angegebenen service_name.
services.rollouts.get servicemanagement.services.get für den angegebenen service_name.
services.rollouts.list servicemanagement.services.get für den angegebenen service_name.

IAM-Rollen

Bei Identity and Access Management werden Nutzer an Rollen gebunden, um Berechtigungen zu gewähren. Weitere Informationen finden Sie unter Funktionsweise von Rollen.

Die folgende Tabelle zeigt die entsprechenden Rollen für Dienste:

Rolle Berechtigungen
roles/viewer servicemanagement.services.get
servicemanagement.services.list
roles/editor Alle Berechtigungen von roles/viewer sowie:

servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.create
servicemanagement.services.delete
servicemanagement.services.quota
servicemanagement.services.report
servicemanagement.services.update
roles/owner Alle Berechtigungen von roles/editor sowie:

servicemanagement.services.getIamPolicy
servicemanagement.services.setIamPolicy
roles/servicemanagement.admin monitoring.timeSeries.list
resourcemanager.folders.get
resourcemanager.folders.list
resourcemanager.organizations.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceconsumermanagement.consumers.get
serviceconsumermanagement.quota.get
serviceconsumermanagement.quota.update
serviceconsumermanagement.tenancyu.addResource
serviceconsumermanagement.tenancyu.create
serviceconsumermanagement.tenancyu.delete
serviceconsumermanagement.tenancyu.list
serviceconsumermanagement.tenancyu.removeResource
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.create
servicemanagement.services.delete
servicemanagement.services.get
servicemanagement.services.getIamPolicy
servicemanagement.services.list
servicemanagement.services.quota
servicemanagement.services.report
servicemanagement.services.setIamPolicy
servicemanagement.services.update
serviceusage.quotas.get
serviceusage.services.get
roles/servicemanagement.configEditor servicemanagement.services.get
servicemanagement.services.update
roles/servicemanagement.reporter servicemanagement.services.report
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.check
servicemanagement.services.get
servicemanagement.services.quota
servicemanagement.services.report

Richtlinien verwalten

IAM bewertet Richtlinien hierarchisch: Eine untergeordnete Ressource übernimmt immer die Richtlinie der jeweils übergeordneten Ressource. Bei der Service Management API ist jeder verwaltete Dienst eine untergeordnete Ressource des Diensterstellerprojekts. Daher gelten die dem Diensterstellerprojekt zugewiesenen Rollen für alle verwalteten Dienste, die zum Projekt gehören. Informationen zum Gewähren von Rollen auf Projektebene finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Sie können auch die IAM-Richtlinie für einen einzelnen Dienst verwalten. In den folgenden Abschnitten wird die Verwaltung von Rollen auf Dienstebene mit der Google Cloud Console, der Service Management API und der Google Cloud CLI beschrieben.

Zugriff mit der Google Cloud Console verwalten

  1. Öffnen Sie in der Google Cloud Console die Seite „Endpunkte“.

    Seite "Endpoints" öffnen

  2. Klicken Sie auf den Dienst, für den Sie den Zugriff verwalten möchten.
  3. Klicken Sie oben auf der Seite auf den Link "BERECHTIGUNGEN". Damit wird das Infofeld aktiviert bzw. deaktiviert.
  4. Im Infofeld können Sie für jede Rolle auf Dienstebene die Liste der aktuellen Mitglieder ansehen, neue Mitglieder hinzufügen und Mitglieder entfernen.

Zugriff mit der gcloud CLI verwalten

Die gcloud CLI enthält gcloud endpoints services-Befehle zum Verwalten von IAM-Richtlinien für verwaltete Dienste:

  • endpoints services get-iam-policy
    • IAM-Richtlinie des Dienstes anzeigen
  • endpoints services check-iam-policy
    • Überprüfen Sie die IAM-Richtlinie des Dienstes.
  • endpoints services add-iam-policy-binding
    • Mitglied zu einer Rolle hinzufügen
  • endpoints services remove-iam-policy-binding
    • Mitglied aus einer Rolle entfernen

Beispiel:

# Show the IAM policy of service "endpointsapis.appspot.com".
gcloud endpoints services get-iam-policy endpointsapis.appspot.com

# The above command may produce an output similar to this:
bindings:
- members:
  - user:email1@gmail.com
  - group:group1@googlegroups.com
  role: roles/servicemanagement.serviceConsumer

# Add a user to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Add a group to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a user from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a group from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

Zugriff mit der Service Management API verwalten

Die Service Management API enthält die IAM Policy API zur Verwaltung von Richtlinien auf Dienst- und Verbraucherebene. Sie können den Befehl gcurl verwenden, um API-Methoden zu testen. Weitere Informationen zu den Schritten für die Ersteinrichtung finden Sie unter Erste Schritte.

Beispiel:

# View the current IAM policy on service "endpointsapis.appspot.com".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:getIamPolicy

# View the current IAM policy on service "endpointsapis.appspot.com" and consumer "12345".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com/consumers/12345:getIamPolicy