Cloud Run 샌드박스는 기존 인스턴스에서 호스팅되는 에이전트를 위한 신뢰할 수 없는 코드 실행 도구 또는 브라우저 자동화 소프트웨어를 실행할 수 있는 빠르고 안전하며 격리된 환경을 제공합니다. 샌드박스는 지연 시간이 매우 최적화되어 있으며 컨테이너와 동일한 인스턴스 내에서 실행되어 할당된 CPU와 메모리를 공유합니다.
이 페이지에서는 컨테이너에서 샌드박스를 구성하는 방법을 설명합니다. CLI를 사용하여 샌드박스와 상호작용하는 코드를 작성하는 방법에 대한 자세한 내용은 Cloud Run의 코드 실행을 참조하세요.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 실제 시나리오에서 제품이 어떻게 작동하는지 평가할 수 있는 계정을만듭니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- gcloud CLI를 설치하고 초기화합니다.
- Cloud Run 인스턴스를 배포합니다.
필요한 역할
Cloud Run 인스턴스를 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Run 인스턴스에 대한 Cloud Run 개발자 (
roles/run.developer) 역할 - 서비스 계정 사용자 (
roles/iam.serviceAccountUser) 서비스 ID에 대한
Cloud Run과 연결된 IAM 역할 및 권한 목록은 다음 항목을 참조하세요. Cloud Run IAM 역할 및 Cloud Run IAM 권한 Cloud Run 인스턴스가 Google Cloud Cloud 클라이언트 라이브러리와 같은 API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
샌드박스 사용 설정
Cloud Run 인스턴스에서 샌드박스를 사용 설정하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
인스턴스를 만들거나 업데이트하려면 --sandbox-launcher 플래그를 지정합니다.
새 인스턴스를 만들려면 다음 명령어를 실행합니다.
gcloud beta run instances create INSTANCE --image IMAGE_URL --sandbox-launcher
다음을 바꿉니다.
- INSTANCE: Cloud Run 인스턴스의 이름입니다.
IMAGE_URL: 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/hello:latest)
기존 인스턴스를 업데이트하려면 다음 명령어를 실행합니다.
gcloud beta run instances update INSTANCE --sandbox-launcher
YAML
새 인스턴스를 만드는 경우 이 단계를 건너뜁니다. 기존 인스턴스를 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud beta run instances describe INSTANCE --format export > instance.yaml
컨테이너 구성 내에서
sandboxLauncher속성이true로 설정되도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true다음을 바꿉니다.
- INSTANCE: Cloud Run 인스턴스의 이름입니다.
- CONTAINER: 컨테이너의 이름입니다.
IMAGE_URL: 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/hello:latest)
다음 명령어를 사용하여 인스턴스를 만들거나 업데이트합니다.
gcloud beta run instances replace instance.yaml
샌드박스는 호스트 컨테이너에 할당된 CPU와 메모리를 공유합니다. CPU 및 메모리에 대한 기본 컨테이너 한도가 애플리케이션과 동시에 실행하는 활성 샌드박스를 모두 수용할 수 있을 만큼 충분한지 확인합니다.
샌드박스 사용 중지
인스턴스에서 샌드박스를 실행하는 기능을 사용 중지하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
다음 명령어를 실행하여 --no-sandbox-launcher 플래그를 사용하여 인스턴스를 업데이트합니다.
gcloud beta run instances update INSTANCE --no-sandbox-launcher
INSTANCE를 인스턴스 이름으로 바꿉니다.
YAML
새 인스턴스를 만드는 경우 이 단계를 건너뜁니다. 기존 인스턴스를 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud beta run instances describe INSTANCE --format export > instance.yaml
컨테이너 구성 내에서
sandboxLauncher속성을 삭제하도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE spec: containers: - name: CONTAINER image: IMAGE_URL다음을 바꿉니다.
- INSTANCE: Cloud Run 인스턴스의 이름입니다.
- CONTAINER: 컨테이너의 이름입니다.
IMAGE_URL: 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/hello:latest)
다음 명령어를 사용하여 인스턴스를 만들거나 업데이트합니다.
gcloud beta run instances replace instance.yaml
샌드박스 설정 보기
Cloud Run 인스턴스의 현재 샌드박스 설정을 보려면 다음 단계를 따르세요.
gcloud
다음 명령어를 사용하세요.
gcloud beta run instances describe INSTANCE
INSTANCE를 인스턴스 이름으로 바꿉니다.
반환된 구성에서
sandboxLauncher: true속성을 찾습니다.
인스턴스의 샌드박스에서 신뢰할 수 없는 코드를 실행하려면 Cloud Run의 코드 실행을 참조하세요.