Security postureのイベントをSIEMに送信する
Compliance APIのアクティビティフィードからSecurity postureのアクティビティを要求し、そのうちの1つをフィールドごとに読み解き、遅れて届くアクティビティも捕捉する定期的な読み取りでSIEMを最新の状態に保ちます。
このページでは、Compliance Access Keyを用意するところから、Security postureのアクティビティがセキュリティ情報イベント管理(SIEM)システムにイベントとして定期的に届くようになるまでを説明します。これらのアクティビティがある組織については、概要ページに記載されています。組織を対象とし、read:compliance_activitiesまたはread:org_auditスコープを持つCompliance Access Keyが必要です。
アクティビティを要求する
これらのアクティビティのみを読み取るには、activity_types[]でフィードを絞り込みます。このリクエストでは、created_at.gteで読み取る最も古いcreated_atを指定し、order=ascで最も古いアクティビティから順に返します。
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
-H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
-H "anthropic-version: 2026-10-21" \
--data-urlencode "activity_types[]=org_security_control_attestation_updated" \
--data-urlencode "created_at.gte=2026-10-20T00:00:00Z" \
--data-urlencode "order=asc" \
--data-urlencode "limit=5000"各パラメーターについてはAPIリファレンスAPI リファレンスへのリンクを含むプレビューを表示できます — カードにフォーカスが移るまで Tab キーを押します。戻るには Escape キーを押します。で説明しています。
アクティビティを1件読む
レスポンスのdata配列の各要素は、次のようなアクティビティです。
{
"id": "activity_01Hq7ZtYc4Vb2NmKx8RsPd3W",
"type": "org_security_control_attestation_updated",
"created_at": "2026-10-20T15:04:00.220114Z",
"organization_id": "org_01JuY4bkwkH1x4PodBJaWmh2",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"actor": {
"type": "user_actor",
"email_address": "jane.doe@example.com",
"user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
"ip_address": "192.0.2.34",
"user_agent": "Mozilla/5.0..."
},
"control": "directory_sync_enabled",
"action": "attested",
"status": "accepted_risk"
}controlは、推奨される1つの設定または運用であるセキュリティコントロールを示します。actionは、コントロールについて人が記録した言明であるそのコントロールの表明に何が起きたかを示します。ここでのattestedは、表明がなかったコントロールに表明が記録されたことを意味します。statusは表明の値です。ここではリスク受容(accepted_risk)で、コントロールは実施されておらず、組織がそのリスクを受け入れていることを示します。- ここでの
actorは、表明した人をユーザーIDとメールアドレスで識別します。 - ここでの
created_atは、その人が表明した日時です。
Security postureのイベントリファレンスに、さらに多くのフィールドと値が記載されています。
レスポンスが空の場合
空のdata配列は有効なレスポンスです。フィードには、その組織についてこれらのアクティビティの記録を開始して以降の変更のみが保持されます。表明が行われるか変更されるまで、フィードは空です。
組織にこれらのアクティビティがあることを確認してください。そのうえで、誰かにコントロールへの表明を行ってもらってください。しばらくしてから、リクエストを再度実行してください。
定期的に実行する
これらのアクティビティはいずれも、アクティビティフィードの通常1分のインデックス作成の遅延より遅れて、すでに過去のcreated_atを持った状態でクエリ可能になる可能性があります。そのため、カーソルや進んでいくcreated_at.gteで前方にのみ進む連携では、そのようなアクティビティを一切取得できません。実行のたびに4時間の固定の遡及期間を再読み取りし、すでに保存したアクティビティは破棄してください。
query = activity_types[]=org_security_control_attestation_updated
& created_at.gte={now - 4 hours}
& order=asc
& limit=5000
cursor = null
loop:
if cursor is null:
page = GET /v1/compliance/activities?{query}
else:
page = GET /v1/compliance/activities?{query}&after_id={cursor}
for activity in page.data:
if activity.id is not in stored_ids:
store(activity)
add activity.id to stored_ids
if not page.has_more: break
cursor = page.last_id- 頻繁に実行する: アラートに必要な頻度でループを実行します。たとえば5分ごとです。
- 実行全体で同じクエリを使用する: 各実行の開始時に、UTCでURLエンコードした
created_at.gteを計算します。すべてのページで同じフィルターとorderを送信します。order=ascの場合、last_idをafter_idとして渡すと、より新しいアクティビティの次のページが返されます。after_idとlast_idについては結果をページネーションするで説明しています。 idで重複排除する: 連続する実行は期間が重なるため、この手順は必須です。- 失敗した実行を処理する: Compliance APIのエラーを処理するに従って再試行してもリクエストが失敗した場合は、その実行を終了します。次の実行で、その期間全体を再度読み取ります。実行の失敗または停止が4時間を超えて続いた場合は、次の日次の再読み取りで、それらの実行で取りこぼしたアクティビティを読み取ります。
1日1回、15日間を再読み取りする
1日1回、4時間の代わりに15日間の遡及期間で同じループを実行します。この日次の再読み取りでは、created_atから最大14日後にクエリ可能になったアクティビティも読み取れます。
- 完了した各日次の再読み取りの開始時刻を記録します。
- 保存済みの
idは、記録された最新の開始時刻より16日を超えて前に保存した場合にのみ削除します。 - 開始時刻が記録されていない場合は、
created_at.gteを必要なだけ過去に遡って設定します。フィードはアクティビティを6年間保持します。 - 記録された最新の開始時刻から1日を超えて経過している場合は、
created_at.gteをその開始時刻の15日前に設定して次の日次の再読み取りを実行します。
すでにフィード全体を取り込んでいる場合
これらのアクティビティを除外するactivity_types[]フィルターを使わずにアクティビティフィード全体を読み取っている連携では、すでにこれらのアクティビティを受信しています。次の2点を確認してください。
- 認識できない値: ハンドラーが、認識できない
typeやフィールドの値をそのまま渡すこと。Activityオブジェクトを理解するを参照してください。 - 遅れて届くアクティビティ: より新しいアクティビティのみを要求する連携では、遅れてクエリ可能になったアクティビティを取りこぼします。連携に4時間の再読み取りと毎日の15日間の再読み取りを追加してください。
動作を確認する
誰かがコントロールに表明を行った後、新しいアクティビティが保存されるまでループを実行します。その後、もう一度実行します。そのアクティビティが2回目に保存されることはありません。
次のステップ
created_atではなく、アクティビティを保存した時刻に基づいてアラートを出すには、Security postureの変更を検出するを参照してください。Open Cybersecurity Schema Framework(OCSF)については、Security postureのイベントをOCSFにマッピングするを参照してください。現在の結果については、Security postureの結果リファレンスを参照してください。
このページは役に立ちましたか?