C.W.K.
Stream
Lesson 02 of 05 · published

Sandboxing: cwd · env · 네트워크

~14 min · sandbox, cwd, environment, network

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

에이전트는 너가 보게 한 것만 알아

손잡이 셋이 에이전트 blast radius scope. cwd가 작업 디렉토리 설정 — Read/Write/Edit/Bash 모두 거기서 run. env가 서브프로세스 도구에 보이는 env 변수 설정. 네트워크 접근은 OS 레이어(방화벽, VPN)에서 또는 너 MCP 서버 정책으로 gate.

cwd를 가장 작은 viable 디렉토리로

에이전트가 /srv/myapp 아래 파일만 편집 필요하면 cwd를 /로 X. 모델이 cwd 상대 path 봄, SDK가 escape하는 path 거부(디폴트 setting). Narrow cwd가 sandbox 절반.

Env 최소로 strip

Bash가 너가 제공한 env inherit. Full 셸 환경 forward하면 에이전트가 모든 credential 변수 접근. 도구가 진짜 필요한 거만 — PATH, HOME, 그리고 task-specific 키. Leak 보호가 대부분 env 보호.

원칙: Sandboxing이 'Docker 설치' X. 에이전트가 받는 cwd, env, tool 리스트 선택. 각각이 minimum viable scope 결정.

Code

Tight sandbox options·python
import os

options = ClaudeAgentOptions(
    cwd="/srv/agent-workspace",  # / 아니라
    env={
        "PATH": "/usr/local/bin:/usr/bin:/bin",
        "HOME": "/srv/agent-workspace",
        "LANG": "en_US.UTF-8",
        # 이 task 필요한 키만:
        "WEATHER_API_KEY": os.environ["WEATHER_API_KEY"],
    },
    allowed_tools=["Read", "Bash"],
    permission_mode="default",
)
Untrusted run 위한 컨테이너 sandbox·yaml
# docker-compose.yml — read-only mount 가진 컨테이너 안 에이전트 run
services:
  agent:
    image: claude-agent:latest
    read_only: true
    tmpfs:
      - /tmp
      - /var/run
    volumes:
      - ./workspace:/workspace
      - ./input:/input:ro
    networks:
      - egress-allowlisted
    environment:
      - PATH=/usr/local/bin:/usr/bin:/bin
      # Task-specific 시크릿만 inject
networks:
  egress-allowlisted:
    driver: bridge
    internal: false
    # 외부 방화벽 / Calico / 비슷한 거가 outbound 룰 강제

External links

Exercise

프로젝트의 Agent SDK 프로세스 하나에 대해 cwd, env 키, tool 리스트 적어. 각각 한 구절로 정당화. 정당화 못 하는 거 제거.
Hint
Env가 os.environ에서 모든 거 통과시키면 에이전트가 너 모든 시크릿 가짐. Allow-list로 필터, deny-list X.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.