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 開發人員 (
roles/run.developer) - 服務身分上的服務帳戶使用者 (
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 中執行程式碼」。