- 1 관리자 세션으로 게이트웨이를 띄우면 설치 주체와 런타임 주체가 섞입니다.
- 2 로그 마스킹만으로는 비허용 호스트 egress를 증명할 수 없습니다. 화이트리스트가 별도 증거입니다.
- 3 doctor를 눈으로만 보면 재현 증거가 없습니다. JSON·status를 같은 창에 묶으세요.
| 역할 | 허용 | 금지 | 검수 신호 |
|---|---|---|---|
| admin-ops | Node 24 설치·OpenClaw 업그레이드·plist 작성 | 일일 업무 데이터 처리 | sudo 이력 추적 |
| openclaw-run | onboard·게이트웨이·설정 읽기 | 시스템 LaunchDaemon 수정 | admin 그룹 미포함 |
| 감사 읽기 전용 | doctor·status JSON 수령 | 설정 변경·재시작 | RO 토큰 |
계정 모델
admin-ops는 바이너리·plist만, openclaw-run은 게이트웨이 홈·소켓·로그만 소유합니다. 운영자 SSH 계정과 합치지 마세요. openclaw onboard --non-interactive는 openclaw-run에서만 실행합니다.
인용 ① node -v→Node 24, openclaw version→v2026.5.x 스크린샷을 변경 티켓에 첨부합니다.
launchd 라벨
라벨 예: com.openclaw.gateway.eu-de. UserName=openclaw-run, WorkingDirectory 고정. launchctl bootstrap 후 launchctl print로 소유 확인 → openclaw gateway status --json에서 pid·bind·version 일치 여부를 봅니다. 불일치면 egress 검수 전에 중단합니다.
인용 ② status JSON에 포트·TLS·업타임과 티켓 ID를 파일명으로 남깁니다.
화이트리스트 템플릿
표에 도메인·용도·담당·재검토일을 적고 제어 API·npm·Git·레지스트리·관측만 허용, 와일드카드 인터넷은 거절합니다. 프록시면 규칙 ID를 같은 행에 적습니다.
| 버킷 | 예시 호스트 | 검증 |
|---|---|---|
| 제어·패키지 | 내부 오픈클로 도메인·registry.npmjs.org | 실패 시 폐쇄 |
| 소스·이미지 | git.company.eu·ghcr.io | CI 동일 커밋 재현 |
| 텔레메트리 | 승인된 EU 엔드포인트만 | DNS·TLS SNI 로그 샘플 |
인용 ③ openclaw doctor --non-interactive JSON의 egress 항목을 표의 행과 직접 링크합니다.
검수 체크리스트
단계마다 exit code를 기록합니다.
- 독일 전용 M4 연결·디스크 암호화·SSH 키를 admin-ops로 문서화합니다.
- Node 24·OpenClaw v2026.5.x 설치 후 PATH 고정.
- openclaw-run 생성·홈 ACL 분리.
- openclaw onboard --non-interactive 출력 아카이브.
- launchd 배포 → gateway status --json → EU 화이트리스트 → doctor --non-interactive JSON을 한 폴더에 둡니다.
launchctl bootout·tarball·담당자를 롤백란에 적습니다.
합격선: 런타임 비관리자 · 단일 라벨 · 비와일드카드 허용목록 · doctor·status 동일 창 · 롤백 검증. 변경 창 시작·종료 시각을 JSON 파일명에 포함하면 감사 대응이 빨라집니다.
FAQ
Q 독일 노드 필수?A 법적 필수는 아니나 단일 DE 베어메탈이 설명을 단순화합니다.
Q doctor만?A status 없이는 바인딩 증거가 비어 병합을 권장합니다.
Q 패키지?A 파일럿 M4 16GB, 레지스트리·Xcode 병행 시 24GB.
도움말·블로그·요금제
접속 절차는 도움말, 런북은 블로그, 노드·사양은 요금제에서 이어갑니다.