macOS Agent에게 프롬프트만으로는 부족한 이유
Cursor, Windsurf 같은 AI 코딩 도구 덕분에 "모델에게 코드를 수정하게 한다"는 일이 일상이 되었습니다.
그러나 Agent가 IDE 제안 수준을 넘어 자율 셸 실행, 시크릿 접근, 시스템 API 호출까지 확장하면 위험 프로필이 완전히 달라집니다——
더 이상 diff를 제안하는 것이 아니라, 사용자 신원으로 디스크에 쓰는 것이기 때문입니다.
내부 테스트에서 제약 없는 Agent가 다중 파일 리팩터링 중 ~/.ssh/id_ed25519 옆에 쓰기를 시도했고,
security find-identity로 키체인을 열거하려 했습니다——개발자 노트북에서는 견딜 수 있지만,
CI 서명 키를 보유한 클라우드 Mac에서는 용납할 수 없습니다.
흔한 대응은 Docker나 VM이지만, macOS에서 컨테이너 옵션은 완전한 Xcode 툴체인이 없거나 Apple 코드 서명 스택과 충돌하는 경우가 많습니다. 다른 접근법은 Agent에게 전용 물리 머신을 주고, 파일시스템·네트워크·프로세스 접근을 정책 엔진 뒤에 잠그는 것——여기서 OpenClaw가 시작됩니다. PixVPS 전용 Mac mini M4 노드에서 동작하며, Apple Silicon 연산을 호스트와 공유하면서 작업 단위 감사와 권한 경계를 추가해 Agent가 금지된 리소스에 닿지 않고 일할 수 있게 합니다.
하드웨어: Mac mini M4 · 10코어 CPU · 16 GB 통합 메모리 · 256 GB NVMe · 1 Gbps 전용 대역폭(PixVPS 싱가포르 노드).
OS: macOS 15 Sequoia. OpenClaw CLI 0.9.4, 정책 포맷 v2.
Agent 런타임: 자체 오케스트레이션 스크립트 + LangGraph 0.2; 벤치마크 작업: 저장소 스캔 → 패치 생성 → 단위 테스트 실행.
접속: SSH 제로 트러스트 토큰 + 콘솔 VNC로 사이드 관찰.
OpenClaw 아키텍처: 3계층 격리
OpenClaw를 macOS와 Agent 사이의 정책·감사 미들웨어 계층으로 이해하면 됩니다. 세 가지 협력 컴포넌트로 구성됩니다:
- Policy Engine: 선언형 YAML 규칙을 읽고 모든 시스템 호출 전에 허용/거부를 평가합니다. 거부 시 구조화된 오류 코드를 반환해 오케스트레이션이 재시도하거나 폴백할 수 있습니다.
- Sandbox Runtime: Agent 세션마다 격리된 쓰기 가능 워크스페이스를 마운트하며, 기본적으로
/workspace와 명시적 화이트리스트 경로만 노출합니다.~/Library/Keychains,/etc같은 민감 영역은 차단합니다. - Audit Bus: 모든 파일 읽기/쓰기, 자식 프로세스 생성, 아웃바운드 네트워크 연결을 JSON Lines로 기록합니다——세션 ID, 정책 버전, 시간 창으로 조회 가능하며, 기본 보존 기간은 90일입니다.
"머신 전체를 재이미징"하거나 "사용자 계정을 전환"하는 방식과 비교하면, OpenClaw는 버전 관리·롤백 가능한 정책에서 강점이 있습니다:
한 대의 M4 노드에서 읽기 전용 코드 분석 Agent와 /workspace 쓰기 권한을 가진 빌드 Agent를 각각 다른 YAML에 묶어 동시에 실행할 수 있고, 서로 간섭하지 않습니다.
M4의 38 TOPS Neural Engine은 호스트 전용으로 유지되며, 샌드박스 계층이 추론 지연을 거의 추가하지 않습니다——
200회 연속 도구 호출 스트레스 테스트에서 정책 평가 평균은 1.8 ms로, 사실상 무시할 수 있는 수준입니다.
콘솔 활성화와 환경 준비
OpenClaw는 표준 PixVPS Mac mini M4 인스턴스에 기본 포함되어 있으며, 별도 추가 구매가 필요 없습니다. 클라우드 노드가 아직 없다면 주문 페이지에서 지역과 기간을 선택하세요—— 결제 후 1–5분 이내에 콘솔에 SSH 자격 증명이 표시됩니다. 아래 단계는 이미 인스턴스에 SSH 접속이 가능하다고 가정합니다.
-
01
콘솔에서 OpenClaw 활성화
인스턴스 상세 → Security & Sandbox → OpenClaw 켜기. 최초 활성화 시 인스턴스 수준
instance-token이 한 번만 표시됩니다——즉시 팀 시크릿 저장소에 보관하세요. -
02
CLI 설치 및 인스턴스 바인딩
SSH 접속 후 아래 명령을 실행합니다. CLI는 PixVPS 소프트웨어 소스로 배포되며, 시스템 Python이나 Homebrew와 충돌하지 않습니다.
-
03
데몬 및 헬스 체크 확인
openclaw status를 실행하고 Policy Engine, Sandbox Runtime, Audit Bus가 모두healthy로 보고되는지 확인합니다.
인스턴스 SSH 세션에서:
curl -fsSL https://api.pixvps.com/openclaw/install.sh | bash
openclaw auth login --token <instance-token>
openclaw status
instance-token은 1Password, Bitwarden 등에 보관하고——저장소에 평문으로 두지 마세요.
토큰이 유출되면 콘솔의 Rotate Instance Token으로 즉시 무효화할 수 있습니다. 실행 중인 샌드박스 세션에는 영향이 없지만, 새 세션에는 새 토큰이 필요합니다.
CLI 명령과 첫 샌드박스 작업
OpenClaw CLI는 운영자가 SSH로 작업의 약 90%를 처리할 수 있도록 설계되었습니다. GUI는 감사 검색과 긴급 바이패스 전용입니다. 최소 해피 패스: 샌드박스 생성 → 정책 연결 → 샌드박스 내부에서 Agent 진입 스크립트 실행.
openclaw sandbox create --name dev-agent --policy ./policies/readonly.yaml
openclaw sandbox exec dev-agent -- /bin/zsh -lc 'ls -la /workspace'
openclaw sandbox list
openclaw sandbox stop dev-agent
sandbox create는 /var/openclaw/sandboxes/<id>/ 아래에 격리 워크스페이스를 할당하고,
정책 파일 해시를 감사 로그에 기록해 나중에 "당시 어떤 경로가 허용되었는지"를 추적할 수 있게 합니다.
sandbox exec는 최고의 디버그 도구입니다: 전체 Agent 오케스트레이션을 연결하기 전에 정책이 너무 타이트한지 느슨한지 검증하세요.
첫 작업은 Agent가 비공개 Git 저장소를 클론하고 테스트를 실행하는 것이었습니다. 함정: 기본 정책이 ~/.gitconfig를 차단해
HTTPS 자격 증명 읽기가 실패했습니다. 해결: ~/.gitconfig에 읽기 전용 화이트리스트 항목을 추가하거나, SSH 배포 키로 전환하고 ~/.ssh/deploy_key를 명시적으로 허용하세요.
권한 YAML: 읽기 전용에서 쓰기 가능 빌드까지
정책 파일은 apiVersion: openclaw.pixvps.com/v2를 사용하는 선언형 YAML입니다.
핵심 블록은 filesystem, process, network이며,
각각 allow와 deny 목록을 지원합니다——deny가 allow보다 우선합니다.
apiVersion: openclaw.pixvps.com/v2
kind: SandboxPolicy
metadata:
name: readonly-analyzer
spec:
filesystem:
allow:
- path: /workspace
access: [read]
deny:
- path: "**/Keychains/**"
- path: "**/.ssh/**"
process:
allow: [git, rg, python3]
network:
egress: deny-all
빌드 Agent는 /workspace 쓰기, xcodebuild 호출, npm 레지스트리 접근이 필요합니다.
filesystem.allow에서 /workspace 접근을 [read, write]로 설정하고,
process.allow에 xcodebuild, swift, npm을 추가하며,
network.egress를 allow-list로 전환하고 registry.npmjs.org:443, github.com:443 같은 항목을 넣으세요.
| Agent 시나리오 | 파일시스템 | 프로세스 화이트리스트 | 네트워크 |
|---|---|---|---|
| 정적 코드 리뷰 | /workspace 읽기 전용 |
git, rg, python3 | 아웃바운드 차단 |
| iOS 빌드 Agent | /workspace 읽기/쓰기; 키체인 경로 거부 |
xcodebuild, codesign, fastlane | Apple / GitHub 도메인 허용 목록 |
| 문서 스크래핑 Agent | /workspace 읽기/쓰기 |
curl, python3 | 특정 문서 사이트 HTTPS |
| 운영 점검 Agent | 시스템 로그 경로 읽기 전용 | log, df, top | 아웃바운드 차단 |
openclaw policy apply -f ./policies/build.yaml --sandbox dev-agent로 정책 변경을 핫 리로드할 수 있습니다.
엔진은 YAML 구문과 경로 충돌을 검증하며, 동일 경로를 허용과 거부에 동시에 넣은 설정은 거부합니다.
정책 파일을 Git에 보관하고 PR에서 리뷰하세요——권한 확장은 애플리케이션 코드와 동일한 수준의 검토가 필요합니다.
다중 사용자 제로 트러스트 액세스
프로덕션 팀에서 한 명의 엔지니어가 Agent를 지켜보는 경우는 드뭅니다——SSH 개인 키를 공유하는 것도 좋지 않습니다. OpenClaw는 PixVPS 제로 트러스트 게이트웨이와 통합됩니다: 각 사용자는 콘솔 팀 멤버 페이지에서 개인 디바이스 인증서를 발급받고, MFA를 통과한 뒤 장기 비밀번호 대신 단기 SSH 인증서(기본 8시간)를 받습니다.
역할은 세 가지입니다: viewer(감사 로그만); operator(샌드박스 생성/중지, sandbox exec 실행);
admin(정책 편집, 토큰 로테이션). 역할은 콘솔에서 할당하며, CLI에서 openclaw auth whoami로 현재 신원을 확인할 수 있습니다.
instance-token을 평문 GitHub Actions secret에 넣고 fork PR에서 워크플로를 자동 실행하지 마세요——
CI Runner 토큰과 동일한 규칙입니다: 저장소 설정에서 워크플로 트리거를 제한하거나, PixVPS 단기 OIDC 연합 토큰을 사용하세요.
퇴사 멤버의 디바이스 인증서는 콘솔에서 즉시 취소하세요. 감사 로그는 과거 작업을 보존합니다.
CI/CD 및 자동화 파이프라인 통합
Agent 작업이 수동 트리거에서 "push마다 실행"으로 옮겨갈 때, OpenClaw 세션은 파이프라인 오케스트레이션에 포함되어야 합니다.
일반적인 구성: 동일 PixVPS M4 노드에 GitHub Actions self-hosted Runner를 두고,
워크플로 단계에서 openclaw sandbox create → 샌드박스 내부에서 Agent 진입 스크립트 실행 → sandbox stop 및 감사 요약 업로드.
- name: Run Agent in OpenClaw sandbox
run: |
openclaw sandbox create --name ci-${{ github.run_id }} \
--policy ./ops/openclaw/ci-build.yaml
openclaw sandbox exec ci-${{ github.run_id }} -- \
./scripts/agent-entry.sh
openclaw audit export --sandbox ci-${{ github.run_id }} \
--format jsonl -o ./audit-${{ github.run_id }}.jsonl
openclaw sandbox stop ci-${{ github.run_id }}
Jenkins에서는 공유 Pipeline 라이브러리로 단계를 감싸고, post { always { ... } }에서 감사 로그보내기를 강제하세요——
실패한 Agent가 디스크를 소비하는 좀비 샌드박스를 남기지 않도록 합니다.
단일 샌드박스 워크스페이스 피크는 약 2.4 GB(DerivedData 포함)였습니다.
16 GB 통합 메모리 M4 노드는 swap 없이 빌드 샌드박스 2개를 동시 실행할 수 있습니다——그 이상이면 TB5 다중 머신 클러스터링이나 Runner 분리를 고려하세요.
감사 로그 검색과 일반적인 장애 대응
감사는 OpenClaw의 핵심 프로덕션 가치입니다. 모든 차단과 허용은 Audit Bus에
timestamp, sandbox_id, policy_hash, action, target, decision, actor 필드를 포함해 기록됩니다.
CLI 예시:
openclaw audit tail --sandbox dev-agent --follow로 실시간 tail;
openclaw audit query --since 24h --decision deny로 최근 24시간 거부 내역;
openclaw audit export --format jsonl -o audit.jsonl로 법무·SOC2 증거 체인 보내기.
| 증상 | 가능한 원인 | 조치 |
|---|---|---|
openclaw status에서 Audit Bus unhealthy |
디스크 사용률 85% 초과, 로그 로테이션 실패 | openclaw audit vacuum --before 30d 실행 또는 SSD 스토리지 추가 |
Agent가 E_POLICY_DENY: filesystem 보고 |
대상 경로가 화이트리스트에 없음 | audit query --decision deny로 경로 확인 후 YAML 업데이트 |
sandbox create 타임아웃 |
동시 샌드박스 한도 도달(기본 5) | sandbox list로 좀비 세션 정리, 또는 콘솔에서 할당량 상향 |
| 허용 목록에 도메인이 있어도 네트워크 차단 | 포트 누락 또는 CDN CNAME 미포함 | *:443 패턴 사용 또는 실제 대상 패킷 캡처 |
| SSH 인증서 로그인 실패 | 만료된 디바이스 인증서 또는 오래된 MFA | 콘솔에서 재발급; 로컬 시스템 시계 확인 |
정책 엔진 자체가 실패하면 콘솔에 Security Bypass 스위치가 있습니다——admin 전용, 활성화당 최대 15분——
모든 바이패스 작업은 최고 심각도로 기록됩니다. P0 장애가 아니면 프로덕션에서 피하세요.
프로덕션으로: 클라우드 Mac에서 Agent 샌드박스를 단계적으로 배포
원래 질문으로 돌아가면: Agent는 macOS가 필요하지만, 베어메탈에서 무제한으로 돌려서는 안 됩니다—— 사무실 Mac은 전력·운영 부담이 있고, 퍼블릭 클라우드 macOS 인스턴스는 종종 가상화되어 OpenClaw 같은 작업 단위 감사가 없습니다. PixVPS는 전용 물리 Mac mini M4 + 네이티브 OpenClaw 통합을 제공합니다: 결제 후 1–5분 배포, SSH / VNC 접속, 지연에 따라 5개 노드(싱가포르, 일본 도쿄, 한국 서울, 홍콩, 미국 동부) 선택, 실험은 일 $21.1부터——안정화되면 월 $105.7로 전환하고, 끝나면 해제하세요.
권장 롤아웃: 단일 노드에서 읽기 전용 정책으로 Agent 로직 검증 → /workspace 쓰기와 네트워크 허용 목록을 점진적으로 개방 →
정책 YAML을 Git에 커밋하고 CI 연결 → 팀에 역할 기반 제로 트러스트 인증서 할당.
온디바이스 모델 추론이 필요하면 M4의 38 TOPS Neural Engine이 샌드박스 밖에서 가속할 수 있으며, 샌드박스 정책과는 독립적입니다.
5분 경로가 필요하면 동반 글 OpenClaw 샌드박스 5분 시작을 참고하세요.
-
01
노드 선택 및 인스턴스 개설
주문 페이지에서 지역과 기간을 선택하고, 결제 후 콘솔에서 OpenClaw를 활성화한 뒤 instance-token을 저장하세요.
-
02
CLI 설치 및 첫 읽기 전용 정책 커밋
sandbox exec으로 Agent 진입 스크립트가 제약 하에서 실행되는지 확인한 뒤, 쓰기 권한을 단계적으로 넓히세요. -
03
CI 연결 및 팀 제로 트러스트
워크플로에서 감사 로그보내기를 강제하고, viewer / operator / admin 역할을 할당하며, 토큰을 정기적으로 로테이션하세요.
프로덕션 Agent의 기준은 모델 크기가 아닙니다——모든 시스템 호출이 예측 가능하고, 추적 가능하며, 되돌릴 수 있는지입니다. OpenClaw는 이를 버전 관리 가능한 YAML과 검색 가능한 감사 로그로 만듭니다. PixVPS는 가상화 오버헤드 없는 Apple Silicon 연산과 분 단위 프로비저닝을 제공합니다. 둘을 함께 쓰면 속도와 컴플라이언스의 균형을 맞춘 macOS 자동화 Agent의 현실적인 경로가 됩니다.
AI Agent에게 OpenClaw 샌드박스가 있는 클라우드 Mac을
PixVPS Mac mini M4 전용 노드는 OpenClaw가 기본 내장되어 있습니다: 작업 단위 격리, 제로 트러스트 액세스, 90일 감사 보존, 16 GB 통합 메모리와 38 TOPS 온디바이스 추론——5개 글로벌 노드에서 일 $21.1부터.