Exec Host 리팩토링: 코드 실행 위치와 보안을 내 마음대로
에이전트가 생성한 코드를 실행할 때, 매번 로컬 환경이 안전할지 고민되시죠? 어떤 작업은 격리된 Docker 환경이 필요하고, 어떤 작업은 실제 시스템 도구에 접근해야 합니다. 하지만 보안을 유지하면서 실행 위치를 유연하게 바꾸는 일은 생각보다 까다롭습니다.
이제 새로운 exec.host와 exec.security 설정을 통해 실행 경로를 명확하게 제어할 수 있습니다. 보안은 기본적으로 안전하게 유지하면서, 필요할 때만 권한을 부여하는 방법을 소개할게요.
필요한 것
섹션 제목: “필요한 것”- OpenClaw 실행 환경
~/.openclaw/exec-approvals.json파일 (설정 저장용)- macOS, Linux 또는 Windows 운영체제
빠른 시작
섹션 제목: “빠른 시작”5분 안에 새로운 실행 환경을 설정하고 코드를 실행해 보세요.
-
실행 위치(Host) 결정하기
exec.host파라미터를 사용하여 코드가 실행될 곳을 지정하세요.sandbox: Docker 컨테이너 안에서 실행합니다 (기본값).gateway: Gateway가 돌아가는 호스트에서 직접 실행합니다.node: Bridge로 연결된 특정 노드 runner에서 실행합니다.
-
보안 모드 설정하기
exec.security를 통해 실행 권한을 제어하세요.deny(차단),allowlist(허용 목록만),full(전체 허용) 중 선택할 수 있습니다. -
승인 정책 구성하기
~/.openclaw/exec-approvals.json파일을 생성하여 로컬 정책을 관리하세요. 아래는 기본적인 설정 예시입니다.
{ "version": 1, "socket": { "path": "~/.openclaw/exec-approvals.sock", "token": "base64-opaque-token" }, "defaults": { "security": "deny", "ask": "on-miss", "askFallback": "deny" }, "agents": { "agent-id-1": { "security": "allowlist", "ask": "on-miss", "allowlist": [ { "pattern": "~/Projects/**/bin/rg", "lastUsedAt": 0, "lastUsedCommand": "rg -n TODO", "lastResolvedPath": "/Users/user/Projects/.../bin/rg" } ] } }}- Slash 명령어 사용하기
에이전트 세션에서 즉시 설정을 바꾸고 싶다면 아래 명령어를 입력하세요.
/exec host=gateway security=allowlist ask=on-miss/elevated on(Gateway의full권한을 사용하는 빠른 방법입니다)
문제 해결
섹션 제목: “문제 해결”실행 중 문제가 발생하면 다음 사항을 확인해 보세요.
- UI 창이 뜨지 않아요: UI를 사용할 수 없는 환경에서는
ask모드가 작동하지 않습니다. 이 경우exec-approvals.json의askFallback설정에 따라 실행이 자동으로 차단되거나 허용됩니다. - 노드 지정 에러가 발생해요:
host=node를 사용할 때 어떤 노드에서 실행할지 모호하면 에러가 납니다.exec.node파라미터에nodeId나displayName을 정확히 입력했는지 확인하세요. - 출력이 잘려서 나와요: 전체 출력물은 200k로 제한됩니다. 이벤트 로그에는 마지막 20k 분량만 표시되니 참고하세요.
구체적인 설정에 도움이 필요하다면 AI Setup Assistant에게 물어보세요.
다음 단계
섹션 제목: “다음 단계”OpenClaw Expert
아직 막혀 있나요?
이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.