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 Sie Folgendes tun:
Erstellen Sie ein Google Cloud Projekt in dem Sie die Rolle Bearbeiter oder Inhaber haben. Nach der ersten Bereitstellung können Sie einem Nutzer, einer Gruppe oder einem Dienstkonto die restriktivere Rolle Dienstkonfigurationsbearbeiter erteilen.
Bereiten Sie die Google Cloud CLI für die Bereitstellung vor.
Konfigurieren Sie das Dienstkonto, das zum Erstellen von API-Konfigurationen verwendet wird.
Google Cloud CLI für die Bereitstellung vorbereiten
So bereiten Sie gcloud für die Bereitstellung vor:
- Installieren und initialisieren Sie die gcloud CLI.
- Aktualisieren Sie die gcloud CLI:
gcloud components update
- 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.
- Legen Sie das Standardprojekt fest. Ersetzen Sie PROJECT_ID durch Ihre
Google Cloud Projekt-ID:
gcloud config set project PROJECT_ID
Erforderliche Google-Dienste aktivieren
Für API Gateway müssen Sie die folgenden Google Cloud Dienste aktivieren:
| Name | Dienstname |
|---|---|
| API Gateway API | apigateway.googleapis.com |
| Service Management API | servicemanagement.googleapis.com |
| Service Control API | servicecontrol.googleapis.com |
So aktivieren Sie die erforderlichen Dienste:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite APIs und Dienste > API-Bibliothek auf.
- Geben Sie auf der Seite API-Bibliothek den Namen der erforderlichen API in die Suchleiste ein.
- Wählen Sie in den Suchergebnissen die API-Seite aus.
- Klicken Sie auf der API-Seite auf Aktivieren.
- Wiederholen Sie diese Schritte für jeden der in der obigen Tabelle aufgeführten Dienste.
Google Cloud CLI
Verwenden Sie die folgenden Befehle, um die Dienste zu aktivieren:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
Weitere Informationen zu den gcloud-Diensten finden Sie unter
gcloud-Dienste.
Dienstkonto für das Erstellen von API-Konfigurationen konfigurieren
Eine auf einem Gateway bereitgestellte API-Konfiguration wird mit den Berechtigungen ausgeführt, die dem Dienstkonto des Gateways zugeordnet sind.
Erstellen Sie nach Möglichkeit ein separates Dienstkonto im selben Projekt, das Sie auch für API Gateway verwenden. Weisen Sie dem Dienstkonto dann nur die Berechtigungen zu, die für den Zugriff auf den Backend-Dienst erforderlich sind. Auf diese Weise beschränken Sie die Berechtigungen, die mit der API-Konfiguration verknüpft sind.
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.
So fügen Sie dem Dienstkonto des Gateways die erforderliche Rolle und Berechtigung hinzu:
Google Cloud Console
-
Rufen Sie in der Google Cloud Console die Seite IAM und Verwaltung > Dienstkonten auf.
- Wählen Sie das gewünschte Projekt aus oder erstellen Sie ein neues.
- Klicken Sie auf das gewünschte Dienstkonto.
- Klicken Sie auf den Tab Berechtigungen.
- Klicken Sie auf Zugriff verwalten.
- Klicken Sie auf Rolle hinzufügen und weisen Sie dem Prinzipal, der beim Erstellen der API-Konfiguration auf das Dienstkonto verweist, die Rolle
Service Account Userzu. - Klicken Sie auf Speichern.
Google Cloud CLI
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 Dienstkonto des Gateways die Berechtigungen, die für den Zugriff auf Ihren Backend-Dienst erforderlich sind. Beispiel:
- Für ein Cloud Function-Backend 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ür ein App Engine-Backend müssen Sie die Schritte unter IAP-Zugriff einrichten ausführen, um dem Dienstkonto, das mit Ihrem Gateway verknüpft ist, die Rolle IAP-gesicherter Web-App-Nutzer 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, 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 \ --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Weitere Informationen zum Erstellen von API-Konfigurationen finden Sie unter API-Konfiguration erstellen.
Standarddienstkonto verwenden
Einige Google Cloud Produkte definieren ein Standarddienstkonto. Wenn Sie beispielsweise Compute Engine verwenden und die Compute Engine API für Ihr Projekt aktiviert haben, wird ein Standarddienstkonto für Compute Engine erstellt. Das Standarddienstkonto ist durch seine E-Mail-Adresse identifizierbar:
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
Weitere Informationen finden Sie unter Standardmäßiges Compute Engine-Dienstkonto.
OpenID Connect verwenden
Anfragen von API Gateway an Backend-Dienste können die Authentifizierung verwenden. Diese Anfragen werden mit OpenID Connect-Tokens (OIDC) gesichert, die vom Dienstkonto des Gateways signiert wurden. Sie sollten prüfen, ob Ihr Backend-Dienst richtig konfiguriert ist, um OIDC-Tokens für die Authentifizierung und Autorisierung zu akzeptieren. Cloud Run Functions, Cloud Run und Identity-Aware Proxy (IAP) bieten diese Option.