Agent Safehouse

맥에서 코딩 에이전트의 파일 접근을 좁히는 샌드박스

brew install eugene1g/safehouse/agent-safehouse

맥의 샌드박스 실행 기능으로 코딩 에이전트가 실제로 필요한 파일과 연동만 건드리게 묶어 두는 도구입니다. 전부 막고 시작해서 필요한 것만 여는 방식이고, 정책 프로필을 조합해 씁니다. 주요 코딩 에이전트용 프로필이 기본으로 들어 있어 개발 작업이 막히지 않는 선에서 권한을 좁힙니다. 홈 디렉터리는 통째로 열리지 않고, 경로 확인은 되지만 목록 조회나 파일 읽기는 별도 규칙 없이는 막힙니다. 기본 예외조차 없애고 싶으면 프로필을 덧붙여 뒤에서 다시 좁힐 수 있습니다. 완벽한 보안 경계가 아니라 위험을 줄이는 층이라고 스스로 밝히고 있습니다.

판단

이럴 때 씁니다

  • 에이전트에 승인 없이 실행 권한을 주되 범위는 좁히고 싶을 때
  • 프로젝트 밖의 홈 디렉터리 파일이 읽히는 것이 신경 쓰일 때
  • 여러 코딩 도구에 같은 권한 정책을 재사용하고 싶을 때

이럴 땐 쓰지 마세요

  • 맥 전용입니다. 리눅스나 윈도우에서는 다른 방법이 필요합니다
  • 완벽한 보안 경계가 아니라 위험을 줄이는 층이라고 저장소가 직접 밝히고 있습니다
  • 정책 문법을 이해해야 예외를 제대로 다룰 수 있습니다

차별점

  • 전부 막고 시작해 필요한 것만 여는 기본값을 씁니다.
  • 주요 코딩 에이전트별 프로필이 기본으로 들어 있습니다.
  • 정책을 조합하고 마지막에 덧붙여 좁히는 방식이라 팀 공용과 기기 전용을 분리할 수 있습니다.

워크플로

  1. 01홈브루나 스크립트로 설치합니다.
  2. 02실행하려는 명령 앞에 붙여 감쌉니다.
  3. 03공유 폴더가 필요하면 읽기 전용 디렉터리 옵션으로 엽니다.
  4. 04기기별 예외는 별도 정책 파일에 적고 덧붙이기 옵션으로 뒤에서 적용합니다.
  5. 05셸 함수로 감싸 두고 여러 도구에서 같은 설정을 재사용합니다.

주요 명령

명령설명
brew install eugene1g/safehouse/agent-safehouse홈브루로 설치합니다.
safehouse <command>명령을 샌드박스 안에서 실행합니다.
safehouse --add-dirs-ro=<path> <command>공유 폴더를 읽기 전용으로 엽니다.
safehouse --append-profile=<file> <command>기기별 정책을 마지막에 덧붙여 기본 예외까지 좁힙니다.

함정

설치 전에 확인하세요

  • 홈 디렉터리를 통째로 여는 것이 아닙니다. 경로 확인은 되지만 목록 조회와 파일 읽기는 별도 규칙 없이 막힙니다.
  • 덧붙인 프로필이 가장 마지막에 적용됩니다. 그래서 기본 예외를 다시 막을 수 있고, 반대로 실수로 넓힐 수도 있습니다.
  • 깃 워크트리는 실행 시점에 한 번만 훑습니다. 이미 돌고 있는 프로세스에는 반영되지 않으므로 워크트리 상위 폴더를 옵션으로 먼저 열어 두는 편이 낫습니다.
  • 기기마다 다른 경로는 프로젝트 설정이 아니라 셸 래퍼와 로컬 정책 파일에 두라고 문서가 권합니다.

비교

컨테이너로 감싸는 방식은 격리는 확실하지만 로컬 개발 흐름이 끊깁니다. 이쪽은 맥의 샌드박스 실행 기능을 그대로 쓰기 때문에 평소 작업 환경을 유지한 채 권한만 좁힙니다. 대신 커널 수준 격리는 아니고 맥에서만 동작합니다.

최근 변경

1password 활성화 옵션이 SSH 서명 커밋에 필요한 소켓을 열도록 고쳐졌고, 에이전트 브라우저와 크로미움 옵션도 필요한 소켓을 막지 않게 바뀌었습니다.