Proteger jobs do cron com o VPC Service Controls

O VPC Service Controls permite configurar um perímetro seguro em torno dos recursos do Google Cloud para ajudar a evitar a exfiltração de dados. É possível incluir jobs do Cloud Scheduler em um perímetro do VPC Service Controls para proteger as cargas de trabalho programadas e restringir os destinos dos jobs.

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 nas ações a seguir:

  • Criações de jobs do Cloud Scheduler
  • Atualizações de jobs do Cloud Scheduler

Por que isso é importante?

Como o VPC Service Controls é aplicado apenas em criações e 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 compatíveis. 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 é compatível com os destinos a seguir. Os endpoints HTTP são compatíveis se estiverem listados. No entanto, endpoints HTTP arbitrários não são compatíveis.

  • Serviços do Cloud Run: precisam usar o domínio padrão canônico run.app. Domínios personalizados e DNS personalizados não são compatíveis e causam falha na criação de jobs.
  • Funções do Cloud Run: precisam usar o domínio padrão canônico cloudfunctions.net ou run.app. Domínios e DNS personalizados não são compatíveis e vão fazer com que a criação do job falhe.
  • 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.

    • É preciso usar o formato de endpoint global (https://SERVICE.googleapis.com). Endpoints regionais, como *.rep.googleapis.com, LOCATION.SERVICE.googleapis.com e REGION-SERVICE.googleapis.com, e endpoints mTLS (*.mtls.googleapis.com) são rejeitados.

      Esse requisito se aplica apenas aos URIs de destino do job. Para enviar suas próprias solicitações à API Cloud Scheduler por um endpoint regional, consulte Usar endpoints regionais.

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

      Para saber a diferença entre os recursos de serviço e job do Cloud Run, consulte Serviços, jobs, pools de workers e instâncias: quatro maneiras de executar seu código.

  • Pub/Sub

Segmentações não compatíveis

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 não compatível falha com um código do erro TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Essa ação não gera um registro de violação ao usar o modo de teste.

Domínios personalizados (como balanceadores de carga de aplicativo externos ou DNS personalizado) para endpoints sem servidor não são destinos compatíveis. As invocações de ambiente de execução para domínios personalizados são bloqueadas pelo serviço de destino devido à falta de credenciais no perímetro, mesmo para jobs pré-existentes criados antes da inscrição no perímetro.

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

Excluir jobs que não estão em conformidade

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

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, eles 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 não compatível (como um endpoint HTTP arbitrário), 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 vale para um job preexistente com um destino fora do perímetro do VPC Service Controls. No entanto, se um job preexistente segmentar um domínio personalizado sem servidor dentro do perímetro, o serviço de destino vai bloquear as invocações de ambiente de execução.

Adicionar papéis do IAM necessários

Obrigatório. Para usar o VPC Service Controls, a conta de serviço do Cloud Scheduler precisa ter o papel do IAM de 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 de IAM de 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. Observe a coluna Papel do principal Conta de serviço do Cloud Scheduler. Você poderá continuar se o seguinte papel estiver listado:

    • Agente de serviço do Cloud Scheduler

    Se o papel de agente de serviço do Cloud Scheduler não estiver listado, clique no ícone Editar e conceda o papel de 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 compatíveis. As duas abordagens permitem especificar serviços a serem restringidos. Especifique a API Cloud Scheduler.

Aplicar o VPC Service Controls em jobs preexistentes

Recomendado. Para aplicar o VPC Service Controls aos jobs do Cloud Scheduler criados antes de adicionar o Cloud Scheduler ao perímetro do VPC Service Controls, execute um update no job. Não é necessário alterar 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 usando o console do Google Cloud (selecione o job e clique em Editar), a API ou 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.