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:

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-Dienstkonto zugeordnet sind.

Es hat sich bewährt, ein separates Dienstkonto im selben Projekt zu erstellen, 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 schränken Sie die mit der API-Konfiguration verknüpften Berechtigungen ein.

Bei 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 die 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

Darüber hinaus benötigt das Gateway-Dienstkonto die erforderlichen Berechtigungen für den Zugriff auf Ihren Back-End-Dienst. Beispiel:

  • Für ein Cloud Function-Back-End muss dem Dienstkonto die Rolle Cloud Functions-Aufrufer zugewiesen werden.
  • Für ein Cloud Run-Back-End muss dem Dienstkonto die Rolle Cloud Run Invoker zugewiesen sein.
  • Für ein App Engine-Back-End müssen Sie die Schritte unter IAP-Zugriff einrichten ausführen, um dem Dienstkonto, das mit Ihrem Gateway verknüpft ist, die Rolle Nutzer von IAP-gesicherten Web-Apps zuzuweisen.

Wenn Sie die mit der API-Konfiguration verknüpften Berechtigungen einschränken, können Sie Ihre Back-End-Systeme besser schützen. Weitere Informationen finden Sie in der Dokumentation zur Identitäts- und Zugriffsverwaltung (IAM).

Nachdem Sie das Dienstkonto erstellt haben, geben Sie beim Erstellen einer API-Konfiguration mit der Option --backend-auth-service-account 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

Einige GCP-Produkte definieren ein Standarddienstkonto. Wenn Sie beispielsweise Compute Engine verwenden und die Compute Engine API für Ihr Projekt aktiviert haben, wird ein Compute Engine-Standarddienstkonto für Sie erstellt. Das Standarddienstkonto ist an seiner E-Mail-Adresse erkennbar:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Wenn Sie dem Standarddienstkonto die erforderlichen Berechtigungen zuweisen, können Sie beim Erstellen einer API-Konfiguration die Option --backend-auth-service-account 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

Für Anfragen von API Gateway an Back-End-Dienste wird möglicherweise eine Authentifizierung verwendet. Diese Anfragen werden mit OIDC-Tokens (OpenID Connect) gesichert, die vom Dienstkonto des Gateways signiert sind. Sie sollten prüfen, ob Ihr Back-End-Dienst so konfiguriert ist, dass er OIDC-Tokens zur Authentifizierung und Autorisierung akzeptiert. Cloud Functions, Cloud Run und der Identity-Aware Proxy (IAP) bieten diese Option.

Nächste Schritte