5.4 KiB
リモート制御およびキルスイッチ
インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
概要
Claude Codeは、公式管理者(および企業管理者)がシステムセキュリティと企業のコンプライアンスを確保するために、リモート構成を通じて特定のクライアントの動作を管理および更新できるリモート管理メカニズムを実装しています。
1. リモート管理設定
構成
対象セッションは以下から設定を取得する:
GET /api/claude_code/settings
出典: src/services/remoteManagedSettings/index.ts:105-107
ポーリング動作
// src/services/remoteManagedSettings/index.ts:52-54
const SETTINGS_TIMEOUT_MS = 10000
const DEFAULT_MAX_RETRIES = 5
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1時間
設定は1時間ごとにポーリングされ、失敗時は最大5回リトライする。
対象資格
- Consoleユーザー(APIキー): 全員対象
- OAuthユーザー: Enterprise/C4EおよびTeamサブスクライバーのみ
強制承認ダイアログ
リモート設定に「危険な」変更が含まれる場合、ブロッキングダイアログが表示される:
// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
if (result === 'rejected') {
gracefulShutdownSync(1) // 終了コード1で終了
return false
}
return true
}
リモート設定を拒否するとアプリケーションが強制終了される。選択肢はリモート設定の承認またはClaude Codeの終了のみである。
障害時の動作
リモートサーバーに接続できない場合、ディスクキャッシュ設定が使用される:
// src/services/remoteManagedSettings/index.ts:433-436
if (cachedSettings) {
logForDebugging('Remote settings: Using stale cache after fetch failure')
setSessionCache(cachedSettings)
return cachedSettings
}
リモート設定が一度適用されると、サーバー障害時もキャッシュが維持される。
2. Feature Flagキルスイッチ
GrowthBook feature flagにより複数の機能をリモート無効化できる:
パーミッションバイパスキルスイッチ
// src/utils/permissions/bypassPermissionsKillswitch.ts
// Statsigゲートを確認してパーミッションバイパスを無効化
ユーザーの同意なくパーミッションバイパス機能を無効化できる。
Autoモードサーキットブレーカー
// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken状態でautoモードへの再突入を阻止
Autoモードをリモートで無効化できる。
Fastモードキルスイッチ
// src/utils/fastMode.ts
// /api/claude_code_penguin_mode から取得
// 特定ユーザーのfastモードを永久に無効化可能
分析シンクキルスイッチ
// src/services/analytics/sinkKillswitch.ts:4
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'
すべての分析出力をリモートで停止できる。
Agent Teamsキルスイッチ
// src/utils/agentSwarmsEnabled.ts
// 環境変数とGrowthBookゲート 'tengu_amber_flint' の両方が必要
音声モードキルスイッチ
// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — 音声モードの緊急停止
3. モデルオーバーライドシステム
カナリアテストを実施したり、予期せぬオンラインの状況に対応するために、システムは内部社員などの特定のグループに対してモデルバージョンを動的に切り替えることをサポートしています:
// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: tengu_ant_model_overrideに新しいant専用モデルを更新
// @[MODEL LAUNCH]: コードネームをscripts/excluded-strings.txtに追加
tengu_ant_model_override GrowthBook flagで可能な操作:
- デフォルトモデルの設定
- デフォルト努力レベルの設定
- システムプロンプトへの内容追加
- カスタムモデルエイリアスの定義
4. Penguinモード
Fastモードの状態は専用エンドポイントから取得される:
// src/utils/fastMode.ts
// GET /api/claude_code_penguin_mode
// APIが無効を返した場合、該当ユーザーで永久無効化
Fastモードの可用性を制御するfeature flag:
tengu_penguins_offtengu_marble_sandcastle
まとめ
| メカニズム | 対象範囲 | ユーザー同意 |
|---|---|---|
| リモート管理設定 | Enterprise/Team | 承認または終了 |
| GrowthBook feature flag | 全ユーザー | なし |
| キルスイッチ | 全ユーザー | なし |
| モデルオーバーライド | 内部(ant) | なし |
| Fastモード制御 | 全ユーザー | なし |
リモート制御インフラは広範にわたります。企業管理者はユーザーが上書きできないポリシーを強制することができ、システムは重大な問題に対処するために、機能フラグ(feature flags)を通じてすべてのユーザーの動作をリモートで変更できます。