Configurar sandboxes para jobs

As sandboxes do Cloud Run oferecem um ambiente rápido, seguro e isolado para executar o código do agente, realizar transformações de dados e executar scripts com segurança no job 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. Crie um job do Cloud Run.

Funções exigidas

Para receber as permissões necessárias para configurar os jobs do Cloud Run, peça ao administrador para conceder a você os seguintes papéis 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 o job 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 as sandboxes nos jobs do Cloud Run, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Para criar ou atualizar o job, especifique a flag --sandbox-launcher:

  • Para criar um job, execute o seguinte comando:

    gcloud beta run jobs create JOB --image IMAGE_URL --sandbox-launcher

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  • Para atualizar um job atual, execute o seguinte comando:

    gcloud beta run jobs update JOB --sandbox-launcher

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.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: Job
    metadata:
      name: JOB
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
                sandboxLauncher: true
    

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • CONTAINER: o nome do contêiner;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se presente.

As sandboxes compartilham a CPU e a memória alocadas ao contêiner host. Verifique se os limites de CPU e memória do contêiner principal podem acomodar o aplicativo e as sandboxes ativas que você executa ao mesmo tempo.

Desativar sandboxes

Para desativar a capacidade de iniciar uma sandbox no job, use a Google Cloud CLI ou uma configuração YAML:

gcloud

Atualize o job usando a flag --no-sandbox-launcher executando o seguinte comando:

gcloud beta run jobs update JOB --no-sandbox-launcher

Substitua JOB pelo nome do seu job.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Atualize o arquivo YAML para remover o atributo sandboxLauncher na configuração do contêiner:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - name: CONTAINER
                image: IMAGE_URL
    

    Substitua:

    • JOB: o nome do seu job do Cloud Run.
    • CONTAINER: o nome do contêiner;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se presente.

Ver configurações de sandbox

Para ver as configurações atuais da sandbox do job do Cloud Run, faça o seguinte:

Console

  1. No Cloud de Confiance by S3NS console, acesse a página Jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Clique no job para abrir a página Detalhes do job.

  3. Na guia Histórico, clique no ID do job executado na lista.

  4. Na guia Contêineres, localize a configuração do iniciador de sandbox para ver se os contêineres em sandbox estão ativados ou desativados.

gcloud

  1. Use o comando a seguir:

    gcloud run jobs executions describe EXECUTION_NAME --format yaml

    Substitua EXECUTION_NAME pelo nome da execução do job.

  2. Para verificar se os contêineres em sandbox estão ativados, localize o atributo sandboxLauncher: true na configuração retornada.

Para executar código não confiável em uma sandbox do job, consulte Execução de código no Cloud Run.