Security postureの結果リファレンス
組織の現在のSecurity postureの結果を返すCompliance APIのエンドポイントについて、リクエスト、レスポンスのフィールド、各ステータスの意味、エラーを確認できます。
このエンドポイントは、組織のセキュリティコントロールの大部分について、それぞれ1つのエントリを返します。各エントリはリクエスト時点で評価され、そのコントロールについてレスポンスに表示されるSecurity postureの表明を含みます。その組織を対象とし、read:compliance_org_dataまたはread:org_auditスコープを持つCompliance Access Keyが必要です。どの組織を読み取れるかについては、Security postureの利用可能性を参照してください。
リクエスト
/v1/compliance/organizations/{organization_id}/security_postureにGETリクエストを送信します。各呼び出しは1つの組織を読み取り、レスポンスはページネーションされません。
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/security_posture" \
-H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
-H "anthropic-version: 2026-10-21"| 項目 | ルール |
|---|---|
organization_id | 組織を一覧表示するで取得したリンクされた組織のuuidです。それ以外の値では404が返されます。 |
| キー | 親組織のキーはリンクされたどの組織でも指定でき、単一組織のキーはその組織のみを指定できます。 |
anthropic-version | 必須です。これがないリクエストでは400が返されます。 |
| クエリパラメータ | ありません。いずれかのクエリパラメータを含むリクエストでは400が返されます。 |
レスポンス
以下の抜粋例は、レスポンスに含まれうるコントロールのうち4つを示しています。これはread:compliance_org_dataとread:compliance_user_dataを保持するキーに対するレスポンスです。
{
"type": "security_posture",
"organization_id": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"evaluated_at": "2027-02-09T09:00:02.417305Z",
"comments_status": "not_enabled",
"controls": [
{
"id": "sso_enabled",
"display_name": "Single sign-on (SSO)",
"section": "identity_access",
"setting_name": "sso_enabled",
"status": "passed",
"rating": "passed",
"current_value": "On",
"desired_state": "On",
"attestation": null
},
{
"id": "directory_sync_enabled",
"display_name": "Directory sync (SCIM)",
"section": "identity_access",
"setting_name": "directory_sync_enabled",
"status": "failed_check_accepted_risk",
"rating": "passed",
"current_value": "Off",
"desired_state": "On",
"attestation": {
"state": "in_force",
"attested_at": "2026-10-20T15:04:00.220114Z",
"comment": null,
"attested_by": {
"type": "user_actor",
"user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
}
}
},
{
"id": "allowed_invite_domains",
"display_name": "Allowed email domains",
"section": "identity_access",
"setting_name": "allowed_invite_domains",
"status": "descriptive",
"rating": "descriptive",
"current_value": "example.com",
"desired_state": null,
"attestation": null
},
{
"id": "oauth_conditional_access",
"display_name": "OAuth conditional access on connected SaaS",
"section": "connectors_integrations",
"setting_name": null,
"status": "not_attested",
"rating": "not_attested",
"current_value": null,
"desired_state": "Completed",
"attestation": {
"state": "review_due",
"attested_at": "2026-11-02T09:30:00.008771Z",
"comment": null,
"attested_by": {
"type": "user_actor",
"user_id": "user_01AbCdEfGhJkLmNpQrStUvWx"
}
}
}
]
}すべてのフィールドは常に存在し、値のないフィールドは省略されずnullになります。時刻の小数部は0桁または6桁のいずれかであるため、時刻は文字列としてではなく時刻として比較してください。
トップレベルのフィールド
| フィールド | 型 | 説明 |
|---|---|---|
type | 文字列 | 常にsecurity_postureです。 |
organization_id | 文字列 | 組織のUUIDです。 |
evaluated_at | 文字列(RFC 3339、UTC) | すべてのコントロールが評価された時刻です。 |
comments_status | 文字列 | 表明のコメントが読み取られたかどうかです。表明者とコメントを参照してください。 |
controls | オブジェクトの配列 | 組織のコントロールです。空になることはありません。 |
controls[]のフィールド
| フィールド | 型 | 説明 |
|---|---|---|
id | 文字列 | コントロールの識別子です。すべての組織で同じで、変更されることはありません。 |
display_name | 文字列 | コントロールの表示名です。英語の表示テキストであり、文言は変更される可能性があります。 |
section | 文字列 | コントロールが属するセクションで、この表の後に挙げる10のセクションのいずれかです。値が追加される可能性があるため、不明な値はそれ自体で独立したセクションとして扱ってください。 |
setting_name | 文字列またはnull | このコントロールが読み取る、組織の有効な設定内のエントリのnameです。そのようなエントリを読み取らない場合はnullです。 |
status | 文字列 | コントロールの結果の理由です。ステータス値を参照してください。 |
rating | 文字列 | statusから決まるコントロールの結果です。ステータス値を参照してください。 |
current_value | 文字列またはnull | 現在の値です。英語の表示テキストであり、文言は変更される可能性があります。手動コントロールの場合、または値が読み取られなかった場合はnullです。 |
desired_state | 文字列またはnull | 推奨値です。英語の表示テキストであり、文言は変更される可能性があります。この組織に推奨値がない場合はnullです。 |
attestation | オブジェクトまたはnull | レスポンスに表示される表明で、表明が有効でない間も表示されます。statusがdescriptive、not_applicable、not_evaluatedである間、およびこれらのケースではnullです。 |
sectionは、identity_access、data_privacy、capabilities、connectors_integrations、chats_desktop_mdm、cowork_admin_console、cowork_desktop_mdm、claude_code_admin_console、claude_code_managed_settings、healthy_adoptionのいずれかです。
コードで値を比較するには、同じ組織の有効な設定でsetting_nameを検索してください。検索で何も見つからない可能性があり、また2つのコントロールが1つのsetting_nameを共有する可能性もあります。
attestationのフィールド
| フィールド | 型 | 説明 |
|---|---|---|
state | 文字列 | 表明が有効かどうかです。表明の状態を参照してください。 |
attested_at | 文字列(RFC 3339、UTC) | 表明が行われた日時です。 |
comment | 文字列またはnull | 表明とともに保存されたコメントで、2,000文字以下です。コメントがない場合、またはcomments_statusがavailableでない場合はnullです。 |
attested_by | オブジェクトまたはnull | 表明した人物です。キーがread:compliance_user_dataとread:org_auditのいずれも保持していない場合、その人物のアカウントが削除済みか削除中の場合、またはエンドポイントが表明した人物を組織について返さない場合はnullです。 |
attested_byのフィールド
| フィールド | 型 | 説明 |
|---|---|---|
type | 文字列 | 常にuser_actorです。 |
user_id | 文字列 | ユーザーのIDで、user_で始まります。 |
ステータス値
statusはコントロールの結果の理由を示し、各ステータスには1つのratingが対応します。
status | コントロールの種類 | 意味 | rating | ページ上の表示 |
|---|---|---|---|---|
passed | 自動 | 現在の値が推奨値を満たしています。 | passed | 合格 |
matches_profile | 自動 | 現在の値が推奨値と等しくなっています。 | passed | 合格 |
exceeds_baseline | 自動 | 現在の値が推奨値より厳格です。 | passed | 合格 |
failed_check_accepted_risk | 自動 | 自動チェックが失敗しており、リスク受容が有効です。 | passed | 合格 |
failed | 自動または手動 | 現在の値が推奨値を満たしていないか、レスポンスで省略される表明によってこの結果になっています。 | failed | 不合格、または完了の表明が有効な場合は合格 |
review | 自動 | 現在の値が推奨値より緩くなっています。 | failed | 不合格 |
attested_completed | 手動 | 値が完了(completed)の表明が有効です。 | passed | 合格 |
attested_accepted_risk | 手動 | 値がリスク受容(accepted_risk)の表明が有効です。 | passed | 合格 |
not_attested | 手動 | 有効な表明がありません。 | not_attested | 未表明 |
attestation_not_enabled | 手動 | 誰もこのコントロールについて表明できません。 | not_attested | 参考情報 |
descriptive | 参考情報 | コントロールは報告されますが、合否は判定されません。 | descriptive | 参考情報 |
not_applicable | いずれか | コントロールは組織に適用されません。 | descriptive | 参考情報 |
not_evaluated | いずれか | 設定、またはコントロールが適用されるかどうかを決める別の設定を読み取れませんでした。 | descriptive | 参考情報 |
コントロールの種類を示すフィールドはありません。failedの場合、current_valueがnullであれば手動コントロールです。値が追加される可能性があるため、不明なstatusを持つコントロールはそのratingで集計し、不明なratingは合格として扱わないでください。ステータスreviewと表明の状態review_dueは関係ありません。
表明の状態
stateは、レスポンスに表示される表明が有効かどうかを示します。
state | 意味 |
|---|---|
in_force | 表明が有効です。 |
review_due | 終了日が到来しました。 |
setting_changed | リスクを受容した値とは別の値でチェックが失敗しているか、リスク受容がすでに終了したものとして記録されています。 |
check_passing | チェックが成功しているため、受容すべきリスクはありません。 |
複数の理由が当てはまる場合、レスポンスはcheck_passing、setting_changed、review_dueのうち最初に該当するものを返します。表明は終了日の00:00 UTCから有効ではなくなります。レスポンスには終了日が含まれないため、stateによって判断します。保存された終了日は、表明のアクティビティのreview_dateです。不明なstateは有効でないものとして扱ってください。
表明がレスポンスにどのように表示されるか
レスポンスは一部の表明を表示し、それ以外を省略するため、attestationがnullであっても誰も表明していないことの証明にはなりません。
| コントロールの種類 | 表明の値 | status | rating | attestation |
|---|---|---|---|---|
| 手動 | 表明なし | not_attested、または誰も表明できない場合はattestation_not_enabled | not_attested | null |
| 手動 | 完了 | attested_completed | passed | 表示される |
| 手動 | リスク受容 | attested_accepted_risk | passed | 表示される |
| 手動 | 不合格(control_failed) | failed | failed | null:表示されることはない |
| 自動、チェック失敗 | 表明なし | failedまたはreview | failed | null |
| 自動、チェック失敗 | リスク受容 | failed_check_accepted_risk | passed | 表示される |
| 自動、チェック失敗 | 完了 | failed(自動チェックがreviewを返す場合でも) | failed | null:表示されることはない |
| 自動、チェック失敗 | 不合格 | 自動チェックが返すstatus | failed | null:表示されることはない |
| 自動、チェック成功 | 表明なし | passed、matches_profile、またはexceeds_baseline | passed | null |
| 自動、チェック成功 | 完了 | 自動チェックが返すstatus | passed | null:表示されることはない |
| 自動、チェック成功 | リスク受容 | 自動チェックが返すstatus | passed | 受容した値でチェックが成功している間はnull |
| 自動、チェック成功 | 不合格 | failed | failed | null:表示されることはない |
| 参考情報 | いずれかの値 | descriptive | descriptive | null:表示されることはない |
| いずれか(表明が有効でない間) | 前の行で表示される値 | 表明なしの場合と同じ | 表明なしの場合と同じ | 表示される(stateはin_force以外) |
| いずれか(表明が有効でない間) | 前の行で省略される値 | 表明なしの場合と同じ | 表明なしの場合と同じ | null |
最後の2行を除く各行は、表明が有効である間に当てはまります。自動コントロールでは、チェックが読み取る値が表明の保存時の値と異なっている間、表明は有効ではありません。自動コントロールでレスポンスに表示される表明は、すべてリスク受容です。アクティビティフィードには、レスポンスで省略される種類の表明も記録されます。
結果を集計する
ratingでコントロールを集計する際は、4つの点を確認してください。
| 集計対象 | あわせて確認する点 |
|---|---|
合格(passed) | リスク受容が有効なすべてのコントロールが含まれるため、failed_check_accepted_riskとattested_accepted_riskを確認してください。 |
不合格(failed) | 不合格(control_failed)として表明されたコントロールと、完了の表明が有効な状態で失敗している自動チェックが含まれます。後者はSecurity postureのページでは合格として表示されます。 |
参考情報(descriptive) | 読み取れなかったコントロールが紛れている可能性があるため、not_evaluatedを確認してください。 |
| すべてのコントロール | レスポンスに含まれないコントロールは合格として扱われず、名前も示されないため、idの値をその組織についてこれまでに確認した値と比較してください。 |
表明者とコメント
attested_byは、read:compliance_user_dataをread:compliance_org_dataとあわせて保持するキー、またはread:org_auditを保持するキーの場合にのみ値が入ります。read:compliance_user_dataのみを持つキーでは403が返されます。attested_byのuser_idは、表明のアクティビティにおけるactorのuser_idと同じです。attested_byにはユーザーIDのみが含まれます。現在の各メンバーの名前とメールアドレスは、組織のユーザーを一覧表示するで取得できます。これらのスコープを追加する前に、誰が表明したかを確認できる人を参照してください。
このエンドポイントはSecurity postureページにコメントが表示されている場合でもコメントを返しません。すべてのcommentはnullで、comments_statusはnot_enabledまたはnot_permittedです。そのため、comments_statusがnot_enabledであることやcommentがnullであることは、表明にコメントがないことを意味するものではありません。comments_statusは、nullのコメントをどのように解釈するかを示し、スキーマではこれらの値が定義されています。
comments_status | 意味 |
|---|---|
not_permitted | APIキーがread:compliance_user_dataとread:org_auditのいずれも保持していないため、すべてのcommentとすべてのattested_byがnullです。 |
requires_organization_key | APIキーが、親組織のキーなど、この組織で作成されていないキーであるため、すべてのcommentがnullです。再試行しても解決しません。 |
available | コメントが読み取られたため、nullのコメントは、コメントがないか、直前に保存されたことを意味します。 |
not_enabled | このエンドポイントはこの組織のコメントを返さないため、すべてのcommentがnullです。 |
unavailable | このレスポンスではコメントを読み取れませんでした。後のリクエストは成功する可能性がありますが、原因によっては顧客が対処するまで続くものもあります。 |
値が追加される可能性があります。不明な値はunavailableとして扱ってください。
エラー
エラーはCompliance APIの他の部分と同じ本文を使用します。この表には、このエンドポイントが固有の方法で返すエラーを示します。
ステータスとerror.type | 発生する状況 | 対処方法 |
|---|---|---|
400 invalid_request_error | anthropic-versionがないか無効である、親組織でCompliance APIが有効になっていない、またはクエリパラメータがある場合。 | error.messageが示す問題を修正してください。 |
401 authentication_error | キーがない、認識されない、またはCompliance Access KeyでもAdmin APIキーでもない場合。 | x-api-keyで有効なCompliance Access Keyを送信してください。 |
403 permission_error | キーがこのエンドポイントを呼び出すことを許可されていない場合。通常はread:compliance_org_dataとread:org_auditのいずれも持っていないためです。 | いずれかのスコープを持つキーを使用してください。 |
404 not_found_error | この表の後に記載されている原因を参照してください。 | すぐに再試行せず、不合格のコントロールがないという意味には決して解釈しないでください。 |
429 rate_limit_error | 共有のCompliance APIのレート制限、またはこのエンドポイントのより低い制限を使い切った場合。どちらであるかはerror.messageに示されます。 | retry-afterの間待機してください。429 Too Many Requestsを参照してください。 |
503 overloaded_error(error.details.error_codeがposture_evaluation_failed) | 結果を生成できなかった場合。 | retry-afterの間待機してから再試行してください。以降の実行でも1つの組織で繰り返し発生する場合は、Anthropicサポートに一度連絡してください。 |
503(error_codeなし)、または504 timeout_error | 一時的な障害です。 | 指数バックオフで再試行してください。 |
404の原因:
organization_idがUUIDではない、どの組織も指していない、または削除済みの組織を指している。organization_idが、親組織、別の親の下にある組織、または単一組織のキーが対象としない組織を指している。- 組織がClaude Enterpriseではない、またはClaude Consoleの組織のように、その組織でSecurity postureを利用できない。
- 組織に対してSecurity postureページがオフにされている(Security postureの利用可能性を参照)。
- 組織でSecurity postureを利用できるが、エンドポイントがその組織に対応していない。
- 利用可能性を確認できなかった。後のリクエストは成功する可能性がある。
すべての404は同じ本文を持ち、存在しないパスの場合も同様です。
鮮度と副作用
エンドポイントは呼び出し時にすべてのコントロールを評価し、evaluated_atはその時刻です。
- 直近数分間の変更は反映されない可能性があります。
- 設定が変更されていなくても、結果が変わる可能性があります。たとえば、終了日が到来した場合や、Anthropicが推奨値を変更した場合です。
- Anthropicが現在の値の文言を変更した場合、その値に対するリスク受容は有効ではなくなります。
- 呼び出しによって結果が保存されることはなく、表明が終了することもありません。
- キー、スコープ、バージョンのチェックを通過し、クエリパラメータを含まない各リクエストは、成功・失敗にかかわらず
compliance_api_accessedアクティビティを1件記録します。そのurlは読み取られた組織を示し、親組織のキーの場合organization_uuidはnullです。
このページは役に立ちましたか?