Notion Workers는 개발자들이 커스텀 에이전트에게 외부 데이터 동기화, 자동화 트리거, API 호출 등의 강력한 기능을 부여할 수 있게 하는 핵심 기능입니다. 하지만 이 워커(Worker)들은 제3자 개발자가 작성한 임의 코드를 Notion 사용자 계정 권한으로 실행한다는 점에서 심각한 보안 및 인프라 문제를 내포하고 있습니다.
1. 근본적인 보안 문제: 격리(Isolation)와 신뢰성 확보
가장 큰 문제는 '격리'입니다. 만약 워커가 적절히 분리되지 않은 환경에서 실행된다면, 단 한 번의 프롬프트 주입(prompt injection) 공격만으로도 인증 정보(credentials)를 탈취하거나 다른 사용자의 데이터에 접근할 수 있습니다. 따라서 Vercel Sandbox는 이 문제를 해결하기 위해 각 Notion Worker를 독립적인 Firecracker 마이크로 VM에서 실행합니다. 이는 일반 컨테이너보다 강력한 커널 레벨의 격리를 제공하며, 각 실행마다 자체 파일 시스템과 네트워크 스택을 할당받습니다.
2. 핵심 보안 메커니즘: 시크릿 노출 방지 (Credential Security)
두 번째 난제는 API 키와 같은 민감한 시크릿(secrets) 관리입니다. 워커가 외부 서비스와 통신하려면 API 키가 필요하지만, 이 키들이 실행 환경 내부로 유입되는 것 자체가 보안 취약점입니다. Vercel Sandbox는 이를 해결하기 위해 **방화벽 프록시(firewall proxy)**를 사용합니다. 이 프록시는 아웃바운드 요청을 네트워크 레벨에서 가로채고 API 키를 주입함으로써, 시크릿이 코드 실행 환경에 절대 노출되지 않도록 합니다. 이는 에이전트 기반 워크로드에서 가장 위험한 취약점(시크릿 탈취)을 근본적으로 제거합니다.
3. 확장성과 제어 기능: 네트워크 및 상태 관리
Vercel Sandbox는 대규모로 운영되는 플랫폼에 필요한 여러 고급 기능을 제공합니다:
- 동적 네트워크 정책 (Dynamic Network Policies): 프로세스를 재시작할 필요 없이 런타임 중에 네트워크 접근 권한을 변경할 수 있습니다. 예를 들어, 초기에는 의존성 설치를 위해 인터넷 접속을 허용한 후, 실제 코드가 실행되기 직전에 아웃바운드(egress) 트래픽을 제한하여 보안을 강화할 수 있습니다.
- 스냅샷 (Snapshots): 필요한 경우 파일 시스템 상태를 스냅샷으로 저장하고 나중에 복원할 수 있습니다. 이는 의존성 설치와 같은 초기 작업을 한 번만 수행하고, 이후 호출 시에는 이 스냅샷에서 재개하여 비용 효율성과 속도를 높입니다.
- 비용 예측 가능성 (Cost Predictability): CPU 사용량에 대해서만 과금하는 모델(active-CPU billing)을 채택하여, I/O 대기 시간 등으로 인해 발생하는 불필요한 비용 지출 없이 확장 가능한 경제성을 확보합니다.
결론적으로, Vercel Sandbox는 Notion이 단순한 애플리케이션 플랫폼을 넘어 개발자 플랫폼으로 진화하는 데 필요한 '안전한 코드 실행', '신뢰할 수 있는 자격 증명 관리', '네트워크 격리' 등의 복잡한 인프라 문제를 대신 처리해 줍니다. 이를 통해 Notion은 개발자들이 오직 사용자 경험(developer experience)에만 집중할 수 있도록 합니다.