オートメーション ルールとプレイブックの正常性を監視する

Microsoft Sentinel サービスのセキュリティ オーケストレーション、オートメーション、応答の各動作に適切な機能とパフォーマンスを確保するためには、実行ログを監視してオートメーション ルールとプレイブックの正常性を常時監視します。

正常性イベントの通知を設定すれば、直接の利害関係者が措置を講じることができます。 たとえば、メールや Microsoft Teams メッセージを定義して送信したり、チケット システムで新しいチケットを作成したりすることができます。

この記事では、Microsoft Sentinel の稼働状況の監視機能を使用して、オートメーション ルールとプレイブックの正常性を Microsoft Sentinel 内から常時監視する方法について説明します。

まとめ

  • Microsoft Sentinel オートメーションの正常性ログ:

    • このログは、オートメーション ルールの実行とその最終結果 (成功したか失敗したか、失敗した場合はその理由) を記録するイベントをキャプチャします。 ログには、ルールに含まれるアクションの実行の成功と失敗がまとめて記録され、ルールによって呼び出された一連のプレイブックも記録されます。
    • また、ログには、プレイブックのオンデマンド (手動または API ベース) トリガーを記録するイベントもキャプチャされます。それらをトリガーした ID や成否、失敗した場合はその理由も含まれます。
    • このログに含まれるのはプレイブック実行の成否のみであり、プレイブックの内容の実行記録は "含まれません"。 プレイブック内で実行されたアクションのログについては、以下の一覧を参照してください。
    • これらのログは、Log Analytics の SentinelHealth テーブルに収集されます。

    重要

    SentinelHealth データ テーブルは、現在、プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

  • Azure Logic Apps の診断ログ:

    • プレイブック (Logic Apps ワークフローとも呼ばれます) の実行結果とそのアクションがキャプチャされます。
    • オートメーションの正常性ログと併用することで、オートメーションの正常性の全体像を把握することができます。
    • これらのログは、Log Analytics の AzureDiagnostics テーブルに収集されます。

SentinelHealth データ テーブル (パブリック プレビュー) を使用する

SentinelHealth データ テーブルからオートメーションの正常性データを取得するには、最初に、Microsoft Sentinel の正常性機能をワークスペースに対して有効にする必要があります。 詳細については、「Microsoft Sentinel の正常性監視を有効にする」を参照してください。

正常性機能を有効にした後、オートメーション ルールとプレイブックに関して生成される最初の成功または失敗イベントで SentinelHealth データ テーブルが作成されます。

SentinelHealth テーブル イベントについて

オートメーションの正常性に関して、SentinelHealth テーブルには次の種類のイベントが記録されます。

  • Automation rule run (オートメーション ルールが実行された)。 オートメーション ルールの条件が満たされ、実行されるたびにログに記録されます。 基本的な SentinelHealth テーブル内のフィールドに加え、これらのイベントにはオートメーション ルールの実行に固有の拡張プロパティ、たとえばルールによって呼び出されたプレイブックの一覧が含まれます。 これらのイベントは、次のサンプル クエリで表示されます。

    SentinelHealth
    | where OperationName == "Automation rule run"
    
  • Playbook was triggered (プレイブックがトリガーされた)。 インシデント発生時、ポータルから手動で、または API を通じてプレイブックがトリガーされるたびにログに記録されます。 基本的な SentinelHealth テーブル内のフィールドに加え、これらのイベントには、プレイブックの手動トリガーに固有の拡張プロパティが含まれます。 これらのイベントは、次のサンプル クエリで表示されます。

    SentinelHealth
    | where OperationName == "Playbook was triggered"
    

詳細については、「SentinelHealth テーブル列のスキーマ」を参照してください。

状態、エラー、推奨される手順

"Automation rule run (オートメーション ルールが実行された)" に関して表示される可能性のある状態は次のとおりです。

  • 成功: ルールが正常に実行され、すべてのアクションがトリガーされた。
  • 一部成功: ルールが実行されて少なくとも 1 つのアクションはトリガーされたが、一部のアクションに失敗した。
  • 失敗: いずれのアクションも実行されなかった。原因として、次のいずれかの理由が考えられます。
    • 条件の評価に失敗した。
    • 条件は満たされたが、最初のアクションが失敗した。

