Zugriffssteuerung für die Service Management API

Die Service Management API verwendet Identitäts- und Zugriffsverwaltung (Cloud IAM), 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 wendet IAM-Richtlinien auf Ressourcen an, um zu steuern, wer welche Aktionen für die Ressourcen ausführen kann. 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 Dienstnutzung melden. 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 Berechtigung(en)
services.delete servicemanagement.services.delete für die angegebene service_name.
services.disable Für das Projekt: serviceusage.services.disable
services.enable Für das Projekt: serviceusage.services.enable
Für den Dienst: servicemanagement.services.bind
services.get servicemanagement.services.get für die angegebene service_name.
services.getConfig servicemanagement.services.get für die angegebene service_name.
services.undelete servicemanagement.services.delete für die angegebene service_name.
services.configs.create servicemanagement.services.update für die angegebene service_name.
services.configs.get servicemanagement.services.get für die angegebene service_name.
services.configs.list servicemanagement.services.get für die angegebene service_name.
services.configs.submit servicemanagement.services.update für die angegebene service_name.
services.rollouts.create servicemanagement.services.update für die angegebene service_name.
services.rollouts.get servicemanagement.services.get für die angegebene service_name.
services.rollouts.list servicemanagement.services.get für die angegebene service_name.

IAM-Rollen

Bei Identity and Access Management werden Berechtigungen dadurch gewährt, dass Nutzer an Rollen gebunden werden. 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.delete
servicemanagement.services.create
servicemanagement.services.update
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report
roles/owner Alle Berechtigungen von roles/editor sowie:

servicemanagement.services.setIamPolicy
servicemanagement.services.getIamPolicy
roles/servicemanagement.configEditor servicemanagement.services.get
servicemanagement.services.update
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.get
servicemanagement.services.check
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 Google Cloud Console, Service Management API und Google Cloud SDK beschrieben.

Zugriff mit der Google Cloud Console verwalten

  1. Öffnen Sie die Seite "Endpoints" in der Google Cloud Console.

    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.

Zugriffsverwaltung mit Cloud SDK

Cloud SDK 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