Proteger jobs do cron com o VPC Service Controls

O VPC Service Controls é um Google Cloud recurso que permite configurar um perímetro seguro para evitar a exfiltração de dados. Este guia mostra como incluir jobs do Cloud Scheduler em um perímetro do VPC Service Controls.

Limitações

As limitações a seguir se aplicam ao suporte do VPC Service Controls para o Cloud Scheduler.

Ações aplicadas

O VPC Service Controls é aplicado apenas nas seguintes ações:

  • Criação de job do Cloud Scheduler
  • Atualizações de jobs do Cloud Scheduler

Por que isso é importante?

Como o VPC Service Controls é aplicado apenas na criação e nas atualizações de jobs, ele não é aplicado automaticamente a jobs criados antes de você adicionar o Cloud Scheduler ao perímetro do VPC Service Controls. Os jobs continuam sendo executados mesmo que os destinos não façam parte do perímetro do VPC Service Controls ou não sejam destinos com suporte. Para aplicar o VPC Service Controls a todos os jobs do Cloud Scheduler:

Destinos com suporte

A integração do Cloud Scheduler com o VPC Service Controls oferece suporte aos seguintes destinos. Os endpoints HTTP são aceitos se estiverem listados. No entanto, endpoints HTTP arbitrários não são aceitos.

  • Serviços do Cloud Run: no URL run.app.
  • Funções do Cloud Run: no URL functions.net.
  • Google Cloud As APIs compatíveis com o VPC Service Controls (em pré-lançamento ou GA) podem estar em um projeto do Google Cloud diferente do seu job do Cloud Scheduler.

    • Para jobs do Cloud Run, o formato de URI com suporte é o seguinte: https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      Para saber mais sobre a diferença entre recursos de serviço e de job do Cloud Run, consulte Serviços e jobs: duas maneiras de executar seu código.

  • Pub/Sub

Destinos sem suporte

Quando o Cloud Scheduler é um serviço restrito no perímetro do VPC Service Controls, qualquer tentativa de criar ou atualizar um job com um destino sem suporte falha com um código de erro TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Essa ação não gera um registro de violação ao usar o modo de teste.

Para evitar o bloqueio inesperado das cargas de trabalho, exclua todos os jobs com destinos sem suporte ou com destinos fora do perímetro do VPC Service Controls que você planeja usar antes de mover o perímetro para o modo aplicado.

Excluir jobs não compatíveis

Recomendado. Exclua os jobs do Cloud Scheduler com destinos que sejam:

  • Sem suporte (consulte Destinos com suporte)
  • Fora do perímetro do VPC Service Controls que você planeja usar

Para instruções sobre como excluir jobs, consulte Excluir um job.

Se você não excluir esses jobs antes de adicionar o Cloud Scheduler ao perímetro do VPC Service Controls, os jobs vão continuar sendo executados, mas o VPC Service Controls não será aplicado a eles. Neste documento, consulte Ações aplicadas.

Por exemplo, se você tiver um job do Cloud Scheduler que tenha como destino um destino sem suporte (como um domínio personalizado do Cloud Run), o job vai continuar sendo executado depois que você adicionar o Cloud Scheduler ao perímetro do VPC Service Controls, mas não será protegido pelo VPC Service Controls. O mesmo acontece com um job preexistente com um destino fora do perímetro do VPC Service Controls.

Adicionar papéis necessários do IAM

Obrigatório. Para usar o VPC Service Controls, a conta de serviço do Cloud Scheduler precisa ter o papel do IAM Agente de serviço do Cloud Scheduler. A conta de serviço do Cloud Scheduler é criada automaticamente para seu projeto. Para verificar se ela tem o papel do IAM Agente de serviço do Cloud Scheduler ou para conceder esse papel, siga estas etapas:

  1. No Google Cloud console, acesse o IAM.

    Acessar IAM

  2. Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.

  3. No filtro, digite Conta de serviço do Cloud Scheduler e selecione esse principal.

  4. Consulte a coluna Papel do principal Conta de serviço do Cloud Scheduler. Você pode continuar se o seguinte papel estiver listado:

    • Agente de serviço do Cloud Scheduler

    Se o papel da conta de serviço do Cloud Scheduler não estiver listado, clique no ícone Editar e conceda o papel Agente de serviço do Cloud Scheduler ao principal da conta de serviço do Cloud Scheduler.

Especificar um perímetro do VPC Service Controls

Obrigatório. É possível usar um perímetro atual ou criar um novo para proteger os jobs do Cloud Scheduler que têm destinos com suporte. As duas abordagens oferecem a oportunidade de especificar serviços a serem restringidos. Especifique a API Cloud Scheduler.

Aplicar o VPC Service Controls a jobs preexistentes

Recomendado. Para aplicar o VPC Service Controls a jobs do Cloud Scheduler que você criou antes de adicionar o Cloud Scheduler ao perímetro do VPC Service Controls, execute uma update no job. Não é necessário mudar o job, mas é preciso executar a atualização para que o VPC Service Controls seja aplicado ao job e às execuções futuras dele.

É possível executar uma atualização para o job no Google Cloud console (selecione o job e use o botão Editar), usando a API ou com a CLI gcloud.

Para aplicar o VPC Service Controls a um job preexistente usando a CLI gcloud, execute o seguinte:

Destinos HTTP

gcloud scheduler jobs update http JOB_ID

Substitua JOB_ID pelo ID do job.

Destinos do Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Substitua JOB_ID pelo ID do job.