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. Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  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. Instale e inicialize a CLI gcloud.
  7. 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 Google Cloud 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.