ポリシーレシピ
ユーザーが最もよく直面するシナリオ向けの、コピー&ペーストで使えるポリシーです。このページのすべてのレシピは、次の形式になっています。
- 平易な言葉で書かれた、1 段落の課題の説明から始まります。
- 注釈付きの完全な
policy.yamlを提供します。ダッシュボードやローカルのcontrolzero.yamlにそのまま貼り付けられます。 - 何がブロックされ、何が許可されるかを、それぞれのケースで抽出されたアクションと
reason_codeとともに正確に示します。 - フィクスチャで検証される適用レシピには、CI で実行される機械可読の
scenarios.jsonファイルが含まれます。ウォークスルーのみのレシピには含まれない場合があります。
英語の原文 -- 翻訳は技術レビュー待ちです
On Claude Code, Gemini CLI, Cursor IDE, and Kiro CLI, a deny on an
enforcing event stops the tool call before it executes. Coverage is
declared per event, not per host, so an enforcing event never implies
protection for another event the vendor does not expose. The capability
matrix is derived from those declarations in the code; run
controlzero coverage --json to export them for your installation (a bare
controlzero coverage prints only a short per-host summary).
英語の原文 -- 翻訳は技術レビュー待ちです
The enforcement path fails closed by default when it cannot establish coverage. Signed policy bundles make policy tampering detectable, and the audit trail distinguishes a control that did not run from one that ran and found nothing. For modify-and-proceed DLP, the Python SDK masks matching secrets in place on Claude Code and Gemini CLI and returns the redacted arguments for forwarding.
初めての方は、Read-only database から始めてください。これは基本となる例で、多くのお客様が最初に組み込むものです。
提供中のレシピ
| # | レシピ | 解決すること |
|---|---|---|
| 1 | Read-only database | Agent can SELECT but never DROP. Piggyback-proof. |
| 2 | Block secrets and PII egress | LLM calls allowed, but API keys / SSNs / cards never leave. |
| 3 | Dev warns, prod denies | 1 つのポリシー、2 つの運用方針: dev ではソフト、prod ではハード。 |
| 4 | LLM model allow-list | Only the models you have vetted can be called. |
| 5 | Scoped file access | リポジトリと /tmp の読み書きは許可し、SSH キー、AWS 認証情報、/etc は拒否します。 |
| 6 | Block outbound network | Stop curl / wget / ssh / nc from exfiltrating data. |
| 7 | Multi-tenant isolation | Team A agents never touch Team B resources. |
| 8 | Tamper response | Four postures when the bundle is altered: warn, deny, deny-all, quarantine. |
| 9 | Deny-list: block the dangerous few | Let the agent work freely; hard-block only rm, DROP, disk wipes, and SSH-key writes. |
| 10 | Approval (HITL) for destructive actions | Green-light rm / DROP / TRUNCATE / DELETE / GRANT / REVOKE before they run; fail closed otherwise. |
| 15 | Prompt-level PII redaction | Python SDK のみ。対応するコーディングホストは Claude Code と Gemini CLI です。 |
COMING SOON
4 つのレシピは、開発中の機能、またはドキュメント化が必要な機能に依存しているため、保留になっています。優先してほしいものがある場合は、TODO-RECIPE-NN タグを添えてサポートまでご連絡ください。
| # | レシピ | 依存してい る機能 | 追跡 |
|---|---|---|---|
| 11 | Time-windowed access | 時間とプリンシパルの一致のための条件 DSL | TODO-RECIPE-11 |
| 12 | Alert on repeated denies | アラートルールビルダー(新機能) | TODO-RECIPE-12 |
| 13 | Git branch-scoped operations | シェルエクストラクタ(T4 -- 仕様は確定、SDK のコピーは作業中) | TODO-RECIPE-13 |
| 14 | Rate-limit per org | 機能は存在しますが、ドキュメント化と条件 DSL が必要です | TODO-RECIPE-14 |
レシピの形式
すべてのレシピのページは同じテンプレートに従っているため、素早く流し読みできます。
- 課題 -- ユーザーの言葉で書かれた 1 段落。
- ポリシー -- 完全な YAML。コピー&ペーストですぐに使えます。
- 仕組み -- どのエクストラクタが動き、どのルールが一致し、どの判定が発動するか。
- ブロックされるもの -- 抽出されたアクション、判定、
reason_codeの表。 - 許可されるもの -- 抽出されたアクション、判定、
reason_codeの表。 - 自分で試す -- 文書化されたシナリオに対する
controlzero testの実行例と、利用可能な場合は、上の表の根拠となるフィクスチャ。 - 注意事項 -- そのレシピがカバーしないもの。ギャップ を正直に示しているので、2 つ目のレシピやツールレイヤーの制御と組み合わせてください。
- 関連レシピ -- 次に必要になる可能性の高い 2、3 個のレシピ。
テストフィクスチャの仕組み
docs-site/docs/recipes/ にあるフィクスチャで検証される適用レシピには、メインリポジトリの tests/fixtures/enforcement-spec/recipes/{recipe-name}/ に対応するディレクトリがあります。
policy.yaml-- レシピに示されている YAML とバイト単位で同一です。scenarios.json--{input, expected}のケースの配列で、レシピごとに少なくとも allow が 1 つ、deny が 1 つ、すり抜けの試行が 1 つ、「デフォルトにフォールスルーする」ケースが 1 つ含まれます。
tests/fixtures/enforcement-spec/recipes/test_recipes.py のドライバーが、CI の実行のたびにすべてのレシピのディレクトリを走査し、判定、reason_code、抽出されたメソッドが期待値と一致することを検証します。レシピのページがコードの実際の動作と食い違うと、CI が失敗します。
レシピを追加する
レシピは単なるドキュメントのページではなく、製品としての表明です。書く前に、次のことを確認してください。
- 少なくとも 3 社のお客様から問い合わせのあった課題ですか?
- 現時点で、製品がそれを実際に適用できますか?
- 80% のケースに合う 1 つのポリシーがあり、残りの 20% については注意事項を書けますか?
3 つの答えがすべて「はい」であれば、上記の形式に従い、マークダウンファイルとフィクスチャのディレクトリの両方を同じ PR で追加してください。あとは CI のドライバーが処理します。
質問 2 の答えが「まだできない」であれば、サポートに連絡してください。ロードマップチームがギャップを登録し、新しい TODO-RECIPE-NN タグを付けて上の「COMING SOON」の表にレシピを追加し、そこで止めます。中途半端に動くレシピは、レシピがないよりも悪いものです。