すべてのポリシー管理はコンソール(または
/api/workspace/firewall/* 管理ルート。
これらはセッション / アクセストークンで認証し、リレーの sk-orca-… キー
ではありません)で行われます。エージェントの /v1/* 呼び出しのみがリレーキーを
使います。ポリシーの作成、編集、デフォルト化は Developer+ のアクションです;
ポリシーリストとそのバージョンの読み取りはすべての Member に開放されています。1. 姿勢を 2 つ目のポリシーに分岐する
「フォーク」判定もコピーボタンもありません — ポリシー名はワークスペースごとに一意なので、 パターンは独立してバージョン管理される 2 つ目のポリシーを立ち上げ、元に触れずに 自由に発散させることです。それをシードする 2 つの方法:新しいポリシーを作成し、それからルールを作成する
Security → Firewall → Policies → New policy を開きます。新しいポリシーは
ルールなしとあなたが選んだ
default_verdict で作成されます — そのルールを
エディタで作成します(または元のポリシーからいくつかを手でコピーします)。
ワークスペース内で一意の名前を付けます(例:staging-firewall の隣に
prod-firewall)。またはユースケーステンプレートを適用する
Templates ギャラリー(
POST /api/workspace/firewall/templates/apply)は、
1 つの新しいポリシーに加えてそのすべてのルールを単一のトランザクションで作成
します — Coding、Support、RAG、Data、DevOps、Browser、または Baseline。
テンプレートがマッチするとき、手作成より高速です。2. すべての更新でインクリメントするバージョン
すべてのファイアウォールポリシーはversion 整数を持ちます。ポリシーが作成される
ときに 1 から始まり、すべての更新で 1 ずつインクリメントします — ルール編集、
デフォルト判定の変更、有効化/無効化の切り替え、シャドウモードの切り替え。それは単調で、
決してリセットされません。
version
はキャッシュを駆動しません;それはあなたが読み返す単調な変更カウンタです。ポリシーを
保存し、変更がライブであることを確認したいとき、ポリシーを再読み込みして version が
進んだことをチェックします。
ポリシーの
version は変更カウンタであり、復元ポイントではありません。 それは
ポリシーが変わったことを教え、ゲートウェイが編集を伝播できるようにします — それは
バージョンごとの diff やロールバックではありません。diff とワンクリックリバートを
伴う完全なバージョン履歴については、その機能はガードレールに
存在します:GET /api/guardrail/:id/history、…/history/diff、
POST /api/guardrail/:id/revert(リバートは Developer+)。ファイアウォールポリシーに
ついては、監査証跡と、降格された既知の良好なポリシーをリストに保つことが、復元ポイントを
保つ方法です — §5 を参照。3. ワークスペースデフォルトを設定して移動する
ワークスペースは1 つのポリシーをデフォルトにマークできます。独自のfirewall_policy_id のないすべてのキーがそれに解決します
(解決順序)。
- ポリシーを編集し、それをワークスペースデフォルトに設定します。新しいデフォルトの プロモートは同じトランザクション内で古いものを降格します — 2 つのデフォルトが ある窓も、入れ替え途中で 1 つもない窓も決してありません。
- 2 つ目のポリシーを立ち上げることは、デフォルトを前に転がすクリーンな方法です: 新しいポリシーを構築し、調整し、シャドウモードのもとで検証し、それからプロモート します。古いデフォルトは降格されてリストに残り、フォールバックになります。
4. 有効化、無効化、削除
ポリシーを無効化する
ポリシーを無効化する
Enabled をオフに切り替えると、ポリシーが解決するのを止めます。しかし
ファイアウォールのフォールスルーを忘れないでください:アタッチ済みポリシーが
無効化されたキーはワークスペースデフォルトにフォールバックします — 無効化は
キーをファイアウォールのスコープから外しません。キーを強制から取り除くには、それを
デタッチします(
firewall_policy_id を 0 に設定)、ポリシーをただ無効に
するのではなく。(これはガードレールとは異なります。ガードレールでは無効化された
アタッチメントはnone に解決されます。)ポリシーを削除する
ポリシーを削除する
DELETE /api/workspace/firewall/policies/:id(Developer+)はポリシーを削除します
— しかし、いずれかのキーがまだそれを参照している場合 409 を返します。それらの
キーを先にデタッチまたは再ポイントし、それから削除します。このガードが、インプレースの
書き換えではなく 2 つ目のポリシーを立ち上げることが、ライブキーが依存するポリシーを
進化させるより安全な方法である理由です。名前はワークスペースごとに一意
名前はワークスペースごとに一意
ポリシー名はワークスペース内で一意なので、2 つ目のポリシーは新しい名前を必要と
します。
policy-copy-2 ではなく、ライフサイクルを生き延びる規約 —
staging-firewall / prod-firewall、または日付サフィックス — を使います。5. 監査証跡
すべてのポリシーの作成、更新(デフォルトプロモートやシャドウモードの切り替えを含む)、 削除は、変更がコミットされた後に監査行 — ワークスペース行とセントラル管理者行の 両方 — を書き込みます。失敗した保存(重複名、無効な判定)は何も書き込みません。ルール blob とシークレットは決して監査ログに書き込まれません。 そのため、ファイアウォールポリシーが独自の diff-and-revert 履歴を運ばなくても、監査 証跡は誰がどのポリシーをいつ変えたかを教え、単調なversion は何回変わったかを
教えます。それを、降格された既知の良好なポリシーをリストに保つことと組み合わせれば、
実践的な復元パスが手に入ります。
6. ライフサイクル概観
| アクション | ルート | ロール |
|---|---|---|
| ポリシーをリスト(+ バージョン、カウント) | GET /api/workspace/firewall/policies | Member |
| 1 つのポリシーを読み取り | GET /api/workspace/firewall/policies/:id | Member |
| ポリシーを作成(ルールなし) | POST /api/workspace/firewall/policies | Developer+ |
| テンプレートを適用(ポリシー + ルール) | POST /api/workspace/firewall/templates/apply | Developer+ |
更新(version をインクリメント) | PUT /api/workspace/firewall/policies | Developer+ |
| 削除(キーがアタッチされていれば 409) | DELETE /api/workspace/firewall/policies/:id | Developer+ |
次に進む場所
作成 & アタッチ
初回セットアップのパス — ポリシーを作成し、キーをそれに向けます。
シャドウモード
新しいまたは再デフォルト化されたポリシーを、ライブトラフィックを変えずにロール
アウト。
ファイアウォール + ガードレール
アクションポリシーがテキストガードレールとどう合成されるか — そしてバージョン管理
されたリバートがどこに存在するか。
スコープ:キー、ポリシー、ワークスペース
アタッチメントとワークスペースデフォルトがどう解決するか。
