インスタンスのサンドボックスを構成する

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 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

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. コンテナ構成内で 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 など)。
  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    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

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. コンテナ構成内の 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 など)。
  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    gcloud beta run instances replace instance.yaml

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

Cloud Run インスタンスの現在のサンドボックス設定を表示するには:

gcloud

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

    gcloud beta run instances describe INSTANCE

    INSTANCE は実際のインスタンス名に置き換えます。

  2. 返された構成で、sandboxLauncher: true 属性を見つけます。

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