openclaw policy
openclaw policy は、バンドルされた Policy Plugin によって提供されます。これは既存の OpenClaw 設定の上にあるエンタープライズ向けの適合性レイヤーであり、第二の設定システムではありません。要件は policy.jsonc に記述します。OpenClaw はアクティブなワークスペースを証拠として観測し、ポリシーは doctor --lint を通じてドリフトを報告します。Policy はリクエスト時にツール呼び出しを強制したりランタイム動作を書き換えたりせず、auth-profiles.json のようなエージェントごとの認証情報ストアを証明することもありません。
Policy は、設定済みチャンネル、MCP サーバー、モデルプロバイダー、ネットワーク SSRF の姿勢、イングレス/チャンネルアクセス、Gateway の公開状態とノードコマンドの姿勢、エージェントのワークスペースアクセス、サンドボックスの姿勢、データ処理の姿勢、シークレットプロバイダー/auth プロファイルの姿勢、管理対象ツールメタデータ(TOOLS.md)をチェックします。ワークスペースに「Telegram を有効にしてはならない」や「管理対象ツールはリスクと所有者メタデータを宣言しなければならない」のような、永続的で検査可能なステートメントが必要な場合に使用します。証明やドリフト検出を伴わないローカル動作だけが必要な場合は、通常の設定で十分です。
クイックスタート
policy.jsonc が存在しない場合でも Plugin は有効なままなので、doctor はチェックを暗黙にスキップするのではなく、不足している成果物を報告できます。
policy.jsonc は手作業で作成します。現在の設定から生成されるものではありません。各トップレベルセクションはルール名前空間です。具体的なルールがその配下に存在する場合にのみチェックが実行されます(サポートされていないセクションやキーは、暗黙に無視されるのではなく policy/policy-jsonc-invalid として失敗します)。サポートされるすべてのセクションを網羅する最小例:
- 非 local loopback バインドを拒否しつつ
gateway.bindを省略する場合、ランタイムのデフォルトを受け入れることを意味します。厳密な適合性にはgateway.bind: "loopback"を設定してください。 - 読み取り専用エージェントの場合は、該当するデフォルト/エージェントでサンドボックス
modeをallまたはnon-mainに設定し、workspaceAccessをnoneまたはroに設定します。サンドボックスモードが未設定またはoffの場合、読み取り専用ポリシーは満たされません。 agents.workspace.denyToolsはexec、process、write、edit、apply_patchを受け入れます。設定のツール拒否グループgroup:fs(ファイル変更)とgroup:runtime(シェル/プロセス)は、同等の姿勢を満たします。- Exec 承認チェックは、
execApprovalsルールが存在する場合にのみ、実際のexec-approvals.json成果物を読み取ります。成果物が存在しない、または無効な場合、それは観測不能な証拠であり、合成された合格ではありません。 - シークレットと auth プロファイルの証拠は、プロバイダー/ソースの姿勢と SecretRef メタデータのみを記録し、生の値は記録しません。Policy は
auth-profiles.jsonのようなエージェントごとの認証情報ストアを読み取ったり証明したりしません。 - データ処理の証拠は、設定レベルの姿勢のみです(秘匿化モード、テレメトリ取得トグル、セッションメンテナンスモード、トランスクリプトインデックス設定)。ログ、テレメトリエクスポート、トランスクリプト、メモリファイルは検査しません。また、クリーンな結果は、それらに個人データやシークレットが存在しないことを証明するものではありません。
ポリシールールリファレンス
以下のすべてのルールは任意です。ルールが存在する場合にのみチェックが実行されます。観測される状態は、既存の OpenClaw 設定またはワークスペースメタデータです。スコープ付きオーバーレイ
特定のエージェントやチャンネルにトップレベルのベースラインより厳格なポリシーが必要な場合は、scopes.<scopeName> を使用します。スコープ名は単なるラベルです。マッチングにはスコープ内のセレクターが使われます。オーバーレイは加算的です。グローバルルールは引き続き実行され、スコープ付きルールは同じ証拠に対して独自の検出結果を追加できます。
| セレクター | サポートされるセクション | 使用する場面 |
|---|---|---|
agentIds | tools, agents.workspace, sandbox, dataHandling.memory, execApprovals | 1 つ以上のランタイムエージェントに、より厳格なルールが必要な場合。 |
channelIds | ingress.channels | 1 つ以上のチャンネルに、より厳格なイングレスルールが必要な場合。 |
agentIds エントリが agents.list[] に存在しない場合、OpenClaw はそのスコープ付きルールをスキップするのではなく、そのランタイムエージェント ID について継承されたグローバル/デフォルトの姿勢に対して評価します。
sandbox.containers.*)は、マッチしたエージェントのサンドボックスバックエンドが公開できる証拠に対してのみチェックされます。有効化したルールをバックエンドが観測できない場合、ポリシーは合格にするのではなく policy/sandbox-container-posture-unobservable を報告します。コンテナルールは、それを公開できるバックエンドを使うエージェントグループにスコープしてください。
トップレベルの ingress.session.requireDmScope はグローバルのままです。session.dmScope はチャンネルに帰属できる証拠ではないため、channelIds でスコープできません。
policy.jsonc に存在するすべてのスコープは、有効かつ強制可能でなければなりません。
チャンネル
| ポリシーフィールド | 観測される状態 | 使用する場面 |
|---|---|---|
channels.denyRules[].when.provider | channels.* のプロバイダーと有効状態 | telegram などのプロバイダーから設定済みチャンネルを拒否します。 |
channels.denyRules[].reason | 検出メッセージと修復ヒントのコンテキスト | プロバイダーが拒否される理由を説明します。 |
MCP サーバー
| ポリシーフィールド | 観測される状態 | 使用する場面 |
|---|---|---|
mcp.servers.allow | mcp.servers.* IDs | 設定済みのすべての MCP サーバーが allowlist に含まれることを要求します。 |
mcp.servers.deny | mcp.servers.* IDs | 特定の設定済み MCP サーバー ID を拒否します。 |
モデルプロバイダー
| ポリシーフィールド | 観測される状態 | 使用する場面 |
|---|---|---|
models.providers.allow | models.providers.* IDs と選択されたモデル参照 | 設定済みプロバイダーと選択されたモデル参照が承認済みプロバイダーを使用することを要求します。 |
models.providers.deny | models.providers.* IDs と選択されたモデル参照 | プロバイダー ID によって、設定済みプロバイダーと選択されたモデル参照を拒否します。 |
ネットワーク
| ポリシーフィールド | 観測される状態 | 使用する場面 |
|---|---|---|
network.privateNetwork.allow | プライベートネットワーク SSRF の回避口 | false に設定し、プライベートネットワークアクセスが無効のままであることを要求します。 |
イングレスとチャンネルアクセス
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
ingress.session.requireDmScope | session.dmScope | レビュー済みのダイレクトメッセージ分離スコープを必須にする。 |
ingress.channels.allowDmPolicies | channels.*.dmPolicy と従来のチャンネル DM ポリシーフィールド | レビュー済みのダイレクトメッセージチャンネルポリシーのみを許可する。 |
ingress.channels.denyOpenGroups | チャンネル、アカウント、グループのイングレスポリシー | 構成済みのチャンネルとアカウントでオープングループのイングレスを拒否する。 |
ingress.channels.requireMentionInGroups | チャンネル、アカウント、グループ、ギルド、ネストされたメンションゲート構成 | グループイングレスがオープンまたはメンションゲート付きの場合、メンションゲートを必須にする。 |
Gateway
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
gateway.exposure.allowNonLoopbackBind | gateway.bind | local loopback Gateway バインドを必須にするには false に設定する。 |
gateway.exposure.allowTailscaleFunnel | Tailscale serve/funnel Gateway の態勢 | Tailscale Funnel 露出を拒否するには false に設定する。 |
gateway.auth.requireAuth | gateway.auth.mode | 無効化された Gateway 認証を拒否するには true に設定する。 |
gateway.auth.requireExplicitRateLimit | gateway.auth.rateLimit | 明示的な認証レート制限構成を必須にするには true に設定する。 |
gateway.controlUi.allowInsecure | Control UI の安全でない認証/デバイス/オリジン切り替え | 安全でない Control UI 露出切り替えを拒否するには false に設定する。 |
gateway.remote.allow | リモート Gateway モード/構成 | リモート Gateway モードを拒否するには false に設定する。 |
gateway.http.denyEndpoints | Gateway HTTP API エンドポイント | chatCompletions や responses などのエンドポイント ID を拒否する。 |
gateway.http.requireUrlAllowlists | Gateway HTTP URL 取得入力 | URL 取得入力で URL 許可リストを必須にするには true に設定する。 |
gateway.nodes.denyCommands | gateway.nodes.denyCommands | OpenClaw 構成で system.run などの正確なノードコマンド ID が拒否されることを必須にする。 |
gateway.nodes.denyCommands は、大文字小文字を区別する完全一致の拒否スーパーセットルールです。
特権ノードコマンドが OpenClaw 構成で明示的に拒否されていることをポリシーで証明する必要がある場合に使用します。
特権ノードコマンドを意図的に許可するデプロイメントでは、
gateway.nodes.allowCommands だけに依存するのではなく、レビュー後に policy.jsonc を更新する必要があります。
エージェントワークスペース
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
agents.workspace.allowedAccess | agents.defaults.sandbox.workspaceAccess と agents.list[].sandbox.workspaceAccess | none や ro などのサンドボックスワークスペースアクセス値のみを許可する。 |
agents.workspace.denyTools | グローバルおよびエージェントごとのツール拒否構成 | 変更ツール(exec、process、write、edit、apply_patch)が拒否されることを必須にする。 |
サンドボックス態勢
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
sandbox.requireMode | agents.defaults.sandbox.mode とエージェントごとのモード | all や non-main などのレビュー済みサンドボックスモードのみを許可する。 |
sandbox.allowBackends | agents.defaults.sandbox.backend とエージェントごとのバックエンド | docker などのレビュー済みサンドボックスバックエンドのみを許可する。 |
sandbox.containers.denyHostNetwork | コンテナベースのサンドボックス/ブラウザネットワークモード | ホストネットワークモードを拒否する。 |
sandbox.containers.denyContainerNamespaceJoin | コンテナベースのサンドボックス/ブラウザネットワークモード | 別のコンテナネットワーク名前空間への参加を拒否する。 |
sandbox.containers.requireReadOnlyMounts | コンテナベースのサンドボックス/ブラウザマウントモード | マウントを読み取り専用にすることを必須にする。 |
sandbox.containers.denyContainerRuntimeSocketMounts | コンテナベースのサンドボックス/ブラウザマウントターゲット | コンテナランタイムソケットのマウントを拒否する。 |
sandbox.containers.denyUnconfinedProfiles | コンテナセキュリティプロファイルの態勢 | 非制限コンテナセキュリティプロファイルを拒否する。 |
sandbox.browser.requireCdpSourceRange | サンドボックスブラウザ CDP ソース範囲 | ブラウザ CDP 露出でソース範囲の宣言を必須にする。 |
sandbox.mode を暗黙のデフォルト off として扱うため、
sandbox.requireMode は、新規または未構成のサンドボックスを ["all"] などの
許可リスト外として報告します。
データ処理
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
dataHandling.sensitiveLogging.requireRedaction | logging.redactSensitive | logging.redactSensitive: "off" を拒否するには true に設定する。 |
dataHandling.telemetry.denyContentCapture | diagnostics.otel.captureContent | テレメトリーのコンテンツキャプチャを拒否するには true に設定する。 |
dataHandling.retention.requireSessionMaintenance | session.maintenance.mode | 有効なセッションメンテナンスモード enforce を必須にするには true に設定する。 |
dataHandling.memory.denySessionTranscriptIndexing | memory.qmd.sessions.enabled と agents.*.memorySearch.experimental.sessionMemory | セッショントランスクリプトのメモリへのインデックス化を拒否するには true に設定する。 |
シークレット
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
secrets.requireManagedProviders | 構成 SecretRefs と secrets.providers.* 宣言 | SecretRefs が宣言済みプロバイダーを指すことを必須にするには true に設定する。 |
secrets.denySources | シークレットプロバイダーソースと SecretRef ソース | exec、file、または別の構成済みソース名などのソースを拒否する。 |
secrets.allowInsecureProviders | 安全でないシークレットプロバイダー態勢フラグ | 安全でない態勢を選択したプロバイダーを拒否するには false に設定する。 |
Exec 承認
Exec 承認チェックは、ランタイムのexec-approvals.json アーティファクトを読み取ります。
デフォルトでは ~/.openclaw/exec-approvals.json、または
OPENCLAW_STATE_DIR が設定されている場合は $OPENCLAW_STATE_DIR/exec-approvals.json です。
execApprovals.defaults.* または execApprovals.agents.* 配下の態勢ルールには、
読み取り可能なアーティファクト証拠が必要です。アーティファクトが欠落しているか無効な場合は、
ベストエフォートの合格ではなく、観測不能な証拠として報告されます。読み取り可能になると、省略された
フィールドはランタイムのデフォルトを継承します。欠落している defaults.security は full で、
欠落しているエージェントセキュリティはそのデフォルトを継承します。証拠には defaults、
agents.*、agents.*.allowlist[].pattern、任意の argPattern、有効な
autoAllowSkills 態勢、エントリソースが含まれます。ソケットパス/トークン、
commandText、lastUsedCommand、解決済みパス、タイムスタンプは含まれません。
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
execApprovals.requireFile | アクティブなランタイム exec-approvals.json パス | 承認アーティファクトが存在し、解析できることを必須にするには true に設定する。 |
execApprovals.defaults.allowSecurity | defaults.security、デフォルトは full | 承認済みのデフォルト承認セキュリティモードのみを許可する。 |
execApprovals.agents.allowSecurity | agents.*.security、デフォルトを継承 | 承認済みのエージェントごとの有効な承認セキュリティモードのみを許可する。 |
execApprovals.agents.allowAutoAllowSkills | defaults.autoAllowSkills と agents.*.autoAllowSkills、ランタイムデフォルトを継承 | 暗黙の skill CLI 承認なしで厳密な手動許可リストを必須にするには false に設定する。 |
execApprovals.agents.allowlist.expected | 集約された agents.*.allowlist[] パターンと任意の argPattern エントリ | 承認許可リストがレビュー済みパターンセットと一致することを必須にする。 |
認証プロファイル
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
auth.profiles.requireMetadata | auth.profiles.* のプロバイダーとモードのメタデータ | 設定の認証プロファイルで provider や mode などのメタデータキーを必須にする。 |
auth.profiles.allowModes | auth.profiles.*.mode | api_key、aws-sdk、oauth、token など、サポートされている認証プロファイルモードのみを許可する。 |
ツールメタデータ
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
tools.requireMetadata | 管理対象の TOOLS.md 宣言 | 管理対象ツールで risk、sensitivity、owner などのメタデータキーの宣言を必須にする。 |
ツール姿勢
| ポリシーフィールド | 観測された状態 | 使用する場合 |
|---|---|---|
tools.profiles.allow | tools.profile と agents.list[].tools.profile | minimal、messaging、coding などのツールプロファイル ID のみを許可する。 |
tools.fs.requireWorkspaceOnly | tools.fs.workspaceOnly とエージェントごとの tools.fs オーバーライド | true に設定して、ワークスペース限定のファイルシステムツール姿勢を必須にする。 |
tools.exec.allowSecurity | tools.exec.security とエージェントごとの exec セキュリティ | deny や allowlist などの exec セキュリティモードのみを許可する。 |
tools.exec.requireAsk | tools.exec.ask とエージェントごとの exec ask モード | always などの承認姿勢を必須にする。 |
tools.exec.allowHosts | tools.exec.host とエージェントごとの exec ホストルーティング | sandbox などの exec ホストルーティングモードのみを許可する。 |
tools.elevated.allow | tools.elevated.enabled とエージェントごとの昇格姿勢 | false に設定して、昇格ツールモードを無効のままにすることを必須にする。 |
tools.alsoAllow.expected | tools.alsoAllow とエージェントごとの tools.alsoAllow | 正確な alsoAllow エントリを必須にし、不足または想定外に追加されたツール許可を報告する。 |
tools.denyTools | tools.deny と agents.list[].tools.deny | 設定済みのツール拒否リストに、group:runtime や group:fs などのツール ID またはグループを含めることを必須にする。 |
チェックを実行する
作成中にポリシー専用チェックを実行します。policy check はポリシーチェックセットのみを実行し、エビデンス、検出事項、
および証明ハッシュを出力します。Policy plugin が有効な場合、同じ検出事項は
openclaw doctor --lint にも表示されます。
オペレーターのポリシーファイルを作成済みベースラインと比較します。
policy compare は、ポリシーファイル構文をポリシーファイル構文に対してチェックします。
ランタイム状態、エビデンス、認証情報、シークレットは検査しません。スコープ付きオーバーレイを管理するものと同じ
ルールメタデータを使用します。許可リストは同等またはより狭く、
拒否リストは同等またはより広く、必須ブール値は
その値を維持し、順序付き文字列は設定された順序の
より厳格な端にのみ移動でき、完全一致リストは一致する必要があります。ベースラインは
組織が作成したポリシーにできます。チェック対象ポリシーは、より厳格な値または
追加ルールを加えられます。トップレベルのチェック対象ルールは、
同等またはより制限的であれば、スコープ付きベースラインルールを満たせます。スコープ名は
ファイル間で一致する必要はありません。比較はセレクター(agentIds/channelIds)とフィールドでキー付けされます。
クリーンな比較(--json):
policy check --json 出力には、オペレーターまたは
監督者が記録できる安定したハッシュが含まれます。
ポリシーを設定する
ポリシー設定はplugins.entries.policy.config の下にあります。
| 設定 | 目的 |
|---|---|
enabled | policy.jsonc が存在する前でもポリシーチェックを有効にする。 |
workspaceRepairs | doctor --fix がポリシー管理対象のワークスペース設定を編集できるようにする。 |
expectedHash | 承認済みポリシー成果物の任意のハッシュロック。 |
expectedAttestationHash | 最後に受け入れられたクリーンなポリシーチェックの任意のハッシュロック。 |
path | ポリシー成果物のワークスペース相対の場所。 |
plugins.entries.policy.config.enabled を false に設定すると、Plugin を
インストールしたまま、ワークスペースのポリシーチェックを無効にできます。
ポリシー状態を受け入れる
JSON 出力例:attestation.policy.hash は、作成されたルール成果物を識別します。evidence は
チェックで使用された観測済み OpenClaw 状態を記録し、
workspace.hash はそのエビデンスペイロードを識別します。findingsHash は
正確な検出事項セットを識別します。checkedAt はチェックの実行時刻を記録します。
attestationHash は安定した主張(ポリシーハッシュ、エビデンスハッシュ、
検出事項ハッシュ、クリーン/ダーティ状態)を識別し、意図的に checkedAt を除外します。
そのため、同じポリシー状態は常に同じ証明ハッシュを生成します。これら
4 つの値を合わせて、1 回のポリシーチェックの監査タプルを形成します。
Gateway または監督者が、ランタイムアクションのブロック、承認、注釈付けに
ポリシーを使用する場合、最後のクリーンなチェックの証明ハッシュを記録する必要があります。
checkedAt は監査ログ用に JSON 出力に残りますが、
安定ハッシュの一部ではありません。
ポリシー状態を受け入れるライフサイクル:
policy.jsoncを作成またはレビューする。openclaw policy check --jsonを実行する。- クリーンであれば、
attestation.policy.hashをexpectedHashとして記録する。 attestation.attestationHashをexpectedAttestationHashとして記録する。- CI またはリリースゲートで
openclaw doctor --lintを再実行する。
expectedAttestationHash だけが変わります。
agents.workspace ルールを有効化またはアップグレードすると、ワークスペースハッシュと証明ハッシュに agentWorkspace 証拠が追加されます。有効化後に新しい証拠を確認し、受け入れ済み証明ハッシュを更新してください。ツールポスチャルールを有効化またはアップグレードすると、同じ方法で toolPosture 証拠が追加されます。
openclaw policy watch はチェックを再実行し、現在の証拠が expectedAttestationHash と一致しなくなったときに報告します。
--once を使用します。--once がない場合、デフォルトでは 2 秒ごとにポーリングします。間隔を変更するには --interval-ms を使用します。
検出事項
| チェック ID | 検出事項 |
|---|---|
policy/policy-jsonc-missing | ポリシーは有効ですが、policy.jsonc がありません。 |
policy/policy-jsonc-invalid | ポリシーを解析できないか、不正な形式のルールエントリが含まれています。 |
policy/policy-hash-mismatch | ポリシーが設定済みの expectedHash と一致しません。 |
policy/attestation-hash-mismatch | 現在のポリシー証拠が、受け入れ済み証明と一致しなくなりました。 |
policy/policy-conformance-invalid | ベースラインまたはチェック対象のポリシーファイルに無効な比較構文があります。 |
policy/policy-conformance-missing | チェック対象のポリシーファイルに、ベースラインポリシーファイルで必須のルールがありません。 |
policy/policy-conformance-weaker | チェック対象のポリシーファイルの値が、ベースラインポリシーファイルより弱くなっています。 |
policy/channels-denied-provider | 有効化されたチャネルがチャネル拒否ルールに一致します。 |
policy/mcp-denied-server | 設定済みの MCP サーバーがポリシーによって拒否されています。 |
policy/mcp-unapproved-server | 設定済みの MCP サーバーが許可リストの外にあります。 |
policy/models-denied-provider | 設定済みのモデルプロバイダーまたはモデル参照が、拒否されたプロバイダーを使用しています。 |
policy/models-unapproved-provider | 設定済みのモデルプロバイダーまたはモデル参照が許可リストの外にあります。 |
policy/network-private-access-enabled | ポリシーが拒否しているにもかかわらず、プライベートネットワーク SSRF エスケープハッチが有効です。 |
policy/ingress-dm-policy-unapproved | チャネル DM ポリシーがポリシー許可リストの外にあります。 |
policy/ingress-dm-scope-unapproved | session.dmScope が、ポリシーで必須の DM 分離スコープと一致しません。 |
policy/ingress-open-groups-denied | ポリシーがオープングループの流入を拒否しているにもかかわらず、チャネルグループポリシーが open です。 |
policy/ingress-group-mention-required | ポリシーがメンションゲートを必須としているにもかかわらず、チャネルまたはグループエントリがそれを無効化しています。 |
policy/gateway-non-loopback-bind | ポリシーが拒否しているにもかかわらず、Gateway バインドポスチャが非ループバック公開を許可しています。 |
policy/gateway-auth-disabled | ポリシーが認証を必須としているにもかかわらず、Gateway 認証が無効です。 |
policy/gateway-rate-limit-missing | ポリシーが必須としているにもかかわらず、Gateway 認証レート制限ポスチャが明示されていません。 |
policy/gateway-control-ui-insecure | Gateway Control UI の安全でない公開トグルが有効です。 |
policy/gateway-tailscale-funnel | ポリシーが拒否しているにもかかわらず、Gateway Tailscale Funnel 公開が有効です。 |
policy/gateway-remote-enabled | ポリシーが拒否しているにもかかわらず、Gateway リモートモードがアクティブです。 |
policy/gateway-http-endpoint-enabled | ポリシーで拒否されているにもかかわらず、Gateway HTTP API エンドポイントが有効です。 |
policy/gateway-http-url-fetch-unrestricted | Gateway HTTP URL 取得入力に、必須の URL 許可リストがありません。 |
policy/gateway-node-command-denied | ポリシーで拒否された Node コマンドが、OpenClaw 設定で拒否されていません。 |
policy/agents-workspace-access-denied | エージェントのサンドボックスモードまたはワークスペースアクセスがポリシー許可リストの外にあります。 |
policy/agents-tool-not-denied | エージェントまたはデフォルト設定が、ポリシーで必須のツールを拒否していません。 |
policy/tools-profile-unapproved | 設定済みのグローバルまたはエージェント別ツールプロファイルが許可リストの外にあります。 |
policy/tools-fs-workspace-only-required | ファイルシステムツールが、ワークスペース限定パスポスチャで設定されていません。 |
policy/tools-exec-security-unapproved | Exec セキュリティモードがポリシー許可リストの外にあります。 |
policy/tools-exec-ask-unapproved | Exec 確認モードがポリシー許可リストの外にあります。 |
policy/tools-exec-host-unapproved | Exec ホストルーティングがポリシー許可リストの外にあります。 |
policy/tools-elevated-enabled | ポリシーが拒否しているにもかかわらず、昇格ツールモードが有効です。 |
policy/tools-also-allow-missing | 設定済みの alsoAllow リストに、ポリシーで必須のエントリがありません。 |
policy/tools-also-allow-unexpected | 設定済みの alsoAllow リストに、ポリシーが想定していないエントリが含まれています。 |
policy/tools-required-deny-missing | グローバルまたはエージェント別ツール拒否リストに、必須の拒否ツールが含まれていません。 |
policy/sandbox-mode-unapproved | サンドボックスモードがポリシー許可リストの外にあります。 |
policy/sandbox-backend-unapproved | サンドボックスバックエンドがポリシー許可リストの外にあります。 |
policy/sandbox-container-posture-unobservable | 観測できないバックエンドに対して、コンテナポスチャルールが有効化されています。 |
policy/sandbox-container-host-network-denied | コンテナベースのサンドボックスまたはブラウザーがホストネットワークモードを使用しています。 |
policy/sandbox-container-namespace-join-denied | コンテナベースのサンドボックスまたはブラウザーが別のコンテナ名前空間に参加しています。 |
policy/sandbox-container-mount-mode-required | コンテナベースのサンドボックスまたはブラウザーのマウントが読み取り専用ではありません。 |
policy/sandbox-container-runtime-socket-mount | コンテナベースのサンドボックスまたはブラウザーのマウントが、コンテナランタイムソケットを公開しています。 |
policy/sandbox-container-unconfined-profile | ポリシーが拒否しているにもかかわらず、コンテナサンドボックスプロファイルが無制限です。 |
policy/sandbox-browser-cdp-source-range-missing | ポリシーが必須としているにもかかわらず、サンドボックスブラウザー CDP ソース範囲がありません。 |
policy/data-handling-redaction-disabled | ポリシーが必須としているにもかかわらず、機密ログのリダクションが無効です。 |
policy/data-handling-telemetry-content-capture | ポリシーが拒否しているにもかかわらず、テレメトリコンテンツキャプチャが有効です。 |
policy/data-handling-session-retention-not-enforced | ポリシーが必須としているにもかかわらず、セッション保持メンテナンスが強制されていません。 |
policy/data-handling-session-transcript-memory-enabled | ポリシーが拒否しているにもかかわらず、セッショントランスクリプトメモリインデックスが有効です。 |
policy/secrets-unmanaged-provider | 設定の SecretRef が、secrets.providers の下で宣言されていないプロバイダーを参照しています。 |
policy/secrets-denied-provider-source | 設定のシークレットプロバイダーまたは SecretRef が、ポリシーで拒否されたソースを使用しています。 |
policy/secrets-insecure-provider | ポリシーが拒否しているにもかかわらず、シークレットプロバイダーが安全でないポスチャを選択しています。 |
policy/auth-profile-invalid-metadata | 設定の認証プロファイルに、有効なプロバイダーまたはモードのメタデータがありません。 |
policy/auth-profile-unapproved-mode | 設定の認証プロファイルモードがポリシー許可リストの外にあります。 |
policy/exec-approvals-missing | ポリシーが exec-approvals.json を必須としていますが、そのアーティファクトがありません。 |
policy/exec-approvals-invalid | 設定済みの Exec 承認アーティファクトを解析できません。 |
policy/exec-approvals-default-security-unapproved | Exec 承認のデフォルトが、ポリシー許可リストの外にあるセキュリティモードを使用しています。 |
policy/exec-approvals-agent-security-unapproved | エージェント別の有効な Exec 承認セキュリティモードが許可リストの外にあります。 |
policy/exec-approvals-auto-allow-skills-enabled | ポリシーが拒否しているにもかかわらず、Exec 承認エージェントが skill CLI を暗黙的に自動許可しています。 |
policy/exec-approvals-allowlist-missing | 承認許可リストに、ポリシーで必須のパターンがありません。 |
policy/exec-approvals-allowlist-unexpected | 承認許可リストに、ポリシーが想定していないパターンが含まれています。 |
policy/tools-missing-risk-level | ガバナンス対象ツール宣言にリスクメタデータがありません。 |
policy/tools-unknown-risk-level | ガバナンス対象ツール宣言が不明なリスク値を使用しています。 |
policy/tools-missing-sensitivity-token | ガバナンス対象ツール宣言に機密度メタデータがありません。 |
policy/tools-missing-owner | ガバナンス対象ツール宣言に所有者メタデータがありません。 |
policy/tools-unknown-sensitivity-token | ガバナンス対象ツール宣言が不明な機密度値を使用しています。 |
target(適合していない観測されたワークスペース上の対象)と requirement(検出事項になった作成済みルール)の両方を含めることができます。現在はどちらも oc:// アドレス文字列ですが、フィールド名はアドレス形式ではなくポリシー上の役割を表しています。
検出事項の例:
修復
doctor --lint と policy check は読み取り専用です。
doctor --fix は、workspaceRepairs が明示的に有効化されている場合にのみ、ポリシー管理対象のワークスペース設定を編集します。それ以外の場合、チェックは修復予定の内容を報告し、設定は変更しません。
このバージョンでは、修復によって channels.denyRules で拒否されたチャンネルを無効化し、以下に示す自動的な絞り込み修復を適用できます。有効なルールによってワークスペース設定が変更される可能性があるため、workspaceRepairs はポリシーファイルのレビュー後にのみ有効化してください。
- グローバルポリシーが昇格ツールを禁止している場合、
tools.elevated.enabled=falseを設定する - ポリシーでそれらのツールの拒否が要求されている場合、不足している必須拒否ツール ID を
tools.denyまたはagents.list[].tools.denyに追加する - 安全でない
gateway.controlUi.*トグルをfalseに設定する - ポリシーがリモート Gateway モードを拒否している場合、
gateway.mode=localを設定する - ポリシーが機密ログの墨消しを要求している場合、
logging.redactSensitive=toolsを設定する - ポリシーがテレメトリ内容のキャプチャを拒否している場合、
diagnostics.otel.captureContent=false、またはオブジェクト形式のテレメトリキャプチャ設定ではdiagnostics.otel.captureContent.enabled=falseを設定する
tools.deny を報告している場合はスキップされます。必要なツールをルート設定に追加すると、スコープ付きポリシー対象を超えて影響するためです。エージェントローカルの必須拒否修復では、報告された agents.list[].tools.deny パスを更新できます。
終了コード
| コマンド | 0 | 1 | 2 |
|---|---|---|---|
policy check | しきい値以上の検出結果はありません。 | 1件以上の検出結果がしきい値に達しました。 | 引数またはランタイムの失敗。 |
policy compare | ポリシーファイルはベースラインと同等以上に厳格です。 | ポリシーファイルが無効、欠落、またはベースラインルールより弱いです。 | 引数またはランタイムの失敗。 |
policy watch | 検出結果はなく、承認済みハッシュは最新です。 | 検出結果が存在するか、承認済み証明が古くなっています。 | 引数またはランタイムの失敗。 |