すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:カスタム認証を実装するための ASM セキュリティポリシーの構成

最終更新日:Jan 13, 2025

ビジネス要件に基づいてアクセス制御ポリシーをカスタマイズする必要がある場合は、Service Mesh(ASM)セキュリティポリシーを構成してカスタム認証を実装できます。つまり、リクエストは指定したカスタム認証サービスに転送されます。カスタム認証サービスはリクエストを認証します。このようにして、複雑な認証ロジックを実装し、開発とメンテナンスのコストを削減し、開発効率を向上させることができます。

前提条件

手順

  1. [ASM コンソール] にログオンします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[メッシュセキュリティセンター] > [ASM セキュリティポリシー] を選択します。

  3. [ASM セキュリティポリシー] ページで、[作成] をクリックします。[ASM セキュリティポリシーの作成] ダイアログボックスで、[カスタム認証サービス] をクリックし、[OK] をクリックします。

  4. カスタム承認サービス構成[カスタム認証サービスの作成] 構成ウィザードの Envoy.ext_authz に基づいて実装されたカスタム認証サービス (HTTP または Grpc プロトコル)次へ ステップで、 タブをクリックし、パラメータを構成して、 をクリックします。

    次の図は、パラメータを構成する方法の例を示しています。パラメータの詳細については、「HTTP プロトコルを使用したカスタム認証の実装」をご参照ください。基本信息在鉴权请求中携带header鉴权通过/失败时覆盖Header

  5. 構成ウィザードの [ワークロードと一致ルール] ステップで、[ワークロードグループの追加] をクリックします。[新しいワークロードグループ] ダイアログボックスで、パラメータを構成し、[OK] をクリックします。

    次の表は、この例のパラメータの構成方法を示しています。

    パラメータ

    説明

    ワークロードグループ名

    名前を test-policy に設定します。

    ワークロードリスト

    1. [ワークロードの追加] をクリックします。

    2. [ワークロードの追加] ダイアログボックスで、[ワークロードスコープ] を選択します。[名前空間] パラメータを [default] に設定し、[ワークロードタイプ] パラメータを [サービス] に設定します。

    3. [ワークロードの選択] ボックスで、[productpage] を選択し、添加 アイコンをクリックしてワークロードを [選択済み] ボックスに追加し、[OK] をクリックします。

    一致ルールリスト

    [一致モード] パラメータを [選択したリクエストは認証が必要] に設定します。[一致ルール][カスタム一致ルール] に設定します。[パス] スイッチをオンにして、パラメータを /productpage に設定します。

    新建工作负载组

    構成ウィザードの [完了] ステップで、「ASM セキュリティポリシーの作成に成功しました」というメッセージが表示され、ASM セキュリティポリシーが作成されたことを示します。[YAML] をクリックして作成されたリソースを表示するか、[完了] をクリックして [ASM セキュリティポリシー] ページに戻り、作成されたセキュリティポリシーを表示できます。

  6. カスタム認証構成が有効になっているかどうかを確認します。

    1. x-ext-authz: allow ヘッダーを含むリクエストを開始して productpage サービスにアクセスするには、次のコマンドを実行します。

      curl -I -H "x-ext-authz: allow" http://${イングレスゲートウェイの IP アドレス}/productpage
      // Run the following command to initiate a request with the x-ext-authz: allow header to access the productpage service:

      期待される出力:

      HTTP/1.1 200 OK
      content-type: text/html; charset=utf-8
      content-length: 5288
      server: istio-envoy
      date: Tue, 17 Jan 2023 07:53:14 GMT
      x-envoy-upstream-service-time: 20
      // Expected output:

      出力は、カスタム認証がトリガーされ、認証が成功したことを示しています。

    2. x-ext-authz: deny ヘッダーを含むリクエストを開始して productpage サービスにアクセスするには、次のコマンドを実行します。

      curl -I -H "x-ext-authz: deny" http://${イングレスゲートウェイの IP アドレス}/productpage
      // Run the following command to initiate a request with the x-ext-authz: deny header to access the productpage service:

      期待される出力:

      HTTP/1.1 403 Forbidden
      x-ext-authz-check-result: denied
      date: Tue, 17 Jan 2023 07:55:27 GMT
      server: istio-envoy
      x-envoy-upstream-service-time: 2
      transfer-encoding: chunked
      // Expected output:

      出力は、カスタム認証がトリガーされたが、認証が失敗したことを示しています。

    上記の結果は、カスタム認証構成が有効になっていることを示しています。

参照資料