4.9 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)를 통해 모든 사용자의 동작을 원격으로 변경할 수 있습니다.