ビジネス要件に基づいてアクセス制御ポリシーをカスタマイズする必要がある場合は、Service Mesh(ASM)セキュリティポリシーを構成してカスタム認証を実装できます。つまり、リクエストは指定したカスタム認証サービスに転送されます。カスタム認証サービスはリクエストを認証します。このようにして、複雑な認証ロジックを実装し、開発とメンテナンスのコストを削減し、開発効率を向上させることができます。
前提条件
手順
[ASM コンソール] にログオンします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[ASM セキュリティポリシー] ページで、[作成] をクリックします。[ASM セキュリティポリシーの作成] ダイアログボックスで、[カスタム認証サービス] をクリックし、[OK] をクリックします。
カスタム承認サービス構成[カスタム認証サービスの作成] 構成ウィザードの Envoy.ext_authz に基づいて実装されたカスタム認証サービス (HTTP または Grpc プロトコル)次へ ステップで、 タブをクリックし、パラメータを構成して、 をクリックします。
次の図は、パラメータを構成する方法の例を示しています。パラメータの詳細については、「HTTP プロトコルを使用したカスタム認証の実装」をご参照ください。



構成ウィザードの [ワークロードと一致ルール] ステップで、[ワークロードグループの追加] をクリックします。[新しいワークロードグループ] ダイアログボックスで、パラメータを構成し、[OK] をクリックします。
次の表は、この例のパラメータの構成方法を示しています。
パラメータ
説明
ワークロードグループ名
名前を test-policy に設定します。
ワークロードリスト
[ワークロードの追加] をクリックします。
[ワークロードの追加] ダイアログボックスで、[ワークロードスコープ] を選択します。[名前空間] パラメータを [default] に設定し、[ワークロードタイプ] パラメータを [サービス] に設定します。
[ワークロードの選択] ボックスで、[productpage] を選択し、
アイコンをクリックしてワークロードを [選択済み] ボックスに追加し、[OK] をクリックします。
一致ルールリスト
[一致モード] パラメータを [選択したリクエストは認証が必要] に設定します。[一致ルール] を [カスタム一致ルール] に設定します。[パス] スイッチをオンにして、パラメータを /productpage に設定します。

構成ウィザードの [完了] ステップで、「ASM セキュリティポリシーの作成に成功しました」というメッセージが表示され、ASM セキュリティポリシーが作成されたことを示します。[YAML] をクリックして作成されたリソースを表示するか、[完了] をクリックして [ASM セキュリティポリシー] ページに戻り、作成されたセキュリティポリシーを表示できます。
カスタム認証構成が有効になっているかどうかを確認します。
x-ext-authz: allowヘッダーを含むリクエストを開始して productpage サービスにアクセスするには、次のコマンドを実行します。
// Run the following command to initiate a request with the x-ext-authz: allow header to access the productpage service:curl -I -H "x-ext-authz: allow" http://${イングレスゲートウェイの IP アドレス}/productpage期待される出力:
// Expected output: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出力は、カスタム認証がトリガーされ、認証が成功したことを示しています。
x-ext-authz: denyヘッダーを含むリクエストを開始して productpage サービスにアクセスするには、次のコマンドを実行します。
// Run the following command to initiate a request with the x-ext-authz: deny header to access the productpage service:curl -I -H "x-ext-authz: deny" http://${イングレスゲートウェイの IP アドレス}/productpage期待される出力:
// Expected output: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出力は、カスタム認証がトリガーされたが、認証が失敗したことを示しています。
上記の結果は、カスタム認証構成が有効になっていることを示しています。
参照資料
ASM セキュリティポリシーの概念と機能の詳細については、「ASM セキュリティポリシーの概要」をご参照ください。
メッシュ監査機能を有効にして、さまざまなユーザーの日常業務を記録または追跡できます。また、ASM リソースに対する操作の監査アラートを構成し、重要なリソースが変更されたときにアラートの連絡先にアラート通知をタイムリーに送信することもできます。詳細については、「ASM での KubeAPI 操作監査機能の使用」および「ASM リソースに対する操作の監査アラートの構成」をご参照ください。