"Playbook was triggered (プレイブックがトリガーされた)" に関して表示される可能性のある状態は次のとおりです。

  • 成功: プレイブックが正常にトリガーされた。
  • 失敗: プレイブックのトリガーに失敗した。

    Note

    "成功" が意味するのは、オートメーション ルールによってプレイブックが正常にトリガーされた事実のみです。 プレイブックが開始または終了した時刻や、プレイブック内のアクションの結果、プレイブックの最終的な結果はわかりません。 この情報を把握するには、Logic Apps の診断ログに対してクエリを実行します (この記事で後述する手順を参照してください)。

エラーの説明と推奨されるアクション

エラーの説明 推奨されるアクション
Could not add task: <TaskName>. (タスクを追加できませんでした: <タスク名>)
インシデントまたはアラートが見つかりませんでした。
インシデントまたはアラートが存在することを確認し、もう一度やり直してください。
Could not modify property: <PropertyName>. (プロパティを変更できませんでした: <プロパティ名>)
インシデントまたはアラートが見つかりませんでした。
インシデントまたはアラートが存在することを確認し、もう一度やり直してください。
Could not modify property: <PropertyName>. (プロパティを変更できませんでした: <プロパティ名>)
要求が多すぎて、調整の制限を超えています。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
インシデントまたはアラートが見つかりませんでした。
オンデマンドでプレイブックをトリガーしようとしたときにエラーが発生した場合は、インシデントまたはアラートが存在することを確認してから、もう一度やり直してください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
プレイブックが見つからないか、それに対するアクセス許可が Microsoft Sentinel にありません。
オートメーション ルールを編集し、別の場所にあるプレイブックを見つけて選択し、保存します。 このプレイブックを実行するためのアクセス許可が Microsoft Sentinel にあることを確認してください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
サポートされていないトリガーの種類が含まれています。
適切な Logic Apps トリガー (Microsoft Sentinel インシデントまたは Microsoft Sentinel アラート) でプレイブックが開始されるようにしてください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
サブスクリプションは無効で、読み取り専用としてマークされています。 このサブスクリプションのプレイブックは、サブスクリプションが再度有効になるまで実行できません。
プレイブックが配置されている Azure サブスクリプションを再度有効にします。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
プレイブックが無効になりました。
Microsoft Sentinel の [アクティブなプレイブック] タブの [オートメーション]、または [Logic Apps リソース] ページでプレイブックを有効にします。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
無効なテンプレート定義です。
プレイブック定義に誤りがあります。 Logic Apps デザイナーに移動して問題を解決してから、プレイブックを保存してください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
アクセス制御の構成により、Microsoft Sentinel が制限されています。
プレイブックのトリガーは、Logic Apps の構成で利用を制限することができます。 この制限が、このプレイブックに対して有効になっています。 Microsoft Sentinel がブロックされないよう、この制限を解除してください。 詳細情報
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
Microsoft Sentinel にこれ実行するアクセス許可がありません。
Microsoft Sentinel には、プレイブックを実行するためのアクセス許可が必要です。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
プレイブックが新しいアクセス許可モデルに移行されていません。 このプレイブックを実行するためのアクセス許可を Microsoft Sentinel に付与してからルールを再保存してください。
のプレイブックを実行するためのアクセス許可を Microsoft Sentinel に付与してからルールを再保存します。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
要求が多すぎて、ワークフローの調整の制限を超えています。
待機中のワークフロー実行の数が、許容される上限を超えています。 トリガーのコンカレンシー構成'maximumWaitingRuns' の値を増やしてみてください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
要求が多すぎて、調整の制限を超えています。
詳細については、「サブスクリプションとテナントの制限」を参照してください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
アクセスが禁止されました。 マネージド ID に構成がないか、Logic Apps のネットワーク制限が設定されています。
プレイブックにマネージド ID が使用されている場合、マネージド ID にアクセス許可が割り当てられていることを確認します。 プレイブックに適用されているネットワーク制限ルールによって Microsoft Sentinel サービスがブロックされ、プレイブックをトリガーできなくなっている可能性があります。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
サブスクリプションまたはリソース グループがロックされました。
ロックされたスコープ内で Microsoft Sentinel がプレイブックをトリガーできるよう、ロックを解除します。 詳細については、リソースのロックに関する記事を参照してください。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
プレイブックをトリガーするために必要なアクセス許可が呼び出し元にないか、アクセス許可が Microsoft Sentinel にありません。
プレイブックをオンデマンドでトリガーしようとしているユーザーには、プレイブックに対する (プレイブックをトリガーするための) Logic Apps 共同作成者ロールがありません。 詳細情報
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
接続の資格情報が無効です。
Azure portal で、API 接続サービスの接続に使用されている資格情報を確認します。
Could not trigger playbook: <PlaybookName>. (プレイブックをトリガーできませんでした: <プレイブック名>)
プレイブックの ARM ID が無効です。

