Zugriff auf die API gewähren und widerrufen

Die Zugriffssteuerung auf APIs ist ein wesentlicher Bestandteil der Entwicklung. Unter Umständen möchten Sie beim Testen Ihrer API die neue Bereitstellung aktualisierter Konfigurationen von Cloud Endpoints automatisieren und dazu ein Dienstkonto mit den entsprechenden Berechtigungen verwenden. Standardmäßig kann nur der Projektinhaber den Zugriff auf eine API verwalten. Auf dieser Seite erfahren Sie, wie Sie mit der Google Cloud Console oder der Google Cloud CLI Zugriff auf Ihre API gewähren und widerrufen.

In Endpoints werden zum Gewähren und Widerrufen des Zugriffs auf API-Ebene die Rollen des Identity and Access Management verwendet. Sie können einem Nutzer, einem Dienstkonto oder einer Google-Gruppe Zugriff gewähren und entziehen.

Google-Gruppen bieten eine bequeme Möglichkeit, um einer bestimmten Menge von Nutzern Zugriff zu gewähren oder den Zugriff für sie zu widerrufen. Sie können den Zugriff für eine ganze Gruppe auf einmal gewähren oder widerrufen, anstatt dies für einzelne Nutzer oder Dienstkonten separat zu erledigen. Mitglieder lassen sich auch einfach in eine Google-Gruppe einfügen und daraus entfernen, sodass nicht für jedes Mitglied einzeln eine IAM-Rolle gewährt oder widerrufen werden muss.

Zugriff gewähren

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Endpunkte > Dienste für Ihr Projekt auf.

    Endpoints-Dienste aufrufen

  2. Wenn Sie mehr als eine API haben, klicken Sie auf den Namen der API.
  3. Wenn die Seitenleiste Berechtigungen nicht geöffnet ist, klicken Sie auf Berechtigungen.
  4. Geben Sie die E-Mail-Adresse des Nutzers, Dienstkontos oder der Google-Gruppe in das Feld Mitglieder hinzufügen ein.
  5. Klicken Sie im Drop-down-Menü Rolle auswählen auf Dienstverwaltung und wählen Sie eine der folgenden Rollen aus:
    • Dienstnutzer: Diese Rolle enthält die Berechtigungen für ein Nicht-Projektmitglied zum Aufrufen und Aktivieren der API in einem eigenen Projekt. Wenn Sie ein Portal für Ihre API erstellt haben, ermöglicht diese Rolle Ihren API-Nutzern den Zugriff auf das Portal.
    • Service Controller: Diese Rolle enthält die Berechtigungen zum Aufrufen der Methoden check und report in der Service Infrastructure API während der Laufzeit.
    • Dienstkonfigurationsbearbeiter: Diese Rolle enthält die Berechtigungen, die von Service Management mindestens benötigt werden, um eine Endpoints-Konfiguration für einen vorhandenen Dienst bereitzustellen.
    • Service Management-Administrator: Diese Rolle enthält die Berechtigungen der Rollen Dienstkonfigurationsbearbeiter, Dienstnutzer und Dienstüberwacher und zusätzlich die erforderlichen Berechtigungen, um mit gcloud oder den unter Zugriff auf Ressourcen erteilen, ändern und entziehen beschriebenen programmgesteuerten Methoden den Zugriff auf diese API zu gewähren.

    Informationen zu dieser Rolle finden Sie unter Zugriffssteuerung für die Service Management API. Auch wenn Sie in der Google Cloud Console andere Rollen auswählen können, sind diese für die Verwaltung der API nicht hilfreich.

  6. Klicken Sie auf Hinzufügen, um das Mitglied in die angegebene IAM-Rolle aufzunehmen.
  7. Fügen Sie nach Bedarf weitere Mitglieder hinzu und wählen Sie die gewünschten Rollen aus.
  8. Mit den Dienstverwaltungsrollen können Nutzer nicht auf die Seite Endpunkte > Dienste in der Google Cloud Console zugreifen. Wenn Sie möchten, dass Nutzer die Seite Endpoints > Dienste öffnen können, müssen Sie ihnen die Rolle Projektbetrachter oder eine höhere für das Projekt zuweisen. Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

gcloud

  1. Öffnen Sie Cloud Shell oder ein Terminalfenster, sofern die Google Cloud CLI installiert ist.
  2. Geben Sie den entsprechenden gcloud-Befehl ein:
    • Wenn Sie einem Nutzer Zugriff gewähren, führen Sie diesen Befehl aus:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Geben Sie als Rolle eine der folgenden IAM-Rollen an:

      • roles/servicemanagement.configEditor: Diese Rolle enthält die Berechtigungen, die Service Management mindestens benötigt, um eine Endpoints-Konfiguration für einen vorhandenen Dienst bereitzustellen.
      • roles/servicemanagement.admin: Diese Rolle enthält die Berechtigungen der Rollen roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer und roles/servicemanagement.serviceController sowie zusätzlich die erforderlichen Berechtigungen, um mit gcloud oder den unter Zugriff auf Ressourcen erteilen, ändern und entziehen beschriebenen programmgesteuerten Methoden den Zugriff auf diese API zu gewähren.

      Beispiel:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • Wenn Sie einem Dienstkonto Zugriff gewähren, führen Sie diesen Befehl aus:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Beispiel:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • Wenn Sie einer Google-Gruppe Zugriff gewähren, führen Sie diesen Befehl aus:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      Beispiel:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. Mit den Service Management-Rollen können Nutzer nicht auf die Seite Endpunkte > Dienste in der Google Cloud Console zugreifen. Wenn Sie möchten, dass Nutzer die Seite Endpoints > Dienste öffnen können, müssen Sie ihnen die Rolle Projektbetrachter oder eine höhere Rolle für das Projekt zuweisen. Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Zugriff widerrufen

Wenn Sie den Zugriff auf die API widerrufen möchten, können Sie dem Mitglied die ihm zuvor zugewiesene IAM-Rolle entziehen.

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Endpunkte > Dienste für Ihr Projekt auf.

    Endpoints-Dienste aufrufen

  2. Wenn Sie mehr als eine API haben, klicken Sie auf den Namen der API.
  3. Wenn die Seitenleiste Berechtigungen nicht geöffnet ist, klicken Sie auf Berechtigungen.
  4. Gehen Sie zu dem Mitglied, dessen Zugriffsrechte Sie widerrufen möchten. Sie können entweder auf die entsprechende Rollenkarte klicken, um eine Liste der Mitglieder aufzurufen, oder einen Namen oder eine Rolle in das Feld Mitglieder suchen eingeben.
  5. Klicken Sie auf Löschen .
  6. Wenn Sie auch den Zugriff eines Nutzers auf Ihr Google Cloud-Projekt widerrufen möchten, finden Sie entsprechende Informationen unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

gcloud

  1. Öffnen Sie Cloud Shell oder ein Terminalfenster, sofern die gcloud CLI installiert ist.
  2. Geben Sie den entsprechenden gcloud-Befehl ein:
    • Wenn Sie einem Nutzer den Zugriff entziehen möchten, führen Sie diesen Befehl aus:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Beispiel:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • Wenn Sie einem Dienstkonto den Zugriff entziehen möchten, führen Sie diesen Befehl aus:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Beispiel:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • Wenn Sie einer Google-Gruppe den Zugriff entziehen möchten, führen Sie diesen Befehl aus:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      Beispiel:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. Wenn Sie auch den Zugriff eines Nutzers auf Ihr Google Cloud-Projekt widerrufen möchten, finden Sie entsprechende Informationen unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Nächste Schritte

Erfahren Sie mehr über: