샌드박스 개요

많은 에이전트 작업에는 신뢰할 수 없는 코드 실행, 명령어 실행, 웹브라우저 사용 또는 보안 위험을 초래할 수 있는 방식으로 외부 환경과의 상호작용이 포함됩니다. Gemini Enterprise Agent Platform은 이러한 워크로드를 안전하게 처리할 수 있는 격리된 샌드박스를 제공합니다.

샌드박스는 에이전트를 대신하여 특정 작업을 실행하기 위해 생성되는 안전한 격리 실행 환경을 제공합니다. 샌드박스에서 이러한 작업을 실행하면 에이전트가 실행하는 잠재적으로 악의적이거나 잘못된 작업으로부터 인프라와 데이터를 보호할 수 있습니다. 샌드박스는 다음을 통해 이러한 위험을 완화합니다.

  • 격리: 각 샌드박스는 다른 샌드박스 및 호스트 시스템과 격리됩니다. 샌드박스에서 한 상담사가 취한 조치는 동일한 런타임 리소스를 공유하는 다른 상담사나 사용자에게 영향을 미치지 않습니다.
  • 보안: 샌드박스 내 작업이 제한되어 리소스에 대한 무단 액세스를 방지합니다. 모든 샌드박스 환경은 보안 컨테이너 샌드박스를 사용하여 강력한 보안 경계를 제공합니다. 악성 코드는 런타임 내에서 민감한 정보나 사용자 인증 정보에 액세스할 수 없습니다.
  • 안전: 에이전트가 유해한 명령어 또는 무한 루프를 실행하는 경우 영향이 샌드박스 내에 포함됩니다. 예를 들어 잘못 작성되었거나 악성 코드가 사용 가능한 모든 CPU 또는 메모리를 사용할 수 있습니다.

샌드박스와 런타임 비교

에이전트 런타임과 샌드박스는 목적과 사용 방식이 다릅니다.

  • Agent Runtime: 에이전트의 핵심 로직, 의사 결정, 오케스트레이션이 실행되는 환경입니다. 코드를 실행하고 에이전트의 수명 주기를 관리하는 신뢰할 수 있는 환경입니다.
  • 샌드박스: 특정 작업을 실행하기 위해 에이전트 또는 플랫폼에 의해 생성되는 보조 환경입니다. 샌드박스는 수명이 짧거나, 세션 기반이거나, 며칠 동안 상태를 유지할 수 있습니다.

예를 들어 에이전트가 맞춤 Python 스크립트를 생성하고 실행하여 복잡한 수식을 계산해야 하는 경우 자체 런타임이 아닌 코드 실행 샌드박스에서 해당 스크립트를 실행해야 합니다. 또한 상담사가 스킬과 셸 스크립트를 사용하는 경우 최종 사용자의 액세스 권한을 사용하여 해당 세션을 위해 특별히 프로비저닝된 환경에서 실행해야 합니다.

TTL 및 샌드박스 프로비저닝 속도

  • TTL: 샌드박스 TTL은 맞춤 컨테이너 이미지의 경우 7일에서 코드 실행 샌드박스의 경우 14일까지 다양합니다. 이를 통해 며칠 후 샌드박스 환경에서 장기 작업과 재개 가능한 셸 환경의 상태를 재개할 수 있습니다.
  • 프로비저닝: 새 샌드박스를 만드는 데 콜드 스타트에서 리소스를 프로비저닝하는 데 최대 2분이 걸리지만, 프로비저닝이 완료되면 샌드박스가 보통 몇 초 만에 가동됩니다. 기본 아키텍처는 AXSubstrate 오픈소스 프로젝트에서 확인할 수 있습니다.

기능

샌드박스는 사전 정의된 샌드박스, 맞춤 컨테이너, 엔터프라이즈 보안 제어, 수명 주기 관리와 같은 여러 기능을 제공합니다.

  • 코드 실행: 에이전트가 안전한 환경에서 코드를 생성하고 실행할 수 있습니다. 이는 복잡한 수학적 계산, 데이터 분석, 컴퓨팅이 필요한 기타 작업에 유용합니다.
  • 컴퓨터 사용: 에이전트가 웹브라우저와 상호작용하여 양식 작성, 웹 검색, 복잡한 UI 워크플로 탐색과 같은 작업을 실행할 수 있습니다.
  • 커스텀 컨테이너: '자체 컨테이너 가져오기'를 통해 특정 라이브러리, 도구 또는 구성으로 실행 환경을 맞춤설정할 수 있습니다. 이를 사용하여 커스텀 이미지의 명령어와 도구가 포함된 셸 환경을 에이전트에 제공합니다.
  • VPC 서비스 제어: 민감한 정보를 보호하고 샌드박스 환경에서 승인되지 않은 이그레스를 방지하도록 보안 경계를 구성합니다.
  • 고객 관리 암호화 키 (CMEK): Cloud Key Management Service (Cloud KMS)에서 관리되는 암호화 키로 샌드박스 저장 데이터를 보호합니다.