Claude Code、Cursor、Codex CLI、Gemini CLI を統制する
使用する適用面: コーディングアシスタントのフック 対応モード: Local Hosted Hybrid プラン: Free(個人) Teams(組織全体への登録)
実施すること
対応するアシスタントが、適用可能なフックを通じて公開しているシェル、ファイル、API の操作に、厳格なポリシーのガードレールを設けます。Claude Code、Gemini CLI、Cursor IDE、および Kiro CLI の直接のツール呼び出しでは、拒否は実行前に操作を決定論的にブロックします。
英語の原文 -- 翻訳は技術レビュー待ちです
Every event records its decision and event-level coverage in the audit trail.
このパスが適している理由
英語の原文 -- 翻訳は技術レビュー待ちです
- If your developers use Claude Code, Gemini CLI, Cursor IDE, or Kiro CLI and you want to stop
rm -rf, secret exfiltration, or production database writes, this is for you. Codex CLI also enforces covered interactive Bash events; its other event paths remain explicitly scoped in Enforcement Coverage.
- 自分自身を保護したい個人の開発者は、Local モードを使ってください。サインアップもアカウントも不要です。
英語の原文 -- 翻訳は技術レビュー待ちです
- If you are a Teams admin wanting the same policy across every laptop, enroll devices and deploy a signed, tamper-detecting policy bundle.
- Python または Node で独自の AI アプリを構築している場合は、代わりに 構築中の Python AI アプリを統制するまたは Node.js を参照してください。
- Claude 自身にツール呼び出しでポリシーの状態を管理させたい場合は、MCP サーバーを参照してください。
このアプローチを使うべきでない場合
コーディングフックが統制するのは、アシスタントのローカルでのツール利用です。次のものは統制しません。
- 本番環境でエージェントが行う API 呼び出し -> ゲートウェイを使用します。
- claude.ai や ChatGPT などのブラウザ UI でのチャットトラフィック -> ブラウザ拡張機能を使用します。
- エージェントがコミットしようとしているコード -> フックと CI ポリシースキャナーを組み合わせます。
5分でできるセットアップ
個人の開発者(Local モード)
英語の原文 -- 翻訳は技術レビュー待ちです
No signup. No account. Everything stays on your laptop.
pip install controlzero
controlzero install claude-code
期待される出力:
[Control Zero] Installed hook for Claude Code at ~/.config/claude-code/hooks/
[Control Zero] Default policy loaded from ~/.controlzero/policy.yaml
[Control Zero] Audit log: ~/.controlzero/audit.log
Claude Code を開き、ブロックされるアクションを試します。
> run rm -rf /
[Control Zero] Denied: destructive_shell_command matched rule "block_rm_rf"
Teams(組織全体への登録)
すでに Control Zero にサインインしている管理者のノートパソコンから実行します。
controlzero install claude-code --api-key cz_live_xxxxxxxxxxxx
英語の原文 -- 翻訳は技術レビュー待ちです
Or distribute via your MDM with CONTROLZERO_API_KEY pre-set in the environment. The hook pulls a signed policy bundle on startup and keeps it current.
動作の確認
-
監査ログを tail で追います。
tail -f ~/.controlzero/audit.log -
コーディングアシスタントで、任意のシェルコマンドを実行するよう依頼します。JSON イベントには、
decision: allowまたはdecision: deny、イベント単位の適用範囲、ツール名、引数(Claude Code または Gemini CLI では Python SDK を通じてマスクされます。それ以外のホストや Node フックでは、マスクルールは拒否として適用されます)、および一致したポリシールールが記録されます。対象イベントでの拒否は、コマンドが実行される前に停止します。 -
デバイスを登録した場合は、ダッシュボード -> Audit を開き、イベントが流入していることを確認します。
よくある次のステップ
- 「リポジトリ用のカスタムルールが欲しい」 -> ビジュアルポリシービルダー
- 「プロンプト内のシークレットをブロックしたい」 -> DLP カバレッジ
- 「これをチーム全体に広げるには?」 -> デバイスの登録
- 「CI でもポリシー違反をスキャンしたい」 -> CI ポリシースキャナー
- 「拒否されたときに Slack に通知したい」 -> アラートチャネル
リファレンス
- 適用面のページ: コーディングアシスタントのフック
- コンセプト: ポリシー、プロジェクト
- API: API リファレンス