Policy Engine実装:OPA/Cedar
記事状態: 公開 · 最終確認: 2026-10-05
要点
Agentの認可をモデル instructionへ委ねません。OPA/RegoやCedarなどのPolicy Engineは、AIの外側でツール/action実行前にdecisionを行い、アプリケーション/ツール gatewayがそのdecisionを強制する構成で使用します。
現在の判断
Agentの認可をモデル instructionへ委ねません。OPA/RegoやCedarなどのPolicy Engineは、AIの外側でツール/action実行前にdecisionを行い、アプリケーション/ツール gatewayがそのdecisionを強制する構成で使用します。
どこまで当てはまるか
Policy Engine実装:OPA/Cedar
詳しく理解する
CONTROL BOUNDARY
Policy Engineはdecision pointであり、単独では強制的な適用 pointではありません。trusted 操作主体/workload 主体の識別、action/ツール、resource、bounded 文脈・入力情報/現在の 状態から認可 requestを組み立て、deny/error/未確認事項/処理待ち時間の上限時には実行しない経路を固定します。
Agent自身に操作主体、resource、policy バージョン、認可 resultを自由記述させ、その値を無検証でpolicy inputへ使う構成は避けます。
OPA REGO
OPAはpolicy decisionをアプリケーションから分離できますが、OPA serverのauthentication/認可は既定で有効ではありません。管理APIをnetworkへ露出する場合はserver authentication/認可を別途設定します。
Regoの認可 ruleはdefault allow := false等でdeny-by-defaultを明示し、undefined inputやpolicy errorをアプリケーション側でallowへ変換しないようにします。
decision logsはdecision 出典・来歴とdebugに利用できますが、inputを記録できるため秘密情報/PIIを含むfieldの機密情報の削除・伏せ字化/minimizationが必要です。
CEDAR
Cedarでは操作主体/action/resource/文脈・入力情報とentity dataを認可 requestとして評価します。データ形式の検証はpolicyをデータ形式の定義へ照合するpre-use 妥当性の検証であり、実行環境 認可時にデータ形式の定義が自動適用されるわけではありません。
アプリケーションはrequest/entity dataがデータ形式の定義の前提へ適合するよう構築または明示的に妥当性の検証します。データ形式の定義変更後は既存policyを再検証し、policy 評価 errorや欠落entityを認可 失敗 envelopeへ含めます。
VERSION AND CHANGE CONTROL
policy、bundle/データ形式の定義、engine、language/実行環境 対応付けのバージョンをdecision 出典・来歴へ残します。OPA/Cedarはいずれも公開・提供や対応付けによって妥当性の検証・実行環境・partial-evaluation 利用機能・接続経路が変わり得るため、upgrade時はpinned 意味上の 検索対象の文書群とnegative testsを再実行します。
LLMが生成したpolicyは未信頼candidateとして扱い、compile/妥当性の検証だけでactivateしません。human-approved intent、deny/allow境界、negative tests、policy mutation test、以前の状態へ戻す操作を確認してから有効化します。
HIGH RISK AGENT ACTION
承認から実行まで時間が空く書込み/actionでは、policy decision時の状態をそのまま再利用せず、必要に応じてexecution-time 状態を再取得して認可/実行前の条件を再評価します。cached decisionをpolicy/状態変更後も再利用しません。
OPERATING CHECK
最低限、未確認事項 操作主体/action/resource、missing 主体の識別、malformed 文脈・入力情報、要再確認 policy バージョン、engine error/処理待ち時間の上限が実行へ進まないことを検査します。policy/データ形式の定義更新後のrevalidationと、high-risk delayed actionのexecution-time recheckもtestします。
監査 recordはrequest id、操作主体、action、resource、policy/bundle/データ形式の定義/engine バージョン、decision、error classをjoin可能にし、secret-bearing raw payloadを監査証跡へ残さない設計とします。
実装・運用
本項は2026-10-05時点のOPA/Cedar公式資料、maintainer issue/公開・提供、独立公開・提供 reproduction、一次研究に基づくdesk researchです。OPA 1.21.1/Cedar 4.13のlive binary、組織 policy 検索対象の文書群、本番環境 ツール gatewayは未検査です。
よくある失敗・反証
強制的な適用 bypass、未保護ツール、model-controlled 主体の識別/resource、allow-on-error、処理待ち時間の上限、要再確認 bundle/policy、バージョン migration、malformed input、undefined value、データ形式の定義 drift、missing entity、評価 error、対応付け差、partial-evaluation制約、誤ったpolicy synthesis、TOCTOU、sensitive decision log、以前の状態へ戻す操作不能を想定します。
Policy EngineをAgentの外側の認可 適用限界として配置し、decisionと実行を必ず接続してください。組織の利用環境固有保証が必要な場合はpinned engineと実policy 検索対象の文書群によるsafe fixtureを追加します。
実務での使い方
本項は2026-10-05時点のOPA/Cedar公式資料、maintainer issue/公開・提供、独立公開・提供 reproduction、一次研究に基づくdesk researchです。OPA 1.21.1/Cedar 4.13のlive binary、組織 policy 検索対象の文書群、本番環境 ツール gatewayは未検査です。
まだ確認できていないこと
- EA-235-UNKNOWN-01
対象engine/バージョン/対応付け、policy 検索対象の文書群、主体の識別 出典、policy distribution、ツール gateway coverage、latency/failover、decision-log 機密情報の削除・伏せ字化、partial-evaluation利用、組織の利用環境 residency、組織 change-controlは未確認です。
根拠資料
この記事には、直接開ける外部出典が登録されていません。出典IDや検証情報は末尾で確認できます。
更新履歴
EA-235-FIRST-20261005: 正式な 監査/publication 対応付け
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-235
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
PUBLIC_CLAIM
Agentのauthorizationをmodel instructionへ委ねません。OPA/RegoやCedarなどのPolicy Engineは、AIの外側でtool/action実行前にdecisionを行い、application/tool gatewayがそのdecisionを強制する構成で使用します。
CONTROL_BOUNDARY
Policy Engineはdecision pointであり、単独ではenforcement pointではありません。trusted principal/workload identity、action/tool、resource、bounded context/current stateからauthorization requestを組み立て、deny/error/unknown/timeout時には実行しない経路を固定します。
Agent自身にprincipal、resource、policy version、authorization resultを自由記述させ、その値を無検証でpolicy inputへ使う構成は避けます。
OPA_REGO
OPAはpolicy decisionをapplicationから分離できますが、OPA serverのauthentication/authorizationは既定で有効ではありません。管理APIをnetworkへ露出する場合はserver authentication/authorizationを別途設定します。
Regoのauthorization ruleはdefault allow := false等でdeny-by-defaultを明示し、undefined inputやpolicy errorをapplication側でallowへ変換しないようにします。
decision logsはdecision provenanceとdebugに利用できますが、inputを記録できるためsecret/PIIを含むfieldのredaction/minimizationが必要です。
CEDAR
Cedarではprincipal/action/resource/contextとentity dataをauthorization requestとして評価します。schema validationはpolicyをschemaへ照合するpre-use validationであり、runtime authorization時にschemaが自動適用されるわけではありません。
applicationはrequest/entity dataがschemaの前提へ適合するよう構築または明示的にvalidationします。schema変更後は既存policyを再検証し、policy evaluation errorや欠落entityをauthorization failure envelopeへ含めます。
VERSION_AND_CHANGE_CONTROL
policy、bundle/schema、engine、language/runtime bindingのversionをdecision provenanceへ残します。OPA/Cedarはいずれもreleaseやbindingによってvalidation・runtime・partial-evaluation surfaceが変わり得るため、upgrade時はpinned semantic corpusとnegative testsを再実行します。
LLMが生成したpolicyは未信頼candidateとして扱い、compile/validationだけでactivateしません。human-approved intent、deny/allow境界、negative tests、policy mutation test、rollbackを確認してから有効化します。
HIGH_RISK_AGENT_ACTION
approvalからexecutionまで時間が空くwrite/actionでは、policy decision時のstateをそのまま再利用せず、必要に応じてexecution-time stateを再取得してauthorization/preconditionを再評価します。cached decisionをpolicy/state変更後も再利用しません。
FAILURE_ENVELOPE
enforcement bypass、未保護tool、model-controlled identity/resource、allow-on-error、timeout、stale bundle/policy、version migration、malformed input、undefined value、schema drift、missing entity、evaluation error、binding差、partial-evaluation制約、誤ったpolicy synthesis、TOCTOU、sensitive decision log、rollback不能を想定します。
OPERATING_CHECK
最低限、unknown principal/action/resource、missing identity、malformed context、stale policy version、engine error/timeoutが実行へ進まないことを検査します。policy/schema更新後のrevalidationと、high-risk delayed actionのexecution-time recheckもtestします。
audit recordはrequest id、principal、action、resource、policy/bundle/schema/engine version、decision、error classをjoin可能にし、secret-bearing raw payloadを監査証跡へ残さない設計とします。
IMPLEMENTATION_STATE
本項は2026-10-05時点のOPA/Cedar公式資料、maintainer issue/release、独立release reproduction、一次研究に基づくdesk researchです。OPA 1.21.1/Cedar 4.13のlive binary、organization policy corpus、production tool gatewayは未検査です。
SAFE_WORDING
「OPA/Cedarを導入した」「policyがcompile/validateした」「Agentへ禁止事項を指示した」のいずれも、単独ではauthorization correctnessの証明になりません。trusted input、default-deny/fail-closed、全execution pathでのenforcement、version pin、semantic/negative tests、decision provenance、change時の再検証を分離して確認してください。
OPEN_UNKNOWN
対象engine/version/binding、policy corpus、identity source、policy distribution、tool gateway coverage、latency/failover、decision-log redaction、partial-evaluation利用、tenant residency、organization change-controlは未確認です。
STOP_CONDITION
Policy EngineをAgentの外側のauthorization boundaryとして配置し、decisionとexecutionを必ず接続してください。tenant固有保証が必要な場合はpinned engineと実policy corpusによるsafe fixtureを追加します。
EA-235-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- CANDIDATE-EA235-FIRST-20261005-C2-RESCUE20261013
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A38:U38 · EA-235-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-235-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-13
- 出典・実験ID
- BODY-SHA256:30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78
- 検証箇所
- content/staging/EA-235.md · 30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78 · EA-235-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
- 出典ID
- CANDIDATE-EA235-FIRST-20261005-C2-RESCUE20261013, BODY-SHA256:30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78
- 追跡中のUNKNOWN ID
- EA-235-UNKNOWN-01
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。