홈·독일 노드·EU 로그 마스킹·loopback SSH·AWS eu-central-1 병행.
- 페인 1: pairing 없는 open DM—임의 핸들이 에이전트 트리거.
- 페인 2: allowlist와 validate가 분리 티켓—한 릴리스에 US CDN 호스트 개방.
- 페인 3: 출구는 default-deny인데 JSONL에 pairing 코드·토큰 평문.
독일 노드 데이터 상주와 출구 전략
독일 PoP의 전용 Mac mini M4가 측정·런타임 앵커입니다. 설정·JSONL은 호스트에 두고 출구는 방화벽·forward proxy로 default-deny를 유지합니다. 상주가 DPA를 대체하지는 않지만 사고 대응·보안 승인을 단순화합니다.
| 레버 | 독일 노드(프랑크푸르트) | APAC 노트북만 |
|---|---|---|
| EU API p95 | EU 리졸버 안정 | 태평양 라우팅 왜곡 |
| 설정·로그 경로 | 단일 호스트·스냅샷 | 개발자 간 드리프트 |
| OpenClaw 게이트 | 대상 호스트 validate+doctor | 로컬 녹·EU 적 |
| 하청 서사 | 조달에 DE 주소 | 다대륙 분산 |
DM pairing / allowlist 설정 스니펫
Pairing은 미승인 발신이 게이트웨이 에이전트에 닿지 못하게 합니다. CI와 동일한 openclaw 버전을 핀하세요. openclaw config validate가 녹색일 때까지 staging만 변경합니다.
"channels": { "telegram": { "dmPolicy": "pairing", "allowFrom": ["@approved-bot", "123456789"] } }
"egress": { "mode": "allowlist", "hosts": ["api.openai.com", "registry.npmjs.org", "*.europe-west3.gcr.io"] }
프로바이더 호스트는 릴리스 노트·자산 인벤토리에서—직관으로 확장하지 마세요. allowlist 확장마다 openclaw doctor --non-interactive와 EU 네트워크 스모크를 실행하세요.
로그 필드 마스킹(pairing 코드·토큰·출구 오류)
DM pairing과 logging.redactPatterns를 동일 티켓에—필드 매핑은 EU 로그 마스킹 런북을 따르세요. 최소 마스킹: pairing_code·authorization·api_key·cookie·query 토큰이 있는 URL.
| 필드/패턴 | 조치 | 보존 |
|---|---|---|
| pairing_code, otp | 해시 또는 [REDACTED] | 디버그 ≤7일 |
| authorization Bearer | 항상 마스킹 | JSONL 평문 금지 |
| egress_denied host | 호스트만·경로 제거 | 감사 30일 |
컴플라이언스 게이트·config validate·롤백 체크포인트
CI 병합 게이트: 핀 설치 → 합성 시크릿 주입 → openclaw config validate → openclaw doctor --non-interactive → 비영 종료 시 중단.
- 체크포인트 A: 변경 전 타임스탬프
~/.openclaw/openclaw.json백업. - 체크포인트 B: 독일 Mac staging에서 validate 녹색.
- 체크포인트 C: doctor에 미계획 마이그레이션 없음.
- 체크포인트 D: JSONL 50행—평문 secret 없음.
- 롤백: 게이트웨이 중지 → 스냅샷 복원 → 패키지 핀 → staging에서 doctor 재실행.
loopback + SSH 노출 최소면
게이트웨이는 127.0.0.1에만 바인드. 관리자는 SSH LocalForward(-L 18789:127.0.0.1:18789)—티켓 없이 Gateway.Bind=lan 금지. 전체 절차: SSH LocalForward + doctor. 변경 후 lsof -iTCP:18789 -sTCP:LISTEN은 loopback만 표시해야 합니다.
프랑크푸르트 EU API p95 간이 표(독일 원격 Mac)
호스트당 200회 HTTPS, Europe/Berlin, 동일 실행에 APAC VPN 금지. 임계는 운영 신호—SLA 아님.
| 대상(EU) | p95 TTFB(ms) | 신호 | OpenClaw 연계 |
|---|---|---|---|
| eu-central-1 (AWS) | 18–32 | 녹 | STS/S3 allowlist |
| westeurope (Azure) | 22–38 | 녹 | Key Vault |
| europe-west3 (GCP) | 24–42 | >40 연속 3일 황 | Artifact Registry |
| api.openai.com (EU 경로) | 35–55 | 황 | 모델 출구 |
| 미등록 CDN | — | 적—allowlist | doctor egress_warn |
Mac mini M4 16GB vs 24GB 선정( OpenClaw + CI 프로브)
| 프로필 | 16GB+1TB | 24GB+2TB |
|---|---|---|
| validate+doctor 병렬 | 단일 게이트웨이 | 게이트웨이+Playwright 카나리아 |
| JSONL+로컬 캐시 | >6GB 압력 시 swap | 7일 로그 여유 |
| 권장 | staging·소규모 팀 | 프로덕 EU 컴플라이언스 파이프라인 |
7단계 최소 재현(EU 컴플라이언스 배포)
- Node 22.14+·핀
openclaw설치; JSON 설정 스냅샷. - staging에
dmPolicy: pairing·allowFrom설정. - 자산 인벤토리로 EU 출구 allowlist(모델·레지스트리·Git·텔레메트리).
- 로그 런북대로
logging.redactPatterns활성화. openclaw config validate—Exit 0 필수.openclaw doctor --non-interactive; 게이트웨이 재시작; JSONL 샘플.- loopback/SSH 수용; 프랑크푸르트 p95 CSV를 CAB에 첨부 후 프로덕션.
FAQ — DM pairing·allowlist·config validate
validate·doctor 녹색? OpenClaw를 leanvps 독일 노드에 고정
병합 게이트가 녹색이면 홈·프랑크푸르트 독일 노드·EU 로그 마스킹을 동일 릴리스 트레인에 묶으세요.