Azure Monitor ログでクエリを監査する
ログ クエリの監査ログには、Azure Monitor で実行されるログ クエリに関するテレメトリが用意されています。 これには、クエリがいつ実行されたか、誰が実行したか、どのツールが使用されたか、クエリ テキスト、クエリの実行を説明するパフォーマンス統計などの情報が含まれています。
クエリの監査を構成する
クエリの監査は、Log Analytics ワークスペースの診断設定を使用して有効にします。 これにより、現在のワークスペースまたはサブスクリプション内のその他のワークスペース、Azure Event Hubs (Azure の外部に送信するため)、または Azure Storage (アーカイブのため) に監査データを送信することができます。
Azure portal
Azure portal で、次のいずれかの場所にある Log Analytics ワークスペースの診断設定にアクセスします。
[Azure Monitor] メニューから [診断設定] を選択し、ワークスペースを見つけて選択します。
[Log Analytics ワークスペース] メニューからワークスペースを選択し、 [診断設定] を選択します。
Resource Manager テンプレート
Resource Manager テンプレートの例は、「Log Analytics ワークスペースの診断設定」から入手できます。
監査データ
監査レコードは、クエリが実行されるたびに作成されます。 Log Analytics ワークスペースにデータを送信すると、LAQueryLogs というテーブルに格納されます。 監査データの各レコードのプロパティについて次の表で説明します。
フィールド | 説明 |
---|---|
TimeGenerated | クエリが送信された UTC 時刻。 |
CorrelationId | クエリを識別する一意の ID。 トラブルシューティングのシナリオで、Microsoft に問い合わせるときに使用できます。 |
AADObjectId | クエリを開始したユーザー アカウントの Microsoft Entra ID。 |
AADTenantId | クエリを開始したユーザー アカウントのテナントの ID。 |
AADEmail | クエリを開始したユーザー アカウントのテナントのメール アドレス。 |
AADClientId | クエリを開始するために使用されたアプリケーションの ID と解決済みの名前。 |
RequestClientApp | クエリを開始するために使用されたアプリケーションの解決済みの名前。 詳細については、「クライアント アプリを要求する」を参照してください。 |
QueryTimeRangeStart | クエリに対して選択された時間範囲の開始。 これは一部のシナリオでは設定されない場合があります。たとえば、クエリが Log Analytics から開始され、時間範囲が時間ピッカーではなくクエリ内で指定されている場合などです。 |
QueryTimeRangeEnd | クエリに対して選択された時間範囲の終了。 これは一部のシナリオでは設定されない場合があります。たとえば、クエリが Log Analytics から開始され、時間範囲が時間ピッカーではなくクエリ内で指定されている場合などです。 |
QueryText | 実行されたクエリのテキスト。 |
RequestTarget | クエリを送信するために API URL が使用されました。 |
RequestContext | クエリが実行を要求された対象のリソースの一覧。 最大 3 つの文字列配列 (ワークスペース、アプリケーション、リソース) が含まれます。 サブスクリプションまたはリソース グループを対象とするクエリは、resources と示されます。 RequestTarget によって暗黙的に示されたターゲットが含まれます。 解決できる場合は、各リソースのリソース ID が含まれます。 リソースへのアクセス時にエラーが返された場合は、解決できない可能性があります。 この場合は、クエリの特定のテキストが使用されます。 クエリであいまいな名前 (複数のサブスクリプションに存在するワークスペース名など) が使用されている場合は、このあいまいな名前が使用されます。 |
RequestContextFilters | クエリの呼び出しの一部として指定されたフィルターのセット。 次の文字列配列が最大 3 つ含まれます。 - ResourceTypes - クエリのスコープを制限するリソースの種類 - Workspaces - クエリを制限するワークスペースの一覧 - WorkspaceRegions - クエリを制限するワークスペース リージョンの一覧 |
ResponseCode | クエリの送信時に返された HTTP 応答コード。 |
ResponseDurationMs | 応答が返された時刻。 |
ResponseRowCount | クエリによって返される行の合計数。 |
StatsCPUTimeMs | 計算、解析、データの取得に使用された合計コンピューティング時間。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
StatsDataProcessedKB | クエリを処理するためにアクセスされたデータの量。 対象のテーブルのサイズ、使用された期間、適用されたフィルター、参照されている列の数の影響を受けます。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
StatsDataProcessedStart | クエリを処理するためにアクセスされた最も古いデータの時刻。 クエリの明示的な期間と適用されるフィルターの影響を受けます。 これは、データのパーティション分割のために、明示的な期間よりも長くなる場合があります。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
StatsDataProcessedEnd | クエリを処理するためにアクセスされた最も新しいデータの時刻。 クエリの明示的な期間と適用されるフィルターの影響を受けます。 これは、データのパーティション分割のために、明示的な期間よりも長くなる場合があります。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
StatsWorkspaceCount | クエリによってアクセスされたワークスペースの数。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
StatsRegionCount | クエリによってアクセスされたリージョンの数。 クエリが状態コード 200 で返された場合にのみ設定されます。 |
クライアント アプリを要求する
RequestClientApp | 説明 |
---|---|
AAPBI | Log Analytics の Power BI との統合。 |
AppAnalytics | Azure ポータルでの Log Analytics のエクスペリエンス。 |
AppInsightsPortalExtension | ブックまたはアプリケーションの分析情報。 |
ASC_Portal | Microsoft Defender for Cloud。 |
ASI_Portal | Sentinel。 |
AzureAutomation | Azure Automation。 |
AzureMonitorLogsConnector | Azure Monitor Logs コネクタ。 |
csharpsdk | Log Analytics クエリ API。 |
Draft-Monitor | Azure portal でのログ検索アラートの作成。 |
Grafana | Grafana コネクタ。 |
IbizaExtension | Azure ポータルでの Log Analytics のエクスペリエンス。 |
infraInsights/コンテナー | コンテナーの分析情報。 |
infraInsights/vm | VM の分析情報。 |
LogAnalyticsExtension | Azure ダッシュボード。 |
LogAnalyticsPSClient | Log Analytics クエリ API。 |
OmsAnalyticsPBI | Log Analytics の Power BI との統合。 |
PowerBIConnector | Log Analytics の Power BI との統合。 |
Sentinel-Investigation-Queries | Sentinel。 |
Sentinel-DataCollectionAggregator | Sentinel。 |
Sentinel-analyticsManagement-customerQuery | Sentinel。 |
Unknown | Log Analytics クエリ API。 |
UpdateManagement | 更新の管理。 |
考慮事項
- クエリは、ユーザー コンテキストで実行された場合にのみログに記録されます。 Azure 内のサービス間のものは、ログに記録されません。 この例外に含まれる 2 つの主なクエリのセットとしては、課金計算と自動アラート実行があります。 アラートの場合、スケジュールされたアラート クエリそのものだけは記録されず、アラート作成画面でのアラートの初回の実行はユーザー コンテキストで実行されるため、監査の目的で使用できます。
- Azure Data Explorer プロキシからのクエリではパフォーマンス統計を使用することはできません。 これらのクエリのその他すべてのデータは、引き続き設定されます。
- 文字列リテラルを難読化する文字列に対する h ヒントは、クエリ監査ログに影響しません。 クエリは、文字列が難読化されることなく、送信されたとおりにキャプチャされます。 このデータを表示するためのコンプライアンス権限を持つユーザーのみが、Log Analytics ワークスペースで利用可能なさまざまな Kubernetes RBAC または Azure RBAC モードを使用してそれを実行できるようにする必要があります。
- 複数のワークスペースのデータを含むクエリの場合、クエリは、ユーザーがアクセスできるワークスペースでのみキャプチャされます。
コスト
Azure Diagnostics 拡張機能には料金はかかりませんが、取り込まれたデータの料金が発生する場合があります。 データの収集先については、「Azure Monitor の価格」を参照してください。
次のステップ
- 診断設定の詳細を確認します。
- ログ クエリの最適化の詳細を確認します。