APIMExtensionPolicy を作成する

このページは ApigeeApigee ハイブリッドに適用されます。

Apigee Edge のドキュメントを表示する。

このページでは、クラスタで実行されている Google Kubernetes Engine(GKE)Gateway に必要なトラフィック拡張機能を作成するために APIMExtensionPolicy を作成する方法について説明します。

始める前に

このタスクを開始する前に、次の手順を完了してください。

必要なロール

Apigee Operator for Kubernetes をインストールするで説明されているように、必要なロールをサービス アカウントに割り当てた場合は、これらのタスクを完了するために追加の IAM ロールや権限は必要ありません。

Kubernetes に組み込まれたロールベース アクセス制御(RBAC)メカニズムを使用して、Google Kubernetes Engine クラスタ内のリソースに対するアクションを認可できます。詳細については、ロールベース アクセス制御を使用してクラスタ内でのアクションを認可するをご覧ください。

APIMExtensionPolicy を作成する

このステップでは、APIMExtensionPolicy を作成し、クラスタで実行されている GKE Gateway に適用します。このポリシーは、Gateway とそれに関連する HTTPRoutes を通過するすべてのトラフィックを管理します。これは、現在の Apigee の環境レベルで flowhook と同様に機能します。

APIM 拡張機能ポリシーを作成します。

  1. apim 名前空間に global-ext-lb1-apim-policy.yaml という名前の新しいファイルを作成します。
  2. 次の内容を新しいファイルにコピーします。
    # 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

    ここで、ENV_NAME は、インストール ステップの Apigee 環境を作成するで作成した Apigee 環境の名前です。

    使用可能なすべての環境は、 Google Cloud コンソールの [Apigee 環境] ページで確認できます。

    [環境] に移動

  3. ポリシーを適用します。
    kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml

    ポリシーが適用されると、Kubernetes 用 Apigee Operator がバックグラウンドでネットワーキング リソースを作成します。

  4. 次のコマンドを使用して、APIM 拡張機能ポリシーのステータスを確認します。
    kubectl -n apim get APIMExtensionPolicy

    出力は次のようになります。StateRUNNING です。

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. 次のコマンドを使用して、Gateway にリクエストを送信します。
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    ここで

    • GATEWAY_IP_ADDRESS は Gateway の IP アドレスです。Gateway の IP アドレスは、次のコマンドを使用して取得できます。ここで、GATEWAY_NAME は Gateway の名前です。
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME は、Gateway の HTTPRoute で定義されたホスト名です。
  6. API 拡張機能ポリシー リソースで defaultSecurityEnabled: true を設定していることによりデフォルトのセキュリティが有効になっているため、リクエストは失敗します。次のようなレスポンスが表示されます。
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    これは、Apigee 拡張機能ポリシーが有効であり、API キーの適用とアクセス トークンの検証が有効であることを示します。

次のステップ