サービスメッシュ内のリソース操作を監査およびモニタリングするには、メッシュ監査を有効にし、Simple Log Service (SLS) でアラートを設定します。これにより、VirtualService や DestinationRule などの ASM リソースへの変更に対する監査アラートが有効になります。重要なリソースが変更されると、アラート通知が速やかにアラート連絡先に送信され、サービスメッシュのセキュリティとコンプライアンスを確保します。このトピックでは、サービスメッシュ内のリソース操作に対する監査アラートの設定方法を説明し、仮想サービスが削除されたときにアラート連絡先にテキストメッセージ通知を送信する方法を示します。
前提条件
-
Simple Log Service (SLS) をアクティベート済みであること。SLS の課金の詳細については、「課金概要」をご参照ください。
ステップ 1:メッシュ監査の有効化
メッシュ監査を有効にすると、ASM インスタンスの KubeAPI 操作ログが SLS に収集されます。これらのログは、後続のアラート設定のデータソースとして機能します。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
[メッシュ管理] ページで ASM インスタンスの名前をクリックし、左側のナビゲーションウィンドウで を選択します。
-
[KubeAPI 操作監査] ページで、[メッシュ監査の有効化] を選択し、[OK] をクリックします。
次の図は、メッシュ監査が有効になっていることを示しています。

ステップ 2:アラート受信者の追加
この例では、アラートは SLS の組み込み Service Mesh ユーザーグループに送信されます。このユーザーグループに通知を受信できるアカウントを追加する必要があります。
-
テスト用の Resource Access Management (RAM) ユーザーアカウントに、テキストメッセージを受信できる携帯電話番号が設定されていることを確認します。詳細については、「ユーザーの作成」をご参照ください。
-
テスト用の RAM ユーザーをユーザーグループに追加します。
Simple Log Service コンソールにログインします。
-
[プロジェクトリスト]エリアで、対象のプロジェクトの名前をクリックします。左側のナビゲーションウィンドウで、[アラート]をクリックします。
-
メッシュの作成時または監査機能の有効化時に既存のプロジェクトを再利用せず、新しいプロジェクトを作成した場合、プロジェクト名は
mesh-log-<Mesh ID>の形式になります。 -
既存のプロジェクトを再利用した場合は、そのプロジェクトの名前をクリックします。
-
-
「[アラートセンター]」ページで、 をクリックします。
-
[ユーザーグループ管理]タブで、[SLS Service Mesh 組み込みユーザーグループ]を見つけ、[変更]を[操作]列でクリックします。
[識別子] は、[SLS Service Mesh 組み込みユーザーグループ] の sls.app.asm.builtin です。
-
[ユーザーグループの変更] ダイアログボックスで、テスト RAM ユーザーを追加し、[OK] をクリックします。
ステップ 3:監査アラートの設定
仮想サービスリソースが削除されたときにテキストメッセージ通知を送信するアラートを設定します。
Simple Log Service コンソールにログインします。
-
「プロジェクト一覧」エリアで、対象のプロジェクト名をクリックします。左側のナビゲーションウィンドウで、「アラート」をクリックします。
-
「アラートセンター」ページで、「アラートルール」タブをクリックし、その後「アラートの作成」をクリックします。
-
「[アラートの作成]」パネルで、パラメーターを設定し、「[OK]」をクリックします。
次の表に、一部のパラメーターについて説明します。すべてのパラメーターの詳細については、「アラート監視ルールの作成」をご参照ください。
パラメーター
説明
ルール名
仮想サービスの削除 に設定します。
チェック頻度
この例では結果を迅速に検証するため、1 分 に設定します。
クエリと分析
-
[追加] をクリックします。[クエリと分析] ダイアログボックスの [高度な設定] タブで、audit で始まる [Logstore] を選択します。
-
繰り返しのアラームや偽陰性を避けるため、[クエリ時間範囲] を [チェック頻度] と同じ値の 1 分 (相対) に設定します。
-
[クエリ] テキストボックスに
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )を入力します。[プレビュー] をクリックしてクエリを確認し、次に [OK] をクリックします。
トリガー条件
データが見つかった場合に、重要度「高」のアラートをトリガーするように設定します。
アノテーションの追加
必要に応じて[タイトル]と[内容]を変更して、アラートのタイトルと内容を設定できます。詳細については、「内容テンプレート変数(新規)」をご参照ください。
出力
[SLS 通知] を選択し、[有効化] スイッチをオンにします。[アクションポリシー] には、[SLS Service Mesh 組み込みアクションポリシー (sls.app.asm.builtin)] を選択します。

-
ステップ 4:監査アラートの検証
ステップ 3 で設定した監査アラートを検証するために、仮想サービスリソースを削除します。
-
仮想サービスを作成し、削除します。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。表示されるページで、[YAML から作成] をクリックします。
-
[作成]ページで、[名前空間]を[デフォルト]に、[シナリオテンプレート]を[基本的な HTTP ルーティング]に設定します。次に、[作成]をクリックします。
-
[仮想サービス] ページで、新しく作成した reviews-route 仮想サービスを見つけ、[アクション] 列の [削除] をクリックします。[確認] ダイアログボックスで、[OK] をクリックします。
-
-
監査アラートが成功したかどうかを確認します。
Simple Log Service コンソールにログインします。
-
「プロジェクト一覧」エリアで、対象のプロジェクトの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
[ダッシュボード] リストで、[アラート履歴統計] をクリックして、各アラートの実行レコードを表示し、アラートがトリガーされたかどうかを確認します。
前の手順で仮想サービスを削除すると、[アラート履歴] エリアでアラートがトリガーされます。
-
左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。[internal-alert-history] Logstore を見つけてクリックし、ページの右側にある [検索 & 分析] をクリックします。
アラートログを表示できます。このログでは、[AlertDisplayName] が [Delete Virtual Service] です。このログの [Fired] フィールドは [true] です。
-
テストアカウントに紐付けられた携帯電話番号で、テキストメッセージのアラート通知を受信したかどうかを確認します。
関連情報
SLS の組み込み Service Mesh アクションポリシーの詳細
|
アラートの重要度 |
アクション |
|
重大 |
音声通話 |
|
高 |
テキストメッセージ通知 |
|
その他 |
メール通知 |
一般的なアラート条件クエリのリファレンス
-
ASM ゲートウェイ (IstioGateway) の作成、更新、または削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: istiogateways and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: create or verb: delete or verb: update ) -
ゲートウェイルール (Gateway) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: gateways and objectRef.apiGroup: "networking.istio.io" and ( verb: delete ) -
証明書 (ASMCredential) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: asmcredentials and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: delete ) -
仮想サービス (VirtualService) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete ) -
宛先ルール (DestinationRule) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: destinationrules and objectRef.apiGroup: "networking.istio.io" and ( verb: delete ) -
可観測性テレメトリの削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: telemetries and objectRef.apiGroup: "telemetry.istio.io" and ( verb: delete ) -
権限付与ポリシー (AuthorizationPolicies) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: authorizationpolicies and objectRef.apiGroup: "security.istio.io" and ( verb: delete ) -
Envoy フィルター (EnvoyFilter) の削除
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: envoyfilters and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
参考
-
RAM ユーザーに Simple Log Service アラートの読み取り専用または管理権限を付与する方法については、「RAM ユーザーにアラートを管理する権限を付与する」をご参照ください。
-
メッシュ内でワークロード ID、ピア認証、リクエスト認証、および権限付与ポリシーを設定して、メッシュリソースをより高い粒度で管理し、メッシュのセキュリティを向上させることができます。詳細については、「ゼロトラストセキュリティの概要」をご参照ください。