ワーカープールのサンドボックスを構成する

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 クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、 デプロイ権限アクセスの管理をご覧ください。

サンドボックスを有効にする

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

Cloud Run ワーカープールでサンドボックスを有効にするには、Google Cloud CLI または YAML 構成を使用します。

gcloud

ワーカープールをデプロイまたは更新するには、--sandbox-launcher フラグを指定します。

  • 新しいワーカープールをデプロイするには、次のコマンドを実行します。

    gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher

    次のように置き換えます。

    • WORKER_POOL: Cloud Run ワーカープールの名前
    • IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latest など)
  • 既存のワーカープールを更新するには、次のコマンドを実行します。

    gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher

YAML

  1. 新しいワーカープールを作成する場合は、この手順をスキップします。 既存のワーカープールを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. コンテナ構成内で sandboxLauncher 属性を true に設定して、YAML ファイルを更新します。

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

    次のように置き換えます。

    • WORKER_POOL: Cloud Run ワーカープールの名前
    • CONTAINER: コンテナの名前
    • IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latest など)
  3. 次のコマンドを使用して、ワーカープールを作成または更新します。

    gcloud run worker-pools replace worker-pool.yaml

    gcloud run worker-pools replace コマンドは、worker-pool.yaml ファイルが存在する場合はデフォルトで使用します。

サンドボックスは、ホスト コンテナに割り当てられた CPU とメモリを共有します。メイン コンテナの CPU とメモリの上限が、アプリケーションと同時に実行するアクティブなサンドボックスの両方に対応できることを確認してください。

サンドボックスを無効にする

ワーカープールでサンドボックスを起動する機能を無効にするには、Google Cloud CLI または YAML 構成を使用します。

gcloud

次のコマンドを実行して、--no-sandbox-launcher フラグを使用してワーカープールを更新します。

gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher

WORKER_POOL は、ワーカープールの名前に置き換えます。

YAML

  1. 新しいワーカープールを作成する場合は、この手順をスキップします。 既存のワーカープールを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. コンテナ構成内の sandboxLauncher 属性を削除するように YAML ファイルを更新します。

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

    次のように置き換えます。

    • WORKER_POOL: Cloud Run ワーカープールの名前
    • CONTAINER: コンテナの名前
    • IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latest など)
  3. 次のコマンドを使用して、ワーカープールを作成または更新します。

    gcloud run worker-pools replace worker-pool.yaml

    gcloud run worker-pools replace コマンドは、worker-pool.yaml ファイルが存在する場合はデフォルトで使用します。

サンドボックスの設定を表示する

Cloud Run ワーカープールの現在のサンドボックス設定を表示するには:

コンソール

  1. コンソール Google Cloud で、Cloud Run の [Worker pools] ページに移動します。

    Cloud Run ワーカープールに移動する

  2. ワーカープールをクリックして、[ワーカープールの詳細] ページを開きます。

  3. [変更内容] タブをクリックします。

  4. [コンテナ] タブで、[サンドボックス ランチャー] 設定を見つけて、サンドボックス化されたコンテナが有効か無効かを確認します。

gcloud

  1. 次のコマンドを使用します。

    gcloud run worker-pools describe WORKER_POOL

    WORKER_POOL は、ワーカープールの名前に置き換えます。

  2. サンドボックス化されたコンテナが有効になっていることを確認するには、返された構成で sandboxLauncher: true 属性を見つけます。

ワーカープールからサンドボックスで信頼できないコードを実行するには、Cloud Run でのコード実行をご覧ください。