Kurzanleitung: Traffic zu einem Dienst mit der Google Cloud Console sichern
Auf dieser Seite erfahren Sie, wie Sie eine API in API Gateway bereitstellen, um den Traffic zu einem Backend-Dienst zu sichern.
Führen Sie die Schritte aus, um eine neue API für den Zugriff auf einen Backend-Dienst in Cloud Run Functions über die Google Cloud -Console bereitzustellen. In dieser Kurzanleitung wird auch beschrieben, wie Sie Ihr Backend mithilfe eines API-Schlüssels vor unbefugtem Zugriff schützen.
Hinweis
Rufen Sie in der Google Cloud Console die Seite API Gateway auf.
Für API Gateway müssen Sie die folgenden Google-Dienste aktivieren:
Name Titel apigateway.googleapis.comAPI Gateway API servicemanagement.googleapis.comService Management API servicecontrol.googleapis.comService Control API Wenn Sie diese Dienste für das ausgewählte Projekt noch nicht aktiviert haben, werden Sie dazu aufgefordert.
Prüfen Sie, ob für Ihr Projekt die Abrechnung aktiviert ist.
API-Backend bereitstellen
API Gateway steht vor einem bereitgestellten Backend-Dienst und verarbeitet alle eingehenden Anfragen. In dieser Kurzanleitung leitet API Gateway eingehende Aufrufe an ein Cloud Run Functions-Backend namens helloGET weiter, das die unten gezeigte Node.js-Funktion enthält.
const functions = require('@google-cloud/functions-framework'); // Register an HTTP function with the Functions Framework that will be executed // when you make an HTTP request to the deployed function's endpoint. functions.http('helloGET', (req, res) => { res.send('Hello World!'); });
Führen Sie die Schritte unter Kurzanleitung: Google Cloud CLI verwenden aus, um den Beispielcode für Cloud Run-Funktionen herunterzuladen und den Backend-Dienst der Cloud Run-Funktion bereitzustellen.
Führen Sie die Schritte unter Kurzanleitung: Google Cloud CLI verwenden aus, um den Beispielcode für Cloud Run-Funktionen herunterzuladen und den Backend-Dienst der Cloud Run-Funktion bereitzustellen. Ihr Administrator muss Ihrem Konto und dem Cloud Build-Dienstkonto zusätzliche Rollen zuweisen, wie in dieser Kurzanleitung beschrieben.
Kopieren Sie die Dienst-URL, die angezeigt wird, wenn die Cloud Run-Funktion bereitgestellt wird. Sie benötigen sie im nächsten Schritt, wenn Sie die API-Konfiguration erstellen.
API-Konfiguration erstellen
API Gateway verwendet eine API-Konfiguration, um Aufrufe an den Backend-Dienst weiterzuleiten. Sie können eine OpenAPI-Spezifikation verwenden, die spezielle Erweiterungen enthält, um das gewünschte API Gateway-Verhalten zu definieren. Weitere Informationen zu unterstützten OpenAPI-Erweiterungen finden Sie unter:
Die OpenAPI-Spezifikation für diese Kurzanleitung enthält Routinganweisungen an das Cloud Run-Funktions-Backend:
OpenAPI 2.0
# openapi-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: SERVICE_URL/helloGET responses: '200': description: A successful response schema: type: string
OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: functions_backend: address: SERVICE_URL/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
Verwenden Sie diese OpenAPI-Spezifikation, um Ihre API zu definieren:
Erstellen Sie über die Befehlszeile eine neue Datei mit dem Namen
openapi-functions.yaml.Kopieren Sie den Inhalt der im vorherigen Beispiel gezeigten OpenAPI-Spezifikation und fügen Sie ihn in die neu erstellte Datei ein.
Bearbeiten Sie die Datei so:
- Ersetzen Sie im Feld
titleden Namen API_ID durch den Namen Ihrer API (die Sie im nächsten Schritt erstellen) und ersetzen Sie optional-string durch eine kurze Beschreibung Ihrer Wahl. Der Wert dieses Felds wird verwendet, wenn API-Schlüssel erstellt werden, die Zugriff auf diese API gewähren. Benennungsrichtlinien für API-IDs - Ersetzen Sie im Feld
addressdie Variable SERVICE_URL durch die URL, unter der der Cloud Run-Funktions-Backend-Dienst ausgeführt wird. Diese URL haben Sie im vorherigen Schritt kopiert.
- Ersetzen Sie im Feld
Gateway erstellen
Jetzt können Sie ein Gateway auf API Gateway erstellen und bereitstellen.
Öffnen Sie in der Google Cloud Console die Seite „API Gateway“.
Klicken Sie auf Gateway erstellen.
Im Abschnitt API:
- Sie können eine neue API erstellen oder eine vorhandene API aus dem Drop-down-Menü API auswählen auswählen. Wählen Sie für diese Anleitung Neue API erstellen aus.
- Geben Sie den Anzeigenamen für Ihre API ein.
- Geben Sie die API-ID für Ihre API ein.
- (Optional) Fügen Sie Ihrer API Labels in einem Schlüssel:Wert-Format hinzu. Wenn Sie mehrere Labels hinzufügen möchten, klicken Sie auf Label hinzufügen und geben Sie zusätzliche Werte ein.
Im Abschnitt API-Konfiguration:
- Wählen Sie aus, ob Sie eine neue API-Konfiguration erstellen oder eine vorhandene API-Konfiguration aus dem Drop-down-Menü Konfiguration auswählen auswählen möchten. Wählen Sie für diese Anleitung Neue API-Konfiguration erstellen aus.
- Verwenden Sie den Dateibrowser, um die
openapi-functions.yamlzum Definieren der API hochzuladen. - Geben Sie einen Anzeigenamen für die API-Konfiguration ein.
Wählen Sie ein Dienstkonto aus der Drop-down-Liste aus. Das ausgewählte Dienstkonto wird als Identität für API Gateway verwendet. Wenn im Drop-down-Menü kein Dienstkonto aufgeführt ist, lesen Sie den Abschnitt Dienstkonto konfigurieren, um zu prüfen, ob ein Dienstkonto für Ihr Projekt aktiviert ist.
(Optional) Fügen Sie Ihrer API-Konfiguration Labels im Format „Schlüssel:Wert“ hinzu. Wenn Sie mehrere Labels hinzufügen möchten, klicken Sie auf Label hinzufügen und geben Sie zusätzliche Werte ein.
Im Abschnitt Gatewaydetails:
- Geben Sie den Anzeigenamen des Gateways ein. Die URL zum Gateway wird automatisch generiert.
- Wählen Sie den Standort des Gateways aus dem Drop-down-Menü aus.
- (Optional) Fügen Sie Ihrem Gateway Labels im Format „Schlüssel:Wert“ hinzu. Wenn Sie mehrere Labels hinzufügen möchten, klicken Sie auf Label hinzufügen und geben Sie zusätzliche Werte ein.
Klicken Sie auf Gateway erstellen.
Dadurch wird die API-Konfiguration auf einem neu erstellten Gateway bereitgestellt. Durch das Bereitstellen einer API-Konfiguration auf einem Gateway wird eine externe URL definiert, über die API-Clients auf Ihre API zugreifen können.
Es kann einige Minuten dauern, bis der Vorgang abgeschlossen ist. Wenn Sie den Status des Erstellungs- und Bereitstellungsprozesses prüfen möchten, klicken Sie auf das Symbol Benachrichtigung in der Hauptnavigationsleiste, um eine Statusbenachrichtigung anzuzeigen, wie in der folgenden Abbildung dargestellt:

Nach erfolgreichem Abschluss können Sie sich Details zum Gateway auf der Landingpage des Gateways ansehen.
Notieren Sie sich die Gateway-URL. Sie verwenden sie im nächsten Schritt, um Ihre Bereitstellung zu testen.
API-Bereitstellung testen
Jetzt können Sie Anfragen über die bei der Bereitstellung des Gateways generierte URL an Ihre API senden.
Geben Sie im Webbrowser die folgende URL ein. Dabei gilt:
- GATEWAY_URL gibt die bereitgestellte Gateway-URL an.
helloist der in Ihrer API-Konfiguration angegebene Pfad.
https://GATEWAY_URL/hello
Beispiel:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Die Meldung Hello World! sollte in Ihrem Browser angezeigt werden.
Sie haben erfolgreich ein API Gateway erstellt und bereitgestellt.
Zugriff mit einem API-Schlüssel sichern
So sichern Sie den Zugriff auf Ihr API-Backend mit einem API-Schlüssel:
- Erstellen Sie einen API-Schlüssel, der mit Ihrem Projekt verknüpft ist.
- Neue API-Konfiguration erstellen und bereitstellen, um den API-Zugriff mit API-Schlüsseln zu sichern.
- API-Schlüssel testen
Weitere Informationen finden Sie unter API-Zugriff mit API-Schlüsseln einschränken.
API-Schlüssel erstellen
Wenn Sie noch keinen API-Schlüssel haben, der dem Google Cloud -Projekt zugeordnet ist, das Sie in diesem Schnellstart verwenden, fügen Sie einen hinzu, wie unter API-Schlüssel erstellen beschrieben.
Kopieren Sie den zurückgegebenen Schlüsselstring und bewahren Sie ihn sicher auf. Dies ist der Schlüsselwert, den Sie beim Testen Ihres API-Schlüssels verwenden.
Neue API-Konfiguration erstellen und bereitstellen
So erstellen und stellen Sie eine neue API-Konfiguration bereit, mit der der API-Zugriff mithilfe von API-Schlüsseln gesichert wird:
- Dienst aktivieren:
- Rufen Sie in der Google Cloud Console die Seite APIs und Dienste > Bibliothek auf.
- Geben Sie in der Suchleiste den Namen des verwalteten Dienstes der soeben erstellten API ein. Sie finden diesen Wert in der Spalte Verwalteter Dienst für Ihre API auf der Landing page der APIs. Beispiel:
my-api-123abc456def1.apigateway.my-project.cloud.goog
- Klicken Sie auf der Landing page für Ihren Dienst auf Aktivieren.
- Ändern Sie die OpenAPI-Spezifikation, mit der Sie Ihre API-Konfiguration erstellt haben, um Anweisungen zur Durchsetzung einer Sicherheitsrichtlinie für die API-Schlüsselvalidierung für den gesamten Traffic aufzunehmen. Fügen Sie den Typ
securityundsecuritySchemeswie unten gezeigt hinzu:OpenAPI 2.0
# openapi2-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: SERVICE_URL/helloGET security: - api_key: [] responses: '200': description: A successful response schema: type: string securityDefinitions: # This section configures basic authentication with an API key. api_key: type: "apiKey" name: "key" in: "query"
Die
securityDefinitionkonfiguriert die API so, dass ein API-Schlüssel als Abfrageparameter mit dem Namenkeyübergeben werden muss, wenn Zugriff auf alle in der Spezifikation definierten Pfade angefordert wird.OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: functions_backend: address: SERVICE_URL/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend components: # This section configures basic authentication with an API key. securitySchemes: google_api_key: type: apiKey name: x-api-key in: header security: - google_api_key: [] paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
Die
securitySchemeskonfiguriert die API so, dass ein API-Schlüssel als Abfrageparameter mit dem Namenkeyübergeben werden muss, wenn Zugriff auf alle in der Spezifikation definierten Pfade angefordert wird. - Erstellen Sie eine neue API-Konfiguration und stellen Sie sie für Ihr vorhandenes Gateway bereit:
- Rufen Sie die Landingpage „Gateways“ auf.
- Wählen Sie Ihr Gateway aus der Liste aus, um Details aufzurufen.
- Klicken Sie auf Bearbeiten, um den Bereich für die Gateway-Konfiguration zu öffnen.
- Im Abschnitt API-Konfiguration:
- Wählen Sie im Drop-down-Menü die Option Neue API-Konfiguration erstellen aus.
- Laden Sie Ihre geänderte OpenAPI-Spezifikation mit dem Dateibrowser hoch.
- Geben Sie den Anzeigenamen für die neue API-Konfiguration ein.
- Wählen Sie ein Dienstkonto aus der Drop-down-Liste aus. Das ausgewählte Dienstkonto wird als Identität für API Gateway verwendet.
- (Optional) Fügen Sie Ihrer API-Konfiguration Labels in einem Schlüssel/Wert-Paar-Format hinzu. Wenn Sie mehrere Labels hinzufügen möchten, klicken Sie auf Label hinzufügen und geben Sie zusätzliche Werte ein.
- Klicken Sie auf Aktualisieren.
API-Schlüssel testen
Nachdem Sie die geänderte API erstellt und bereitgestellt haben, versuchen Sie, eine Anfrage an sie zu senden.
Geben Sie im Webbrowser die folgende URL ein. Dabei gilt:
- GATEWAY_URL gibt die bereitgestellte Gateway-URL an.
helloist der in Ihrer API-Konfiguration angegebene Pfad.
https://GATEWAY_URL/hello
Dies sollte zu folgendem Fehler führen:
UNAUTHENTICATED:Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.
Geben Sie jetzt im Webbrowser die folgende URL ein. Dabei gilt:
- GATEWAY_URL gibt die bereitgestellte Gateway-URL an.
helloist der in Ihrer API-Konfiguration angegebene Pfad.- API_KEY gibt den Wert des API-Schlüssels an, den Sie unter API-Schlüssel erstellen erstellt haben.
https://GATEWAY_URL/hello?key=API_KEY
Nun sollte Hello World! in Ihrem Browser angezeigt werden.
Das war's auch schon! Sie haben Ihr API-Backend mit einem API Gateway erfolgreich geschützt. Sie können jetzt mit dem Einrichten neuer API-Clients beginnen. Generieren Sie dazu weitere API-Schlüssel.
API-Aktivitäten verfolgen
Sehen Sie sich in derGoogle Cloud console auf der Seite API Gateway die Aktivitätsdiagramme für Ihre API an. Klicken Sie auf die API, um die Aktivitätsgrafiken auf der Seite Übersicht aufzurufen. Es kann einen Moment dauern, bis die Anfragen in den Grafiken angezeigt werden.
Sehen Sie sich auf der Seite Log-Explorer die Anfragelogs an. Einen Link zur Seite Log-Explorer finden Sie auf der Seite API Gateway API in derGoogle Cloud Console.
Auf der Seite „API Gateway APIs“:
- Wählen Sie die API aus, die Sie ansehen möchten.
- Klicken Sie auf den Tab Details.
- Klicken Sie auf den Link unter Logs.
Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud -Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:
Alternativ können Sie auch das Google Cloud -Projekt löschen, das für diese Anleitung verwendet wurde.