オートメーションの全体像を把握する

Microsoft Sentinel の稼働状況の監視テーブルでは、プレイブックのトリガーを追跡できますが、プレイブックが実行されたときに何が起こって、どういう結果になったかを監視するには、Azure Logic Apps の診断を有効にしてAzureDiagnostics テーブルに次のイベントを取り込むことも必要です。

  • <アクション名> が開始された
  • <アクション名> が有効にされた
  • ワークフロー (プレイブック) が開始された
  • ワークフロー (プレイブック) が終了された

これらのイベントが加わることで、プレイブックで実行されるアクションに関するより詳しい分析情報が得られます。

Azure Logic Apps の診断を有効にする

監視対象のプレイブックごとに、ロジック アプリに対して Log Analytics を有効にします。 ログの送信先として必ず [Log Analytics ワークスペースへの送信] を選択し、ご利用の Microsoft Sentinel ワークスペースを選択してください。

Microsoft Sentinel と Azure Logic Apps のログを関連付ける

ワークスペースに、オートメーション ルールとプレイブックのログ、"そして" 個々の Logic Apps ワークフローのログが揃ったら、それらを関連付けることで全体像を把握することができます。 次のようなサンプル クエリがあるとします。

SentinelHealth 
| where SentinelResourceType == "Automation rule"
| mv-expand TriggeredPlaybooks = ExtendedProperties.TriggeredPlaybooks
| extend runId = tostring(TriggeredPlaybooks.RunId)
| join (AzureDiagnostics 
    | where OperationName == "Microsoft.Logic/workflows/workflowRunCompleted"
    | project
        resource_runId_s,
        playbookName = resource_workflowName_s,
        playbookRunStatus = status_s)
    on $left.runId == $right.resource_runId_s
| project
    RecordId,
    TimeGenerated,
    AutomationRuleName= SentinelResourceName,
    AutomationRuleStatus = Status,
    Description,
    workflowRunId = runId,
    playbookName,
    playbookRunStatus

正常性監視ブックを使用する

オートメーションの正常性ブックでは、正常性データを視覚化すると共に、前述した 2 種類のログの相関関係を視覚化できます。 ブックには、次の内容が表示されます。

  • オートメーション ルールの正常性と詳細
  • プレイブック トリガーの正常性と詳細
  • プレイブック実行の正常性と詳細 (プレイブック レベルで Azure Diagnostics が有効になっている必要があります)
  • インシデントごとのオートメーションの詳細

オートメーション正常性ブックのパネルを表示した画面のスクリーンショット。

[Playbooks run by Automation Rules] (オートメーション ルールによって実行されたプレイブック) タブを選択すると、プレイブックのアクティビティが表示されます。

オートメーション ルールによって呼び出された一連のプレイブックを表示する画面のスクリーンショット。

プレイブックを選択すると、その実行の一覧が下のドリルダウン グラフに表示されます。

選択したプレイブックの実行の一覧を示すスクリーンショット。

プレイブック内のアクションの結果を確認するには、特定の実行を選択します。

このプレイブックの特定の実行の中で行われたアクションを示すスクリーンショット。

次の手順