Cloud Run 沙盒提供了一个快速、安全且隔离的环境,用于运行不受信任的代码执行工具或浏览器自动化软件,以供托管在现有实例上的代理使用。沙盒针对延迟进行了高度优化,并且与容器在同一实例中运行,共享其分配的 CPU 和内存。
本页面介绍如何在容器上配置沙盒。 如需详细了解如何编写代码以使用 CLI 与沙盒进行交互,请参阅 Cloud Run 中的代码执行。
准备工作
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
- 安装并初始化 gcloud CLI。
- 部署 Cloud Run 实例。
所需的角色
如需获得配置和部署 Cloud Run 实例所需的权限,请让管理员为您授予以下 IAM 角色:
- Cloud Run 实例的 Cloud Run Developer (
roles/run.developer) 角色 - 服务身份的 Service Account User (
roles/iam.serviceAccountUser) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色 和 Cloud Run IAM 权限。 如果您的 Cloud Run 实例与 Cloud de Confiance API(例如 Cloud 客户端库)进行交互,请参阅 服务身份配置指南。 如需详细了解如何授予角色,请参阅 部署权限 和管理访问权限。
启用沙盒
如需在 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
更新 YAML 文件,以在容器配置中包含设置为
true的sandboxLauncher属性: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
更新 YAML 文件,以移除容器配置中的
sandboxLauncher属性: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 中的代码执行。