fail-open と fail-closed 対照(プロキシ側ランタイム)
「プロキシ側」はゲートウェイが解釈する出站ルールです。2026.4.x はリロード後の実効を validate で固定化する前提です。本番プールでは表の fail-open 行は避けます。
| モード | ホワイトリスト未命中時 | 向いている場面 | 協働リスク |
|---|---|---|---|
| fail-open | 直結を試みる | 単機トラブルシュート | プール内で差分が見えにくい |
| fail-closed | 即拒否+監査 | ステージング/本番の基線 | チケット付きの短い解放窓が必要 |
| パッチ型ホワイトリスト | 登録済み座標のみ | ゲートウェイの段階的リリース | 版管理とハッシュ突合が必須 |
最小再現ラボ(五手順)
全ゲートウェイで同一メンテ窓。トークンはゲートウェイ上のファイルのみ・0440 相当。JSON に秘密を出さない。
- Node 20 LTS をリリースノートどおりに固定。
node -v/npm -vを全台で一致させ、ズレたらロールアウト停止。 npm ci後にopenclaw doctor(只読)。依存・待受ポート・証明書の致命警告を潰す。- 出站ホワイトリストと fail-closed をランタイム層へ(リロードか再起動に統一)。管理/データでポート分離しビルド用ポートと衝突させない。
openclaw validate --profile gateway --format json > /var/tmp/oc-gateway-validate.jsonで検収。下記フィールドとokを確認。- 変更票に policy ハッシュ・トークンパス・ビルド番号を残し、失敗時は即ロールバック節へ。
ゲート例:policy_sha256 全一致、egress_allowlist_count 差ゼロ、listen_ports をソートして一致。
検証期待と JSON 断片
validate は真値スナップショット。先に ok・proxy・compliance を見る(フィールド名は CLI 版に合わせる)。
{
"ok": true,
"profile": "gateway",
"policy_sha256": "…",
"proxy": {
"fail_closed": true,
"egress_allowlist_count": 12,
"listen_ports": [ "127.0.0.1:25430", "10.0.0.5:443" ]
},
"compliance": { "secrets_mode": "0440", "drift": "none" }
}
fail_closed が偽または drift 非空なら CI 失敗・キュー非参加。秘密は 最小権限 参照。
再現コマンドで JSON を検査する
jq でゲート(無い場合は同等パーサで)。二台比較は jq -S 正規化後に diff -u。
openclaw validate --profile gateway --format json \
| tee /var/tmp/oc-gateway-validate.json \
| jq -e '.ok == true and .proxy.fail_closed == true and .compliance.drift == "none"' \
&& echo "validate: OK"
jq -S . /var/tmp/oc-gateway-validate-a.json >/tmp/a.norm.json
jq -S . /var/tmp/oc-gateway-validate-b.json >/tmp/b.norm.json
diff -u /tmp/a.norm.json /tmp/b.norm.json
ロールバックチェックポイント
出口条件:臨時解放の失効、前版スナップショット復元、リロード完了、再出力 JSON が窓前と一致。ディスクのみ戻してメモリが新しいままだと偽安全なのでリロード後に必ず validate。チェックポイント例:git tag oc-gateway-pre-$(date +%Y%m%d)。
多ノード diff と協働ドリフト対策
全ノードで正規化 diff。差分ノードは先に摘流し、単一事実源から同版を流す。キューが policy_sha256 不一致ワーカを拒否すると「一台だけ export」のドリフトを止めやすい。LB・フェイルオーバー 併読。
次の一歩(公開ページ)
多ノードのプロキシ設定を、突き合わせ可能な JSON 真値に収束させる
MeshMac のプランと購入導線はトップから。ヘルプで接続と用語を確認し、既存クラスタの協働はブログの多機記事へ。公開ページのみで辿れます。