Configurar sandboxes para instâncias

As sandboxes do Cloud Run oferecem um ambiente rápido, seguro e isolado para executar ferramentas de execução de código não confiáveis ou software de automação de navegador para agentes hospedados na instância atual. As sandboxes são altamente otimizadas para latência e são executadas na mesma instância do contêiner, compartilhando a CPU e a memória alocadas.

Esta página descreve como configurar sandboxes no contêiner. Para mais detalhes sobre como escrever código para interagir com a sandbox usando a CLI, consulte Execução de código no Cloud Run.

Antes de começar

  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. Instale e inicialize a CLI gcloud.
  4. Implante uma instância do Cloud Run instance.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar instâncias do Cloud Run, peça ao administrador para conceder a você as seguintes funções do IAM:

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se a instância do Cloud Run interage com Cloud de Confiance APIs, como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Ativar sandboxes

Para ativar sandboxes em instâncias do Cloud Run, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Para criar ou atualizar a instância, especifique a flag --sandbox-launcher:

  • Para criar uma nova instância, execute o seguinte comando:

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

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • IMAGE_URL: uma referência à imagem do contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  • Para atualizar uma instância, execute o seguinte comando:

    gcloud beta run instances update INSTANCE --sandbox-launcher

YAML

  1. Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Atualize o arquivo YAML para incluir o atributo sandboxLauncher definido como true na configuração do contêiner:

    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
    

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • CONTAINER: o nome do contêiner.
    • IMAGE_URL: uma referência à imagem do contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Crie ou atualize a instância usando o seguinte comando:

    gcloud beta run instances replace instance.yaml

As sandboxes compartilham a CPU e a memória alocadas ao contêiner do host. Verifique se os limites principais do contêiner para CPU e memória são suficientes para acomodar o aplicativo e as sandboxes ativas que você executa ao mesmo tempo.

Desativar sandboxes

Para desativar a capacidade de iniciar uma sandbox na instância, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Atualize a instância usando a flag --no-sandbox-launcher executando o seguinte comando:

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

Substitua INSTANCE pelo nome da instância.

YAML

  1. Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Atualize o arquivo YAML para remover o atributo sandboxLauncher na configuração do contêiner:

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

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • CONTAINER: o nome do contêiner.
    • IMAGE_URL: uma referência à imagem do contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Crie ou atualize a instância usando o seguinte comando:

    gcloud beta run instances replace instance.yaml

Conferir as configurações da sandbox

Para conferir as configurações atuais da sandbox da instância do Cloud Run, faça o seguinte:

gcloud

  1. Use o comando a seguir:

    gcloud beta run instances describe INSTANCE

    Substitua INSTANCE pelo nome da instância.

  2. Localize o atributo sandboxLauncher: true na configuração retornada.

Para executar código não confiável em uma sandbox da instância, consulte Execução de código no Cloud Run.