dt-obs-compliance-assistant について
dt-obs-compliance-assistantは、Dynatrace Compliance Assistantのデータを使ってEU DORAの態勢を調査するスキルです。CIFの健全性、インシデントの状態、ICTリスク要因を扱い、スコアは法的判断ではなく運用指標として示します。
主な機能
- 01EU DORAスナップショットとスコア階層の解釈
- 02重要機能(CIF)の健全性監視
- 03未分類問題と重大インシデント候補の調査
- 04脆弱性、検知結果、構成結果の検索
- 05分類済みインシデントとDQLデータの検索
活用シーン
- 01コンプライアンス態勢とリスク要因の確認
- 02CIFに影響する問題とKPIの分析
- 03DORA重大インシデントの基準の調査
- 04分類済み重大インシデント記録の取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dynatrace/ dynatrace-for-ai --skill dt-obs-compliance-assistantインストール後、Claude Code で/dt-obs-compliance-assistantを入力して読み込まれたか確認します。
詳細
コンプライアンスアシスタント
Dynatrace Compliance Assistant アプリのリアルタイムの可観測性とセキュリティに関するインサイトを活用して、EU DORA のコンプライアンス態勢を追跡、管理、調査できます。
重要な免責事項
Dynatrace のコンプライアンススコアと Compliance Assistant のすべての出力は、リアルタイムの可観測性データと自動化システムに基づく参考指標です。包括的または正式なコンプライアンス評価に代わるものではなく、EU DORA またはその他の規制に基づく企業のコンプライアンス状況を法的に判断するものでもありません。
**スコア、ティア、または Compliance Assistant の出力を根拠に、組織が EU DORA に法的に準拠している、または準拠していないと決して主張しないでください。**結果は、法的または規制上の判断ではなく、是正の判断を支援する運用上の指標として常に提示してください。
このスキルを使用する場面
✅ 次の用途に使用します:
- EU DORA のコンプライアンス態勢、コンプライアンススコア、コンプライアンススナップショット、スコアティア
- 重要または重大な機能(CIF):健全性、KPI モニタリング、影響分析、セットアップに関する質問
- DORA に基づくインシデントライフサイクル:未分類の問題、重大インシデントの可能性、分類済みの重大インシデント
- ICT リスクに関する入力:脆弱性、セキュリティ検出結果、設定ミス(ICT 資産の設定結果)
- EU DORA に基づくインシデント分類:重要性のしきい値、継続時間の基準、経済的影響
compliance.incidentの bizevents、CIF の健全性、または CIF に関する未分類の問題を対象とする DQL クエリ- Compliance Assistant のオンボーディング、権限、設定
❌ 次の用途には使用しないでください:
- EU DORA 以外の規制フレームワーク — SOC2、PCI-DSS、HIPAA、ISO 27001 は、このアプリではサポートされていません
- DORA、CIF、またはコンプライアンスに関するコンテキストのない一般的な Davis の問題 →
dt-obs-problemsを使用してください - コンプライアンスまたは DORA の範囲に限定されない、一般的な脆弱性やセキュリティ検出結果のクエリ → アプリケーションセキュリティのスキルを使用してください
- 「compliance」または「DORA」を含まない一般的な「score」に関するクエリ — Dynatrace にはさまざまなスコアがあります
- Business Flow の設定やビジネスプロセスのステップの定義 → Business Flow のドキュメントを参照してください
- Security Posture Management ルールの設定 → SPM のドキュメントを参照してください
- DQL 構文全般に関するヘルプ →
dt-dql-essentialsを使用してください
前提条件
インストール
Dynatrace Hubから Compliance Assistant をインストールします。
必要な権限
| 権限 | 目的 |
|---|---|
storage:buckets:read | バケットの読み取り |
storage:events:read | イベントの読み取り |
storage:entities:read | エンティティテーブルの読み取り |
storage:metrics:read | Istio の検出結果ルールで必須 |
storage:filter-segments:read | フィルターセグメントの読み取り |
settings:objects:read | ログ取り込み設定の読み取り |
settings:schemas:read | 設定スキーマの読み取り |
state:app-states:read | アプリの状態の読み取り |
hub:catalog:read | アプリのバージョンの読み取り |
storage:security.events:read | セキュリティイベントの取得 |
必要なデータソース
| ソース | 目的 |
|---|---|
| Business Flow | ビジネスプロセスの CIF モニタリングとインシデント検出 — インシデント分類に必須 |
| 脆弱性イベント | 継続的な脆弱性評価(DORA の要件) |
| 検出結果イベント | 継続的なサイバー脅威評価(DORA の要件) |
| コンプライアイベント | ICT 資産のセキュアな設定ベースラインの検証(DORA の要件) — Security Posture Managementを利用 |
基本概念
コンプライアンスフレームワーク
Compliance Assistant が現在サポートしているのは、**EU DORA(Digital Operational Resilience Act)**のみです。このフレームワークについて、オブザーバビリティとセキュリティのインサイトを統合し、単一のコンプライアンス態勢ビューにまとめます。その他のフレームワークのサポートも予定されています。
Dynatrace スコア(コンプライアンススナップショット)
潜在的なインシデント、セキュリティ検出結果、脆弱性、設定ミスを対象に、現在の ICT リスク態勢を要約する、リアルタイムの段階別スコアです。スコアの段階は、現在有効な条件のうち最も重大なものによって決まります。各段階内では、該当する基準ごとにペナルティが差し引かれます。
スコアの段階:
| 段階 | 最大スコア | 該当条件… |
|---|---|---|
| 順調 | 100 | インシデント、セキュリティ検出結果、脆弱性、設定ミスのいずれにも該当する基準がない |
| 低 | 99 | セキュリティ検出結果/脆弱性/設定ミスに低重大度の結果がある |
| 中 | 79 | 中重大度の結果がある、または未分類のインシデントが1件以上ある |
| 高 | 59 | 高重大度の結果がある、または未分類のインシデントが5件以上ある |
| 重大 | 34 | セキュリティ検出結果/脆弱性/設定ミスに重大な結果がある、または重大インシデントの可能性が1件以上ある |
| 主要 | 5(固定) | 分類済みの主要インシデントが1件以上ある — スコアは固定値の5に短絡します |
ペナルティの仕組み: 各段階内のスコアは、段階の最大値 −(6 × 該当する基準の数)です。たとえば、中段階で該当する基準が2つの場合:79 − 12 = 67。
このスコアは、運用状況を大まかに示す指標です。規制への準拠や法的な状態を確認するものではありません。
重要または重大な機能(CIF)
EU DORA では、金融機関は、中断した場合に財務実績やサービス継続性に重大な影響を及ぼす可能性のある業務機能を特定し、監視する必要があります。Compliance Assistant では、Business Flow の業務プロセスを DORA フレームワークに関連付けることで CIF を設定します。Smartscape on Grail は、各 CIF を基盤となる IT コンポーネントに関連付けることで、エンドツーエンドの可視性を提供します。
インシデントのライフサイクル
CIF の業務プロセスに影響を及ぼす Davis 検出の問題は、次の3つの状態をたどります。
| 状態 | 定義 |
|---|---|
| 未分類の問題 | Davis の問題が CIF に影響しているものの、DORA の重要度しきい値の違反が2つ未満 |
| 重大インシデントの可能性あり | 監視対象の DORA 重要度しきい値の違反が2つ以上 |
| 分類済みの主要インシデント | Compliance Assistant で手動により主要インシデントとして確認済み。compliance.incident bizevent のスナップショットを生成 |
監視対象の EU DORA 重要度しきい値:
| しきい値 | 基準 |
|---|---|
| 影響を受ける CIF | 重要または重大な機能全体への影響範囲 |
| インシデントの継続時間 | 24時間のしきい値 |
| 経済的影響 | 100,000ユーロのしきい値。影響を受ける CIF の推定分あたりコスト × インシデントの継続時間で算出 |
分類は常に、Compliance Assistant アプリで実施する手動の手順です。ユーザーに代わってインシデントを分類しないでください。
分類後、生成された compliance.incident bizevent をトリガーとして、Dynatrace Workflows 経由で自動化を実行できます(例:コンプライアンスへの影響に関する詳細を追加した ServiceNow インシデントや Jira チケットの作成)。
ICT リスクの入力情報
| シグナルの種類 | ソース | DORA の要件 |
|---|---|---|
| 脆弱性 | 脆弱性の検出結果 | 継続的な脆弱性評価 |
| セキュリティ検出結果 | 検出結果イベント | 継続的なサイバー脅威評価 |
| ICT 資産の構成結果 | Security Posture Management 経由のコンプライアンスイベント | セキュアな構成ベースラインの検証 |
DQL リファレンス
重大インシデントとして分類されたインシデント
インシデントが重大として分類されたときに生成される compliance.incident ビジネスイベントを取得します。特定のインシデントを取得するには、problem.event.id でフィルターします。
fetch bizevents
| filter event.provider == "dynatrace.compliance.assistant"
| filter event.type == "compliance.incident"
| filter problem.event.id == {{.incident_id:string}}
分類されたすべてのインシデントを取得するには:
fetch bizevents
| filter event.provider == "dynatrace.compliance.assistant"
| filter event.type == "compliance.incident"
主なフィールド(完全なスキーマについてはセマンティックディクショナリを参照してください):
| フィールド | 型 | 説明 |
|---|---|---|
compliance.cifs_impacted.names | string | インシデントの影響を受ける CIF として設定された Business Flow エンティティの名前の重複なしリスト(例:Account opening; Deposit and trade flow) |
compliance.cifs_impacted.ids | string | インシデントの影響を受ける CIF として設定された Business Flow エンティティの一意識別子の重複なしリスト |
compliance.framework | string | コンプライアンスフレームワークの表示名(例:DORA) |
compliance.incident.classified | boolean | DORA の要件に従って、インシデントが重大として手動で分類された場合は true |
compliance.incident.comment | string | インシデントを重大として分類する際にユーザーが追加したコメント(例:"評判への損害とユーザーへの影響に関する分析に基づき、このインシデントは重大として分類されました。") |
compliance.incident.duration | duration | インシデントの継続時間(ナノ秒)。DORA の 24 時間の継続時間に関する重要性しきい値の評価に使用されます |
compliance.incident.duration_criteria | boolean | DORA の 24 時間のインシデント継続時間に関する重要性しきい値を超えた場合は true |
compliance.incident.economic_impact | double | 影響を受けた CIF の 1 分あたりの推定コスト × インシデント継続時間から算出された、推定経済的影響額(EUR) |
compliance.incident.economic_impact_criteria | boolean | DORA の €100,000 の経済的影響に関する重要性しきい値を超えた場合は true |
compliance.incident.name | string | インシデントの表示名。基となる dt.davis.problem の event.name と一致します(例:CPU saturation) |
compliance.incident.time.classified | timestamp | インシデントが重大として分類された時刻の Unix エポックタイムスタンプ(ナノ秒) |
event.provider | string | Compliance Assistant のインシデントビジネスイベントでは常に dynatrace.compliance.assistant |
event.type | string | Compliance Assistant のインシデントビジネスイベントでは常に compliance.incident |
problem.category | string | 基となる Davis 問題の問題カテゴリ:AVAILABILITY、ERROR、SLOWDOWN、RESOURCE_CONTENTION、CUSTOM_ALERT、MONITORING_UNAVAILABLE |
problem.event.id | string | 基となる dt.davis.problem の一意識別子。問題クエリとの関連付けに使用します |
problem.status | string | 基となる Davis 問題のステータス:ACTIVE または CLOSED |
未分類の問題と CIF 上で発生した重大な可能性のあるインシデント
一致する compliance.incident ビジネスイベントがない、つまりまだ手動で分類されていない、CIF に影響を与える Davis の問題を検索します。isNull(lookup.event.id) によるアンチ結合が重要なパターンです。
fetch dt.davis.problems, from: {{.from}}, to: {{.to}}
| expand affected_entity_ids
| join [
smartscapeNodes "*"
], on: {left[affected_entity_ids] == right[id_classic]}, prefix: "entities."
| join [
smartscapeEdges "*"
], on: {left[entities.id] == right[target_id]}, prefix: "edges."
| join [
smartscapeNodes "BIZ_FLOW"
], on: {left[edges.source_id] == right[id]}, prefix: "nodes."
| lookup [
fetch bizevents
| filter event.provider == "dynatrace.compliance.assistant"
and event.type == "compliance.incident"
], sourceField: `event.id`, lookupField: `problem.event.id`, executionOrder: auto
| filter isNull(lookup.event.id)
| fields display_id,
name = event.name,
status = event.status,
cif = nodes.name,
affectedEntity = entities.name,
event.start,
event.end,
nodes.bizflow.id,
category = event.category
| filter in(nodes.bizflow.id, {"{{.cif_id_1}}", "{{.cif_id_2}}"})
| summarize {
status = takeFirst(status),
cifIds = collectDistinct(nodes.bizflow.id),
cifs = collectDistinct(cif),
start = min(event.start),
end = max(event.end),
duration = max(coalesce(event.end, now()) - event.start),
category = takeFirst(category)
}, by: { display_id, name }
| limit {{.max_entries:long}}
注:
- ソースは
bizeventsではなくdt.davis.problemsです filter isNull(lookup.event.id)は、分類済みのインシデントビジネスイベントがない問題を特定しますin(nodes.bizflow.id, {...})は、Smartscape グラフが設定済み CIF(BIZ_FLOWノード)に接続する問題に絞り込みます{{.cif_id_1}}、{{.cif_id_2}}を Compliance Assistant の DORA フレームワーク設定にある実際の Business Flow エンティティ ID に置き換えてください- CIF が 1 つの場合は、
| filter nodes.bizflow.id == "{{.cif_id}}"を使用します
CIF の健全性(ビジネスフロー KPI)
CIF ごとの最新の KPI スナップショットを取得します。KPI データは Compliance Assistant から直接ではなく、Business Flow によって出力されます(event.type == "bizflow.kpis")。
fetch bizevents, from: now()-24h, to: now()
| filter event.type == "bizflow.kpis"
| filter bizflow.id == "{{.cif_id_1}}" or bizflow.id == "{{.cif_id_2}}"
| fieldsAdd timestamp, bizflowId = bizflow.id, bizflowName = bizflow.name
| sort timestamp asc
| summarize {
fulfillment = takeLast(bizflow.analysis.value),
errors = takeLast(bizflow.errors.value),
timestamp = takeLast(timestamp),
timeframe = takeLast(bizflow.query_timeframe.hours),
frequency = takeLast(bizflow.query_frequency.hours),
bizflowName = takeLast(bizflowName),
analysisLabel = takeLast(bizflow.analysis.label)
}, by: { bizflowId }
注:
- CIF ごとに 1 行を返します。
fulfillmentとerrorsは、直近にサンプリングされた KPI 値です analysisLabelは、そのフローにおけるfulfillmentの意味(例:「ログイン成功数」)を示しますtimeframeとfrequencyは、Business Flow で設定されたクエリ期間を反映します- 単一の CIF の場合は
| filter bizflow.id == "<id>"を使用します。複数の CIF の場合は、or bizflow.id == "<id>"句を追加します - データがない場合は、Business Flow の監視頻度と評価期間を確認してください(FAQを参照)
一般的なワークフロー
コンプライアンススコアを確認する
- ユーザーが DORA について尋ねていることを確認します。現在サポートされているフレームワークは DORA のみです
- 基本概念のスコア階層表を使って、現在の階層を説明します
- スコアは運用上の指標であり、法的なコンプライアンス判定ではないことをユーザーに伝えます
- スコアが低下している場合は、どのシグナル種別が影響しているか(インシデント、セキュリティ検知結果、脆弱性、設定ミス)を特定します
- コンプライアンススコアの改善に沿って、修正方法を案内します
インシデントを調査する
- ユーザーが分類済みのインシデント(
compliance.incidentの bizevent があるもの)について尋ねているのか、未分類/重大な可能性のある問題について尋ねているのかを確認します - 分類済みのインシデントの場合:分類済みインシデントの DQL クエリを実行します。特定のインシデントが指定されている場合は、
problem.event.idで絞り込みます - 未分類/重大な可能性のある問題の場合:該当する CIF ID に絞った未分類の問題のクエリを実行します
- 重大性のしきい値を超えているかどうかを示します:
compliance.incident.duration_criteria、compliance.incident.economic_impact_criteria、compliance.cifs_impacted.* - ユーザーに代わってインシデントを分類してはいけません。分類は Compliance Assistant アプリで手動で行います
CIF の健全性を確認する
- Compliance Assistant の DORA フレームワーク設定から、CIF の Business Flow ID を特定します
- 該当する
bizflow.idの値を指定して、CIF の健全性クエリを実行します - CIF ごとに
fulfillment、errors、analysisLabelを提示します - データがない、または古い場合は、Business Flow の監視頻度を確認してください。FAQを参照してください
コンプライアンススコアの改善
Dynatrace のスコアは、現在の ICT リスク状況をリアルタイムで反映します。改善するには、次の手順を実施してください。
- インシデントに速やかに対処します — CIF に影響する重大な可能性のあるインシデントや未分類の問題を解決します
- セキュリティ検知結果と脆弱性を修正します — インサイトを得るおよび検出された脆弱性を修正するにはどうすればよいですか?を参照してください
- ICT 資産の設定ミスを修正します — Security Posture Management でコンプライアンスを維持するを参照してください
- 監視範囲を確保します — すべての CIF でリアルタイム保護と監視が有効になっていることを確認します
スコアを改善すると、観測可能な ICT リスクが低下します。これは、正式なコンプライアンス適合や法的な準備が整ったことを意味するものではありません。
FAQ
Compliance Assistant の CIF インサイトはどのくらいの頻度で更新されますか?
CIF の KPI インサイト(fulfillment と errors)は、Business Flow で設定された KPI 監視の生成頻度に基づいて更新されます。評価期間も、ビジネスフローごとの設定で定義されます。
信頼性の高い KPI 評価を行い、長時間実行されるプロセスによるデータ欠落を避けるには、評価期間をプロセスの平均実行時間の 3~4 倍以上に設定してください。たとえば、CIF の平均実行時間が 5 分の場合、評価ウィンドウを少なくとも 15~20 分に設定します。
設定した CIF が更新されないのはなぜですか?
エンティティとして設定したビジネスプロセスを最近編集または追加し、Compliance Assistant で CIF として選択した場合、ビジネスプロセスが更新されるまで、定義された最大の監視頻度に達するまで時間がかかることがあります。遅延を短縮するには、ビジネスフローの設定で監視頻度を調整してください。