1. 인프라 구축: Docker와 Tailscale을 통한 격리
OpenClaw의 기본 설정은 전용 Mac 환경을 가정하지만, 저자는 이를 Docker 기반으로 재구축하여 일회성 경계와 리셋 가능한 환경을 확보했습니다. - 네트워크 보안: 컨테이너 내부에 데몬을 실행하는 대신 Tailscale을 사이드카 컨테이너로 실행하여 공용 엔드포인트 없이 내부 네트워크(Tailnet)에서만 대시보드에 접근하도록 설정했습니다. - 실행 환경: Docker 컨테이너를 통해 에이전트의 실행 범위를 제한하고, 호스트 시스템에 대한 직접적인 접근을 차단하여 보안 사고 발생 시의 피해 범위를 최소화했습니다.
2. 신원 관리의 혁신: Just-In-Time(JIT) 비밀 정보
가장 큰 도전 과제는 에이전트에게 권한을 부여하면서도 자격 증명을 안전하게 관리하는 것이었습니다. - 전용 ID 생성: 에이전트에게 고유한 이메일 계정과 1Password 보관함을 할당했습니다. - JIT 접근: 비밀 정보를 환경 변수에 미리 로드하지 않고, 1Password CLI를 사용하여 실행 시점에만 필요한 정보를 가져옵니다. 이를 통해 메모리 캐싱이나 환경 변수 노출 위험을 제거했습니다. - 권한 회수: 서비스 계정을 통해 접근을 제어하므로, 필요 시 즉각적으로 에이전트의 권한을 차단할 수 있는 구조를 마련했습니다.
3. 브라우저 자동화와 봇 탐지 우회
기본적인 Headless Chrome은 많은 사이트에서 즉시 차단되므로, 실질적인 작업을 위해 브라우저 환경을 고도화했습니다.
- Headful 모드: Xvfb와 noVNC를 결합한 Chromium 사이드카를 구축하여 에이전트의 브라우징 과정을 실시간으로 모니터링할 수 있게 했습니다.
- 세션 유지: user-data-dir을 마운트하여 쿠키와 로컬 스토리지가 재시작 후에도 유지되도록 함으로써 재방문자로 인식되게 했습니다.
- OAuth 활용: CAPTCHA를 기술적 장애물이 아닌 신원 문제로 접근했습니다. Google OAuth를 통해 가입 및 로그인을 수행함으로써 복잡한 봇 차단 로직을 효과적으로 우회했습니다.
4. 실무 워크플로우 적용 및 위협 모델링
단순한 데모를 넘어 실제 블로그 포스팅 과정에 에이전트를 투입하여 시스템을 검증했습니다. - 워크플로우: Notion 초안 작성 -> 슬랙을 통한 음성 메모 전달 -> 에이전트의 Hugo 사이트 PR 생성 -> Cloudflare Pages 미리보기 확인 및 발행. - 위협 모델링: 프롬프트 인젝션, 자격 증명 탈취, 네트워크 남용 등을 주요 위협으로 정의하고 각각에 대한 대응책(격리, 범위 제한, 수동 승인 루프)을 수립했습니다. - 관찰 가능성(Observability): 에이전트의 작업 과정을 시각적으로 확인하고 추적할 수 있는 환경을 구축하여 시스템의 신뢰성을 높였습니다.