Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Auf dieser Seite wird beschrieben, wie Sie ein APIMExtensionPolicy
erstellen, um die erforderliche Traffic-Erweiterung für das GKE-Gateway (Google Kubernetes Engine) zu erstellen, das in Ihrem Cluster ausgeführt wird.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie mit dieser Aufgabe beginnen:
- Prüfen Sie, ob für Ihren GKE-Cluster eine Workload Identity konfiguriert ist. Die erforderlichen Schritte finden Sie unter Workload Identity erstellen.
- Prüfen Sie, ob für Ihren Cluster ein GKE Gateway konfiguriert ist und funktioniert. Weitere Informationen finden Sie unter Gateways bereitstellen.
- Installieren Sie den Apigee-Operator für Kubernetes. Eine Installationsanleitung finden Sie unter Apigee Operator für Kubernetes installieren.
Erforderliche Rollen
Wenn Sie Ihrem Dienstkonto die erforderlichen Rollen zuweisen, wie unter Apigee Operator für Kubernetes installieren beschrieben, sind keine zusätzlichen IAM-Rollen oder Berechtigungen erforderlich, um diese Aufgaben auszuführen.
Sie können Aktionen für Ressourcen in Ihrem Google Kubernetes Engine-Cluster mithilfe des integrierten Mechanismus für rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) in Kubernetes autorisieren. Weitere Informationen finden Sie unter Aktionen in Clustern mit rollenbasierter Zugriffssteuerung autorisieren.
APIMExtensionPolicy
erstellen
In diesem Schritt erstellen Sie die APIMExtensionPolicy
und wenden sie auf das GKE Gateway an, das in Ihrem Cluster ausgeführt wird.
Diese Richtlinie regelt den gesamten Traffic, der über das Gateway und die zugehörige HTTPRoutes
läuft. Sie funktioniert ähnlich wie ein Flowhook auf Umgebungsebene in Apigee.
Erstellen Sie die APIM-Erweiterungsrichtlinie:
- Erstellen Sie eine neue Datei mit dem Namen
global-ext-lb1-apim-policy.yaml
im Namespaceapim
. - Kopieren Sie den folgenden Inhalt in die neue Datei:
# global-ext-lb1-apim-policy.yaml apiVersion: apim.googleapis.com/v1 kind: APIMExtensionPolicy metadata: name: global-ext-lb1-apim-policy namespace: apim spec: apigeeEnv: ENV_NAME # optional location: global failOpen: false timeout: 1000ms defaultSecurityEnabled: true targetRef: # identifies the Gateway where the extension should be applied name: global-ext-lb1 kind: Gateway namespace: default
Dabei ist ENV_NAME der Name der Apigee-Umgebung, die im Installationsschritt Apigee-Umgebung erstellen erstellt wurde.
Sie können alle verfügbaren Umgebungen auf der Seite Apigee-Umgebungen in der Google Cloud aufrufen:
- Wenden Sie die Richtlinie an:
kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml
Sobald die Richtlinie angewendet wurde, erstellt der Apigee Operator für Kubernetes im Hintergrund Netzwerkressourcen.
- Prüfen Sie den Status der APIM Extension-Richtlinie mit dem folgenden Befehl:
kubectl -n apim get APIMExtensionPolicy
Die Ausgabe sollte in etwa so aussehen, mit einem
State
vonRUNNING
:NAME STATE ERRORMESSAGE global-ext-lb1-apim-policy RUNNING
- Verwenden Sie den folgenden Befehl, um eine Anfrage an das Gateway zu senden:
curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"
Wobei:
GATEWAY_IP_ADDRESS
ist die IP-Adresse des Gateways. Sie können die Gateway-IP-Adresse mit dem folgenden Befehl abrufen, wobeiGATEWAY_NAME
der Name des Gateways ist:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
ist der Hostname, der imHTTPRoute
des Gateways definiert ist.
- Die Anfrage sollte fehlschlagen, da die Standardsicherheit durch Festlegen von
defaultSecurityEnabled: true
in der API-Erweiterungsrichtlinienressource aktiviert ist. Die Antwort sieht ungefähr so aus:{"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}
Das bedeutet, dass die Apigee-Erweiterungsrichtlinie aktiv ist und die Erzwingung von API-Schlüsseln und die Überprüfung von Zugriffstokens aktiv sind.