Service Mesh(ASM)リソースに対する操作を監査および監視する場合、ASMインスタンスの監査機能を有効にし、Simple Log Serviceでアラートを構成して、仮想サービスや宛先ルールなどのASMリソースの変更に対する監査アラートを有効にすることができます。このようにして、重要なリソースの変更について、アラートがアラート連絡先にタイムリーに送信されます。これにより、ASMのセキュリティとコンプライアンスが確保されます。このトピックでは、仮想サービスの削除に対するアラートルールを構成し、構成を検証する方法について説明します。具体的には、仮想サービスが削除されたときにアラート連絡先に通知するためにテキストメッセージが送信されます。
前提条件
Simple Log Service がアクティブ化されています。 Simple Log Serviceの課金については、請求の概要をご参照ください。
ステップ 1:ASMインスタンスの監査を有効にする
ASMインスタンスの監査を有効にすると、ASMインスタンスのKubernetes APIの操作ログがSimple Log Serviceに後続のアラート構成のデータソースとして収集されます。
ASMコンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASMインスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
表示されるページで、[メッシュ監査を有効にする] を選択し、[OK] をクリックします。
次の図に示すページが表示された場合、メッシュ監査は正常に有効になっています。

ステップ 2:アラート受信者を追加する
この例では、生成されたアラートは、Simple Log Serviceの組み込みASMユーザーグループに送信されます。したがって、通知を受信できるテストユーザーをユーザーグループに追加する必要があります。
携帯電話番号がテストユーザーに追加されており、携帯電話番号でテキストメッセージを受信できることを確認します。 詳細については、ユーザーの作成をご参照ください。
テストユーザーをユーザーグループに追加します。
Simple Log Serviceコンソール にログインします。
[プロジェクト] セクションで、目的のプロジェクトの名前をクリックします。左側のナビゲーションペインで、[アラート] をクリックします。
新しいプロジェクトを作成する必要がある場合 (ASM インスタンスの作成時または監査機能の有効化時に既存のプロジェクトを選択しない場合)、プロジェクト名は
mesh-log-<Mesh ID>形式になります。既存のプロジェクトを使用する場合は、プロジェクトの名前をクリックします。
[アラートセンター] ページで、 を選択します。
[ユーザーグループ管理] タブで、[sls.app.asm.builtin] を見つけ、[アクション] 列の [編集] をクリックします。
[ユーザーグループの編集] ダイアログボックスで、テストユーザーを追加し、[OK] をクリックします。
ステップ 3:監査アラートルールを構成する
仮想サービスの削除について、テキストメッセージによるアラート通知を構成します。
Simple Log Serviceコンソール にログインします。
[プロジェクト] セクションで、目的のプロジェクトの名前をクリックします。左側のナビゲーションペインで、[アラート] をクリックします。
[アラートセンター] ページの [アラートルール] タブで、[アラートの作成] をクリックします。
[アラートの作成] パネルで、パラメーターを構成し、[OK] をクリックします。
次の表に、いくつかのパラメーターについて説明します。パラメーターの詳細については、アラートルールの作成をご参照ください。
パラメーター
説明
[ルール名]
この例では、値を DeleteVirtualService に設定します。
[チェック頻度]
この例の設定が有効かどうかをすばやく確認するために、この例では値を 1分 に設定します。
[クエリ統計]
[作成] をクリックします。 [クエリ統計] ダイアログボックスで、[詳細設定] タブをクリックし、名前が audit で始まるログストアを選択します。
[時間範囲] を [チェック頻度] の値と同じ 1分(相対) に設定します。これにより、繰り返されるアラートや見逃されるアラートを防ぎます。
[クエリ] フィールドに、
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )と入力します。次に、[プレビュー] をクリックします。情報を確認した後、[確認] をクリックします。
[トリガー条件]
この例では、[When] を [データが返されたとき] に設定し、[重大度] を [高] に設定します。このようにして、データが返されたときにアラートがトリガーされ、重大度は高になります。
[注釈を追加]
ビジネス要件に基づいて [title] フィールドと [desc] フィールドを変更して、アラートのタイトルと内容をカスタマイズできます。 詳細については、新しいアラートテンプレートの変数をご参照ください。
[宛先]
[simple Log Service通知] を選択し、[有効] スイッチをオンにして、[アクションポリシー] を [sls.app.asm.builtin] に設定します。

ステップ 4:監査アラートルールを確認する
ステップ 3 で構成した監査アラートルールを確認するために、仮想サービスを削除します。
仮想サービスを作成してから削除します。
ASMコンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASMインスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。表示されるページで、[YAMLから作成] をクリックします。
[作成] ページで、[名前空間] ドロップダウンリストから [default] を選択し、[テンプレート] ドロップダウンリストから [HTTP基本ルーティング] を選択して、[作成] をクリックします。
[virtualservice] ページで、作成した reviews-route 仮想サービスを見つけ、[アクション] 列の [削除] をクリックします。[送信] メッセージで、[OK] をクリックします。
監査アラートが生成されたかどうかを確認します。
Simple Log Serviceコンソール にログインします。
[プロジェクト] セクションで、目的のプロジェクトの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[ダッシュボード] リストで、[アラート履歴統計] をクリックして、各アラートの実行レコードとアラートが生成されたかどうかを表示します。
サブステップ 1 で仮想サービスを削除した後、[アラート履歴] セクションにアラートが生成されます。
左側のナビゲーションペインで、[ログストレージ] をクリックします。表示されるページで、[internal-alert-history] ログストアを検索してクリックします。次に、右側のペインで [検索と分析] をクリックします。
[alertdisplayname] が [deletevirtualservice] であるアラートログを表示できます。ログの [fired] フィールドは [true] です。
テストユーザーにバインドされている携帯電話番号がアラート通知メッセージを受信したかどうかを確認します。
関連情報
組み込みASMアクションポリシーのアラート通知方法
アラートの重大度 | アラート通知方法 |
致命的 | 音声通話 |
高 | テキストメッセージ |
その他 | メール通知 |
一般的なアラート条件
Istio ゲートウェイが作成、変更、または削除されたときにアラートを生成するためのクエリステートメント:
(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 )ゲートウェイが削除されたときにアラートを生成するためのクエリステートメント:
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: gateways and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )ASMクレデンシャルが削除されたときにアラートを生成するためのクエリステートメント:
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: asmcredentials and objectRef.apiGroup: "istio.alibabacloud.com" and ( verb: delete )仮想サービスが削除されたときにアラートを生成するためのクエリステートメント:
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: virtualservices and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )宛先ルールが削除されたときにアラートを生成するためのクエリステートメント:
(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 )承認ポリシーが削除されたときにアラートを生成するためのクエリステートメント:
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: authorizationpolicies and objectRef.apiGroup: "security.istio.io" and ( verb: delete )Envoyフィルターが削除されたときにアラートを生成するためのクエリステートメント:
(responseStatus.code: 200 or responseStatus.code: 201) and objectRef.resource: envoyfilters and objectRef.apiGroup: "networking.istio.io" and ( verb: delete )
参考文献
RAMユーザーにアラートの読み取り専用権限と管理権限を付与する方法の詳細については、アラートを管理するためのRAMユーザーの承認をご参照ください。
ASMでワークロードID、ピア認証、リクエスト認証、承認ポリシーなどのゼロトラストセキュリティ機能を構成して、メッシュリソースをよりきめ細かく管理し、メッシュセキュリティを向上させることができます。 詳細については、ゼロトラストセキュリティの概要をご参照ください。