{
  "format": "agent-article-v0",
  "article_id": "EA-235",
  "canonical_url": "/tools/ea-235-policy-engine-opa-cedar",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EA-235-CURRENT-APPROVAL",
    "EA-235-CURRENT-BODY-READBACK"
  ],
  "unknown_ids": [
    "EA-235-UNKNOWN-01"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-05",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "CANDIDATE-EA235-FIRST-20261005-C2-RESCUE20261013",
    "BODY-SHA256:30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78"
  ],
  "article_sources": [
    {
      "id": "EA-235-CURRENT-APPROVAL",
      "evidence_class": "RESEARCH",
      "title": "現行本文の監査・revision対応",
      "supports": [
        "現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。"
      ],
      "limit": "監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "CANDIDATE-EA235-FIRST-20261005-C2-RESCUE20261013"
      ],
      "supporting_locators": [
        "1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ",
        "EA_REVISION_LEDGER!A38:U38",
        "EA-235-FIRST-20261005"
      ],
      "provenance_status": "CURRENT_CANONICAL_APPROVAL_READBACK"
    },
    {
      "id": "EA-235-CURRENT-BODY-READBACK",
      "evidence_class": "IMPL",
      "title": "現行本文の収録照合",
      "supports": [
        "公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。"
      ],
      "limit": "本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。",
      "checked_at": "2026-10-13",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "BODY-SHA256:30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78"
      ],
      "supporting_locators": [
        "content/staging/EA-235.md",
        "30df2973f1ac5ee3858e168d24e051e8a4762d5d0be8a9fd29ad3f46b10cff78",
        "EA-235-FIRST-20261005"
      ],
      "provenance_status": "CURRENT_APPROVED_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "PUBLIC_CLAIM",
      "text": "Agentのauthorizationをmodel instructionへ委ねません。OPA/RegoやCedarなどのPolicy Engineは、AIの外側でtool/action実行前にdecisionを行い、application/tool gatewayがそのdecisionを強制する構成で使用します。"
    },
    {
      "heading": "CONTROL_BOUNDARY",
      "text": "Policy Engineはdecision pointであり、単独ではenforcement pointではありません。trusted principal/workload identity、action/tool、resource、bounded context/current stateからauthorization requestを組み立て、deny/error/unknown/timeout時には実行しない経路を固定します。\n\nAgent自身にprincipal、resource、policy version、authorization resultを自由記述させ、その値を無検証でpolicy inputへ使う構成は避けます。"
    },
    {
      "heading": "OPA_REGO",
      "text": "OPAはpolicy decisionをapplicationから分離できますが、OPA serverのauthentication/authorizationは既定で有効ではありません。管理APIをnetworkへ露出する場合はserver authentication/authorizationを別途設定します。\n\nRegoのauthorization ruleは`default allow := false`等でdeny-by-defaultを明示し、undefined inputやpolicy errorをapplication側でallowへ変換しないようにします。\n\ndecision logsはdecision provenanceとdebugに利用できますが、inputを記録できるためsecret/PIIを含むfieldのredaction/minimizationが必要です。"
    },
    {
      "heading": "CEDAR",
      "text": "Cedarではprincipal/action/resource/contextとentity dataをauthorization requestとして評価します。schema validationはpolicyをschemaへ照合するpre-use validationであり、runtime authorization時にschemaが自動適用されるわけではありません。\n\napplicationはrequest/entity dataがschemaの前提へ適合するよう構築または明示的にvalidationします。schema変更後は既存policyを再検証し、policy evaluation errorや欠落entityをauthorization failure envelopeへ含めます。"
    },
    {
      "heading": "VERSION_AND_CHANGE_CONTROL",
      "text": "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を再実行します。\n\nLLMが生成したpolicyは未信頼candidateとして扱い、compile/validationだけでactivateしません。human-approved intent、deny/allow境界、negative tests、policy mutation test、rollbackを確認してから有効化します。"
    },
    {
      "heading": "HIGH_RISK_AGENT_ACTION",
      "text": "approvalからexecutionまで時間が空くwrite/actionでは、policy decision時のstateをそのまま再利用せず、必要に応じてexecution-time stateを再取得してauthorization/preconditionを再評価します。cached decisionをpolicy/state変更後も再利用しません。"
    },
    {
      "heading": "FAILURE_ENVELOPE",
      "text": "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不能を想定します。"
    },
    {
      "heading": "OPERATING_CHECK",
      "text": "最低限、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します。\n\naudit recordはrequest id、principal、action、resource、policy/bundle/schema/engine version、decision、error classをjoin可能にし、secret-bearing raw payloadを監査証跡へ残さない設計とします。"
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "本項は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は未検査です。"
    },
    {
      "heading": "SAFE_WORDING",
      "text": "「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時の再検証を分離して確認してください。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "対象engine/version/binding、policy corpus、identity source、policy distribution、tool gateway coverage、latency/failover、decision-log redaction、partial-evaluation利用、tenant residency、organization change-controlは未確認です。"
    },
    {
      "heading": "STOP_CONDITION",
      "text": "Policy EngineをAgentの外側のauthorization boundaryとして配置し、decisionとexecutionを必ず接続してください。tenant固有保証が必要な場合はpinned engineと実policy corpusによるsafe fixtureを追加します。"
    }
  ],
  "human_url": "/tools/ea-235-policy-engine-opa-cedar",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-235-policy-engine-opa-cedar",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-235-policy-engine-opa-cedar"
}