設定工作的沙箱

Cloud Run 沙箱提供快速、安全且獨立的環境,可執行代理程式碼、轉換資料,以及在現有工作中安全地執行指令碼。沙箱經過高度最佳化,可降低延遲,並與容器在同一個執行個體中執行,共用分配到的 CPU 和記憶體。

本頁面說明如何在容器中設定沙箱。如要瞭解如何編寫程式碼,透過 CLI 與沙箱互動,請參閱「在 Cloud Run 中執行程式碼」。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 安裝並初始化 gcloud CLI。
  7. 建立 Cloud Run 工作

必要的角色

如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予您下列 IAM 角色:

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

啟用沙箱

如要在 Cloud Run 作業中啟用沙箱,請使用 Google Cloud CLI 或 YAML 設定:

gcloud

如要建立或更新工作,請指定 --sandbox-launcher 標記:

  • 如要建立工作,請執行下列指令:

    gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest
  • 如要更新現有工作,請執行下列指令:

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

  1. 如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 更新 YAML 檔案,在容器設定中加入設為 truesandboxLauncher 屬性:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
                sandboxLauncher: true
    

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • CONTAINER:容器名稱。
    • IMAGE_URL容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest
  3. 使用下列指令建立或更新作業:

    gcloud run jobs replace job.yaml

    如果存在 job.yaml 檔案,gcloud run jobs replace 指令預設會使用該檔案。

沙箱會共用分配給主機容器的 CPU 和記憶體。請確認主要容器的 CPU 和記憶體上限,可同時容納應用程式和您執行的任何有效沙箱。

停用沙箱

如要禁止在工作中啟動沙箱,請使用 Google Cloud CLI 或 YAML 設定:

gcloud

執行下列指令,使用 --no-sandbox-launcher 旗標更新作業:

gcloud beta run jobs update JOB --no-sandbox-launcher

JOB 替換為工作名稱。

YAML

  1. 如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 更新 YAML 檔案,移除容器設定中的 sandboxLauncher 屬性:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
    

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • CONTAINER:容器名稱。
    • IMAGE_URL容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest
  3. 使用下列指令建立或更新作業:

    gcloud run jobs replace job.yaml

    如果存在 job.yaml 檔案,gcloud run jobs replace 指令預設會使用該檔案。

查看沙箱設定

如要查看 Cloud Run 作業目前的沙箱設定:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run「Jobs」頁面:

    前往 Cloud Run jobs

  2. 按一下工作,開啟「Job details」(工作詳細資料) 頁面。

  3. 在「記錄」分頁中,從清單點選已執行工作的 ID。

  4. 在「Containers」(容器) 分頁中,找到「Sandbox launcher」(沙箱啟動器) 設定,查看沙箱容器是否已啟用或停用。

gcloud

  1. 使用下列指令:

    gcloud run jobs executions describe EXECUTION_NAME --format yaml

    EXECUTION_NAME 替換為工作執行作業的名稱。

  2. 如要確認已啟用沙箱化容器,請在傳回的設定中找出 sandboxLauncher: true 屬性。

如要在工作中的沙箱執行不信任的程式碼,請參閱「在 Cloud Run 中執行程式碼」。