Cloud Run サンドボックスは、既存のインスタンスでホストされているエージェントの信頼できないコード実行ツールやブラウザ自動化ソフトウェアを実行するための、高速で安全な分離環境を提供します。サンドボックスはレイテンシが非常に最適化されており、コンテナと同じインスタンス内で実行され、割り当てられた CPU とメモリを共有します。
このページでは、コンテナでサンドボックスを構成する方法について説明します。 CLI を使用してサンドボックスとやり取りするコードの作成の詳細については、 Cloud Run でのコード実行をご覧ください。
始める前に
- アカウントに Google Cloud ログインします。 を初めて使用する場合は、 Google Cloud、 アカウントを作成して、 実際のシナリオでプロダクトがどのように機能するかを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイに利用できる $300 分の無料クレジットも提供されます。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- gcloud CLI を インストールして初期化します。
- Cloud Run インスタンスをデプロイします。
必要なロール
Cloud Run インスタンスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Run インスタンスに対する Cloud Run デベロッパー (
roles/run.developer) - サービス ID に対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser)
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
新しいインスタンスを作成する場合は、この手順をスキップしてください。 既存のインスタンスを更新する場合は、その YAML 構成をダウンロードします。
gcloud beta run instances describe INSTANCE --format export > instance.yaml
コンテナ構成内で
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など)。
次のコマンドを使用して、インスタンスを作成または更新します。
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
コンテナ構成内の
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など)。
次のコマンドを使用して、インスタンスを作成または更新します。
gcloud beta run instances replace instance.yaml
サンドボックスの設定を表示する
Cloud Run インスタンスの現在のサンドボックス設定を表示するには:
gcloud
次のコマンドを使用します。
gcloud beta run instances describe INSTANCE
INSTANCE は実際のインスタンス名に置き換えます。
返された構成で、
sandboxLauncher: true属性を見つけます。
インスタンスからサンドボックスで信頼できないコードを実行するには、Cloud Run でのコード実行をご覧ください。