Sandboxes für Instanzen konfigurieren

Cloud Run-Sandboxes bieten eine schnelle, sichere und isolierte Umgebung zum Ausführen von Tools zur Code-Ausführung nicht vertrauenswürdigen Codes oder Browserautomatisierungssoftware für Agents, die auf Ihrer vorhandenen Instanz gehostet werden. Sandboxes sind stark auf Latenz optimiert und werden in derselben Instanz wie Ihr Container ausgeführt. Dabei werden die zugewiesene CPU und der zugewiesene Arbeitsspeicher gemeinsam genutzt.

Auf dieser Seite wird beschrieben, wie Sie Sandboxes in Ihrem Container konfigurieren. Weitere Informationen zum Schreiben von Code für die Interaktion mit der Sandbox über die CLI finden Sie unter Code-Ausführung in Cloud Run.

Hinweis

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

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Installieren und initialisieren Sie die gcloud CLI.
  4. Stellen Sie eine Cloud Run-Instanz bereit.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Instanzen benötigen:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihre Cloud Run-Instanz mit Cloud de Confiance APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Sandboxes aktivieren

Verwenden Sie die Google Cloud CLI oder eine YAML-Konfiguration, um Sandboxes in Cloud Run-Instanzen zu aktivieren:

gcloud

Geben Sie das Flag --sandbox-launcher an, um die Instanz zu erstellen oder zu aktualisieren:

  • Führen Sie den folgenden Befehl aus, um eine neue Instanz zu erstellen:

    gcloud beta run instances create INSTANCE --image IMAGE_URL --sandbox-launcher

    Ersetzen Sie Folgendes:

    • INSTANCE: Der Name Ihrer Cloud Run-Instanz.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  • Führen Sie den folgenden Befehl aus, um eine vorhandene Instanz zu aktualisieren:

    gcloud beta run instances update INSTANCE --sandbox-launcher

YAML

  1. Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Aktualisieren Sie die YAML-Datei, um das Attribut sandboxLauncher mit dem Wert true in die Containerkonfiguration aufzunehmen:

    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
    

    Ersetzen Sie Folgendes:

    • INSTANCE: Der Name Ihrer Cloud Run-Instanz.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:

    gcloud beta run instances replace instance.yaml

Sandboxes verwenden die CPU und den Arbeitsspeicher, die dem Hostcontainer zugewiesen sind. Achten Sie darauf, dass die Limits für CPU und Arbeitsspeicher Ihres Hauptcontainers ausreichen, um sowohl Ihre Anwendung als auch alle aktiven Sandboxes aufzunehmen, die Sie gleichzeitig ausführen.

Sandboxes deaktivieren

Verwenden Sie die Google Cloud CLI oder eine YAML-Konfiguration, um die Möglichkeit zu deaktivieren, eine Sandbox in Ihrer Instanz zu starten:

gcloud

Aktualisieren Sie die Instanz mit dem Flag --no-sandbox-launcher, indem Sie den folgenden Befehl ausführen:

gcloud beta run instances update INSTANCE --no-sandbox-launcher

Ersetzen Sie INSTANCE durch den Namen Ihrer Instanz.

YAML

  1. Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Aktualisieren Sie die YAML-Datei, um das Attribut sandboxLauncher aus der Containerkonfiguration zu entfernen:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
    spec:
      containers:
      - name: CONTAINER
        image: IMAGE_URL
    

    Ersetzen Sie Folgendes:

    • INSTANCE: Der Name Ihrer Cloud Run-Instanz.
    • CONTAINER: Der Name Ihres Containers.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:

    gcloud beta run instances replace instance.yaml

Sandbox-Einstellungen ansehen

So rufen Sie die aktuellen Sandbox-Einstellungen für Ihre Cloud Run-Instanz auf:

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud beta run instances describe INSTANCE

    Ersetzen Sie INSTANCE durch den Namen Ihrer Instanz.

  2. Suchen Sie in der zurückgegebenen Konfiguration nach dem Attribut sandboxLauncher: true.

Informationen zum Ausführen von nicht vertrauenswürdigem Code in einer Sandbox über Ihre Instanz finden Sie unter Code-Ausführung in Cloud Run.