1. 順序:優先度昇順、最初にマッチしたものが勝つ
ポリシー内で、ルールはpriority ASC, id ASC 順に評価されます:
- 低い
priorityが先に実行されます。priority: 0のルールはpriority: 10の ものより先にチェックされます。強さスコアではなく、キューの位置として考えてください — 小さい番号が最初の発言権を得ます。 - 同点はルール id で解決されます。 同じ
priorityの 2 つのルールは作成順 (ルール id 昇順)で実行されるため、古いルールが同点を勝ちます。順序が実際に重要な ときは、id の同点解決に頼るのではなく、異なる優先度を使います。 - 最初にマッチしたものが勝ちます。 エンジンは条件がすべて成立する最初のルールで 停止し、その判定を適用します。リストのさらに下のルールは、その呼び出しについて 決して参照されません。
- マッチなし → デフォルト判定。 何もマッチしなければ、ポリシーの
default_verdictが適用 されます — 変更していなければauditです。
2. 具体例 1 つ:特定を広いものの前に
典型的な順序付けの仕事は、狭い allow を広い deny から生き残らせることです。 特定のルールを低い優先度に置き、先に到達されるようにします:shell.echo への呼び出しはまず Rule A(priority 10)に当たり、マッチし、許可
されます — エンジンは Rule B に決して到達しません。shell.exec への呼び出しは A を
通り抜け(グロブがマッチしない)、Rule B に当たり、deny されます。
優先度を反転させると、priority 10 の広い shell.* deny が shell.echo をまず捕捉し、
priority 20 のあなたの allow はデッドコードになります。経験則:最も特定を先に、
最も広いものを最後に。
3. 依存する前に順序を検証する
優先度を紙上で推論することは、ポリシーがひと握りを超えるルールを持つとエラーを 起こしやすいです。Test サンドボックスはサンプルのツール呼び出しに対して実エンジンを 実行し、判定だけでなくどのルールが勝ったかを教えます — そのため期待したルールが 実際に発火したことを確認できます:
完全なサンドボックスについてはルールのテストを、
ルール順序をインプレースで編集することについては
ポリシーの管理を参照してください。
4. スキル強制が上に乗る
ルール優先度は勝ったルールの判定を決定します — しかしそれが常に最終的な答えとは 限りません。ツール呼び出しが統制されたスキルによって 所有されている場合、スキルの強制モードが、最初のマッチ解決の後に、勝った判定の 上に適用されます:| スキルモード | 勝った判定への影響 |
|---|---|
allow | 変更なし — ルール判定がそのまま。 |
quarantine | deny 未満のものを pending_approval にエスカレート;既存の deny はそのまま。 |
block | ルール判定に関わらず deny を強制。 |
quarantine スキルはルールの allow を保留された呼び出しに変えられ、block
スキルはどのルールもそのツールを名指ししなくても呼び出しを deny します。隔離は
エスカレートするだけです — deny をより柔らかいものに格下げすることは決してありません。
これが、リスクありと自動検出されたスキルが、ルールがどれほど寛容でも、レビューするまで
隔離されたままになる理由です。
5. 最初のマッチに乗らないもの
いくつかのメカニズムはルールごとの優先度の辿りの外に位置します — それらを順序付け しようとしないよう、どこに着地するかを知ってください:cap_cost — ランク付けされず、解決される
cap_cost — ランク付けされず、解決される
上限未満の
cap_cost ルールは非マッチとして
扱われるため、それを許可として最初のマッチで勝たせるのではなく、評価が次のルールに
続きます。上限を超えると deny に解決されます。それは到達されただけで低い優先度の
ルールをショートサーキットすることは決してありません。シーケンス — リアクティブ、インラインではない
シーケンス — リアクティブ、インラインではない
シーケンスルールは時間ウィンドウをまたいだ
呼び出しのチェーンにマッチするため、チェーンを完了する単一の呼び出しの上ではなく、
非同期マッチャによってリアクティブに強制されます。events フィードを点灯させますが、
個別の呼び出しの最初のマッチの辿りを勝ちません。
シャドウモード — 判定の後に適用される
シャドウモード — 判定の後に適用される
シャドウモードはどのルールが勝つかを変えません
— 最初のマッチ解決の後に、勝った強制判定を
audit に格下げします(理由に
[shadow] would … を前置)、そのためポリシーがトラフィックを変える前にその影響を
測定できます。6. まとめると
任意のツール呼び出しについて、完全な解決はこうです:- ポリシーを解決する — 呼び出し元キーにアタッチされたもの、またはワークスペース デフォルト。スコープを参照。
priority ASC, id ASCでルールを辿る — 最初にマッチしたものが勝つ;マッチ なし →default_verdict。- スキル強制を適用する — 統制されたスキルのモードが勝った判定の上に乗る
(
blockは deny を強制、quarantineはエスカレート)。 - シャドウモードを適用する — オンなら、強制判定を
auditに格下げ。 - イベントを記録する — 判定、サーフェス、ツール、マッチしたルールが events フィードに着地。
ルールの優先度の編集は、ポリシーにアタッチされたすべてのキーで次の呼び出しから
効力を持ちます — 再デプロイなし、エージェントのコード変更なし。再順序付けの後、ライブ
トラフィックがそれに依存する前に新しい勝者を確認するために
Test サンドボックスを再実行します。
次に進む場所
判定
各勝った判定が実際に何をするか。
グロブ構文
ツール名マッチングがルールが候補かどうかをどう決定するか。
ルールのテスト
ポリシーをドライランし、どのルールが勝つかを見る。
ツール許可リスト
順序付けに最も強く頼るデフォルト deny パターン。
