Entwicklungsumgebung konfigurieren

In diesem Dokument wird beschrieben, wie Sie Ihre API Gateway-Entwicklungsumgebung konfigurieren.

Vorbereitung

Bevor Sie eine API in API Gateway erstellen können, müssen folgende Voraussetzungen erfüllt sein:

  • Ein Google Cloud-Projekt mit der Rolle Bearbeiter oder Inhaber. Nach der ersten Bereitstellung können Sie einem Nutzer, einer Gruppe oder einem Dienstkonto die restriktivere Rolle des Dienstkonfigurationsbearbeiters erteilen.

  • Sie haben die Google Cloud CLI wie unten beschrieben vorbereitet.

  • Die erforderlichen Google-Dienste wurden wie unten beschrieben aktiviert.

  • Konfigurieren Sie das Dienstkonto, das zum Erstellen von API-Konfigurationen verwendet wird, wie unten beschrieben.

Google Cloud CLI für die Bereitstellung vorbereiten

So bereiten Sie gcloud für die Bereitstellung vor:

  1. Installieren und initialisieren Sie die gcloud CLI.
  2. Aktualisieren Sie die gcloud CLI:
    gcloud components update
  3. Achten Sie darauf, dass die gcloud CLI zum Zugriff auf Ihre Daten und Dienste berechtigt ist:
    gcloud auth login

    Ein neuer Browsertab wird geöffnet und Sie werden aufgefordert, ein Konto auszuwählen.

  4. Legen Sie das Standardprojekt fest. Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID:
    gcloud config set project PROJECT_ID 

Erforderliche Dienste aktivieren

Für API Gateway müssen Sie die folgenden Google-Dienste aktivieren:

Name Titel
apigateway.googleapis.com API Gateway API
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

Mit dem folgenden Befehl bestätigen Sie, dass die erforderlichen Dienste aktiviert sind:

gcloud services list

Wenn die erforderlichen Dienste nicht aufgeführt sind, müssen Sie sie aktivieren:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Weitere Informationen zu den gcloud-Diensten finden Sie unter gcloud-Dienste.

Dienstkonto konfigurieren

Eine auf einem Gateway bereitgestellte API-Konfiguration wird mit den Berechtigungen ausgeführt, die dem Gateway zugeordnet sind Dienstkonto.

Sie sollten ein separates Dienstkonto erstellen. im selben Projekt, das Sie für API Gateway verwenden. Weisen Sie dem Dienstkonto dann nur die Berechtigungen zu, die für den Zugriff auf den Back-End-Dienst erforderlich sind. Auf diese Weise beschränken Sie die mit der API-Konfiguration verbundenen Berechtigungen.

Für API Gateway benötigt der Nutzer, der eine API-Konfiguration oder ein Gateway erstellt oder aktualisiert, die Berechtigung iam.serviceAccounts.actAs für das Dienstkontoobjekt. Diese Berechtigung ist in der Rolle Dienstkontonutzer enthalten.

Die Rolle und Berechtigung können dem Dienstkonto für den Nutzer mit dem folgenden Befehl hinzugefügt werden:

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
  --member user:USER_EMAIL \
  --role roles/iam.serviceAccountUser

Dabei gilt:

  • SERVICE_ACCOUNT_EMAIL ist die E-Mail-Adresse des Dienstkontos im Format SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL ist die E-Mail-Adresse des Nutzers.

Beispiel:

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
  --member user:myemail@email.com \
  --role roles/iam.serviceAccountUser

Außerdem benötigt das Gateway-Dienstkonto die Berechtigungen, die für den Zugriff auf Ihren Backend-Dienst erforderlich sind. Beispiel:

  • Für ein Cloud Function-Back-End muss dem Dienstkonto die Rolle Cloud Functions-Aufrufer zugewiesen werden.
  • Für ein Cloud Run-Backend muss dem Dienstkonto die Rolle Cloud Run-Aufrufer zugewiesen werden.
  • Führen Sie für ein App Engine-Back-End die Schritte unter IAP-Zugriff einrichten aus, um dem mit Ihrem Gateway verknüpften Dienstkonto die Rolle Nutzer von IAP-gesicherten Web-Apps zu gewähren.

Durch Beschränkung der Berechtigungen, die mit der API-Konfiguration verknüpft sind, können Sie Ihre Backend-Systeme besser schützen. Weitere Informationen finden Sie in der Dokumentation zur Identitäts- und Zugriffsverwaltung (IAM).

Nachdem Sie das Dienstkonto erstellt haben, verwenden Sie die Option --backend-auth-service-account So geben Sie beim Erstellen einer API-Konfiguration die E-Mail-Adresse dieses Dienstkontos an:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

Weitere Informationen zum Erstellen von API-Konfigurationen finden Sie unter API erstellen.

Standarddienstkonto verwenden

Für einige GCP-Produkte wird ein Standarddienstkonto definiert. Beispiel: Sie verwenden Compute Engine und haben die Compute Engine API aktiviert. für Ihr Projekt erstellen, wird ein Compute Engine-Standarddienstkonto für Sie erstellt. Das Standarddienstkonto kann anhand seiner E‐Mail-Adresse identifiziert werden:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Wenn Sie dem Standarddienstkonto die erforderlichen Berechtigungen zuweisen, können Sie die Option --backend-auth-service-account beim Erstellen einer API-Konfiguration weglassen:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID

Weitere Informationen finden Sie unter Compute Engine-Standarddienstkonto verwenden.

OpenID Connect verwenden

Anfragen von API Gateway an Backend-Dienste können eine Authentifizierung verwenden. Diese Anfragen werden mit OIDC-Tokens (OpenID Connect) gesichert, die vom Dienstkonto des Gateways signiert wurden. Sie sollten prüfen, ob Ihr Backenddienst korrekt konfiguriert ist, um OIDC-Tokens für die Authentifizierung und Autorisierung zu akzeptieren. Cloud Run-Funktionen, Cloud Run und der Identity-Aware Proxy (IAP) bieten diese Option.

Nächste Schritte