APIMExtensionPolicy erstellen

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:

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:

  1. Erstellen Sie eine neue Datei mit dem Namen global-ext-lb1-apim-policy.yaml im Namespace apim.
  2. 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:

    Zur Seite „Umgebungen“

  3. 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.

  4. 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 von RUNNING:

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. 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, wobei GATEWAY_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 im HTTPRoute des Gateways definiert ist.
  6. 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.

Nächste Schritte