본문 바로가기

개발이야기

Google Cloud Run Sandboxes, AI 에이전트가 쓰는 코드를 어떻게 격리할까

반응형

핵심 요약

2026년 7월 9일 Google은 Cloud Run sandboxes를 public preview로 발표했다. Cloud Run 서비스에 --sandbox-launcher 플래그를 추가하면, 같은 인스턴스 안에서 untrusted·모델 생성 코드를 밀리초 단위로 격리 실행할 수 있다. 기본적으로 환경변수·메타데이터 서버 접근이 차단되고 네트워크 egress는 deny-by-default다. Agent Development Kit(ADK)의 CloudRunSandboxCodeExecutor와 연동하면 에이전트 코드 실행을 한 줄로 위임할 수 있으나, ADK 통합은 아직 main 브랜치 수준이므로 버전 확인이 필요하다.

무슨 일이 있었나

Google Cloud Blog(2026-07-09)는 WeAreDevelopers World Congress에서 Cloud Run sandboxes preview를 공개했다. 핵심 사용 사례는 "LLM이 생성한 Python을 서비스 자격증명 노출 없이 실행"하는 것이다.

보안 경계는 세 가지다.

1. 자격증명·환경 격리: 샌드박스는 Cloud Run 서비스의 env·GCP metadata server에 접근 불가.

2. 네트워크 deny-by-default: 기본 아웃바운드 차단, 필요 시 --allow-egress로 호스트·포트 단위 허용.

3. 경량·저지연: Firecracker 기반으로 ms급 cold start.

배포 시 gcloud beta run deploy ... --sandbox-launcher를 쓰면 컨테이너에 /usr/local/gcp/bin/sandbox CLI가 마운트된다. 애플리케이션은 subprocesssandbox do를 호출해 Python 등을 실행한다(〈Medium·Sascha Heyer〉 2026-07).

ADK 측면에서는 code_executor=CloudRunSandboxCodeExecutor() 한 줄로 연동 가능하나, 2026-07-11 기준 google-adk 2.4.0(PyPI)에는 없고 adk-python main 브랜치에서 pip install git+https://github.com/google/adk-python로 설치해야 한다(〈GitHub SKILL.md〉).

ComputeSDK에도 Cloud Run sandbox 지원이 추가돼, 원격·로컬 호출을 vendor-agnostic하게 다룰 수 있다(〈Google Cloud Blog〉).

개발자 관점 해석

GPT-5.6 Sol 파일 삭제 논란(2026-07-14) 이후, "에이전트에게 호스트에서 바로 shell을 주지 말라"는 담론이 커졌다. Cloud Run sandbox는 이미 Cloud Run에 올린 API/에이전트 서비스에 붙이기 좋은 mid-layer다. E2B·Daytona 같은 전용 샌드박스 SaaS와 달리, 추가 VM 프로비저닝 없이 기존 serverless 워크로드에 통합한다는 점이 차별점이다(Upstash Blog 2026-06 비교 글 맥락).

주의할 sharp edge(Medium 2026-07):

  • 샌드박스 Python 인터프리터는 절대 경로 지정 필요.
  • 부모 프로세스 env가 상속되지 않음 → 필요한 env는 sandbox CLI 인자로 명시.
  • ADK 릴리스 전까지 git install 의존 → CI pin 전략 필요.

Microsoft MXC(Build 2026, preview)처럼 OS 레벨 정책 JSON으로 에이전트를 격리하는 대안도 있으나, GCP 중심 팀에는 Cloud Run sandbox가 배포 friction이 낮다.

실무 적용 순서 (고유 정리)

1. PoC 서비스--sandbox-launcher 배포, sandbox do -- python script.py 수동 검증.

2. egress 필요 시 --allow-egress=host:443 최소 허용, exfiltration 테스트.

3. ADK Agent에 CloudRunSandboxCodeExecutor 연결, git pin된 adk-python 사용.

4. Sol·기타 frontier 모델은 샌드박스 내부에서만 코드 실행, prod DB credentials는 샌드박스 밖.

5. Observability: Cloud Logging에 sandbox exit code·stderr 수집, 실패 시 human review.

마무리

Cloud Run sandboxes는 "에이전트 시대의 serverless 격리 레이어"로 볼 수 있다. preview 단계이므로 SLA·보안 감사는 자체 검증이 필요하지만, GPT-5.6 Sol류 고자율 모델을 서비스에 붙일 때 '호스트 shell 직접 실행'의 대안으로 실무 검토 가치가 있다. ADK 정식 릴리스를 기다리는 동안 git pin + staging 검증으로 시작하는 것이 현실적이다.

참고 자료