Redes privadas e Cloud Run

Esta página aborda as opções de configuração para incluir recursos do Cloud Run na sua rede privada.

Para tirar o máximo partido deste conteúdo, deve ter alguma familiaridade com os seguintes conceitos:

Para proteger o tráfego de rede dos respetivos serviços e aplicações, muitas organizações usam uma rede privada com controlos de perímetro para evitar a exfiltração de dados. Google Cloud A sua rede privada pode ter as seguintes propriedades:

  • Pode ter vários recursos, como VMs, localizados numa ou mais redes VPC.
  • Estas VMs podem pertencer a muitos projetos diferentes e podem estar ligadas entre si com uma VPC partilhada.
  • Pode ter cargas de trabalho nas instalações ou cargas de trabalho noutras nuvens ligadas a este ambiente através da Cloud VPN ou do Cloud Interconnect.
  • Pode ter ativado um perímetro dos VPC Service Controls para reduzir o risco de exfiltração de dados.
  • Pode ter várias redes privadas, uma para cada um dos vários ambientes diferentes, como uma para produção, uma para teste e uma para desenvolvimento.

Ao contrário das VMs, os recursos do Cloud Run não estão associados a nenhuma rede da VPC específica por predefinição. Esta página explica como incorporar recursos do Cloud Run na sua rede privada.

Narrativa de rede sem servidor

Para explorar uma variedade de configurações empresariais comuns para redes públicas e privadas, leia a nossa descrição da rede sem servidor.

Este ponto de partida apresenta os seguintes cenários do Cloud Run básicos a avançados:

  • Implemente em segurança uma app "Hello, World!" que use um domínio personalizado
  • Desenvolva aplicações empresariais e microsserviços
  • Aceder a bases de dados e sistemas de ficheiros de forma pública ou privada
  • Interaja com fornecedores de SaaS
  • Aplique controlos de segurança

Consulte a lista de módulos do Terraform correspondentes.

Receba pedidos da sua rede privada

A receção de pedidos da sua rede privada requer configuração com base nas seguintes condições:

  • A origem do pedido.
  • Se o recurso do Cloud Run permite apenas pedidos da sua rede privada.

Por exemplo, receber pedidos de redes VPC pode exigir uma configuração diferente da receção de pedidos de recursos no local e outras nuvens.

Receber pedidos de outros recursos do Cloud Run ou do App Engine

Quando o recurso do Cloud Run de destino recebe tráfego de outros recursos do Cloud Run ou do App Engine e usa a definição de entrada "internal" ou "internal and load balancing", o tráfego tem de usar a rede VPC para ser considerado interno.

Para receber pedidos de outros recursos do Cloud Run ou do App Engine, siga estes passos:

  1. Configure o recurso source para usar a saída da VPC direta ou um conector.

  2. Certifique-se de que o tráfego para o Cloud Run passa pela rede VPC usando uma das seguintes opções:

    • Configure o recurso de origem para enviar todo o tráfego através da rede VPC e ative o acesso privado à Google na sub-rede associada à saída da VPC direta ou ao conetor.
    • Configure o Private Service Connect ou um Application Load Balancer interno para encaminhar o tráfego para o recurso do Cloud Run de destino. Com esta configuração, acede ao Cloud Run através de endereços IP internos, pelo que os pedidos são encaminhados através da rede VPC.
    • Ative o acesso privado à Google na sub-rede associada ao recurso de origem e configure o DNS para resolver URLs run.app para os intervalos private.googleapis.com (199.36.153.8/30) ou restricted.googleapis.com (199.36.153.4/30). Os pedidos a estes intervalos são encaminhados através da rede VPC.

Receba pedidos de redes VPC

Por predefinição, apenas os recursos que têm endereços IP externos ou que usam o Cloud NAT podem aceder diretamente à Internet e aosGoogle Cloud serviços, como o Pub/Sub e o Cloud Run. Para outros recursos, existem algumas opções para ativar o caminho de tráfego para o Cloud Run:

  • O caminho mais direto é ativar o acesso privado à Google nas sub-redes que alojam os seus recursos. Quando o acesso privado à Google está ativado, os recursos nas sub-redes podem aceder aos seus recursos do Cloud Run no URL run.app predefinido. O tráfego da sua rede VPC para o Cloud Run permanece na rede da Google. Nesse caso, o intervalo de IP para pedidos enviados para o recurso do Cloud Run é 0.0.0.0/32. Isto significa que, nas entradas do registo de pedidos, o atributo remoteIp do HttpRequest será 0.0.0.0.
  • Se precisar que o seu recurso do Cloud Run (juntamente com outras APIs Google) seja acessível através de um endereço IP interno na sua rede VPC, considere criar um ponto final do Private Service Connect e configurar uma zona DNS privada para run.app. Com esta configuração, os recursos na rede VPC podem aceder aos recursos do Cloud Run no run.appURL predefinido através do endereço IP do ponto final do Private Service Connect.
  • Se precisar de capacidades e controlos de balanceamento de carga, considere usar um balanceador de carga de aplicações interno. Com esta abordagem, os recursos na rede VPC acedem aos seus recursos do Cloud Run através do URL associado ao Application Load Balancer interno.
  • Se quiser expor o seu serviço a clientes internos como um serviço gerido e poder controlar que projetos podem aceder ao mesmo, pode alojá-lo com um Application Load Balancer interno e publicar o serviço através do Private Service Connect. Os projetos que precisam de consumir o serviço podem aceder ao mesmo através de um ponto final do Private Service Connect ou de um back-end do Private Service Connect.

As respostas são devolvidas através do mesmo caminho que o pedido percorreu.

Considerações especiais para a VPC partilhada

Quando usar a definição internal com os controlos de entrada do Cloud Run para aplicar que todo o tráfego tem de vir da sua rede privada, o tráfego da VPC partilhada só é reconhecido como "interno" nas seguintes situações:

  • O recurso do Cloud Run está a ser executado no projeto anfitrião da VPC partilhada.

  • Entrada da VPC partilhada: o recurso do Cloud Run está associado a uma rede de VPC partilhada. Neste cenário, tenha em atenção as seguintes considerações:

    • Apenas as revisões de serviços que tenham configurado a saída da VPC direta ou que tenham configurado um conetor de acesso a VPC sem servidor para enviar tráfego para a rede de VPC partilhada também aceitam tráfego dessa mesma rede de VPC partilhada.

    • Os pedidos usam caminhos diferentes com base na direção do tráfego. Os pedidos enviados do Cloud Run para a rede de VPC partilhada são encaminhados pela saída da VPC direta ou pelo conetor. No entanto, os pedidos enviados da rede VPC partilhada para o Cloud Run usam o caminho de entrada padrão.

    • Para desassociar um recurso do Cloud Run da rede VPC partilhada, volte a implementar sem acesso à rede VPC ou com o recurso configurado para enviar tráfego para uma rede VPC diferente.

  • Está a usar um balanceador de carga de aplicações interno para encaminhar o tráfego.

  • Colocou o anfitrião da VPC partilhada e todos os projetos de serviço no mesmo perímetro dos VPC Service Controls. Para configurar o VPC Service Controls, consulte o artigo Usar o VPC Service Controls (VPC SC).

Considerações especiais para outras redes VPC fora do seu projeto

Quando usar a definição internal com os controlos de entrada do Cloud Run para aplicar que todo o tráfego tem de vir da sua rede privada, o tráfego de outras redes VPC fora do seu projeto não é reconhecido como "interno", exceto nas seguintes situações:

  • Os VPC Service Controls estão configurados para permitir o tráfego com run.googleapis.com como um serviço restrito, e o acesso privado à Google está ativado para a sub-rede de origem.
  • O seu recurso do Cloud Run é publicado como um serviço gerido através do Private Service Connect (requer um Application Load Balancer interno) e é acedido a partir da outra rede VPC.

A interligação com uma rede VPC que esteja fora do seu projeto não permite que o tráfego seja reconhecido como "interno".

Receba pedidos de outros Google Cloud serviços

Os pedidos ao Cloud Run a partir de Google Cloud serviços como o Pub/Sub permanecem na rede da Google.

Existem algumas considerações especiais se tiver configurado os controlos de entrada do Cloud Run para permitir apenas tráfego "interno":

  • Os pedidos do BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, monitorização sintética (incluindo verificações de tempo de atividade) e fluxos de trabalho no mesmo projeto ou perímetro dos VPC Service Controls são reconhecidos como "internos".
  • Os pedidos do Cloud Run ou do App Engine enviados a partir do mesmo projeto ou do perímetro do VPC Service Controls requerem configuração adicional antes de serem reconhecidos como "internos". Para ver detalhes, consulte a secção Receba pedidos de outros serviços do Cloud Run ou do App Engine.
  • Se o Google Cloud serviço escolhido não conseguir aceder a recursos do Cloud Run com a entrada definida como internal, tenha em atenção que muitos serviços suportam a autenticação no Cloud Run, como o Pub/Sub (suporta internal e autenticação), o API Gateway e o Dialogflow CX (suporta internal e autenticação). Consoante as suas necessidades de segurança, pode ser suficiente que o recurso do Cloud Run de destino exija autenticação em vez de entrada "interna".
  • Os pedidos de serviços Google Cloud não mencionados anteriormente não são reconhecidos como internos e não podem ser recebidos por recursos do Cloud Run com a entrada definida como internal ou internal-and-cloud-load-balancing.

Receber pedidos de recursos no local ou de outras nuvens

Existem várias formas de receber pedidos de recursos no local e de outras nuvens de forma privada.

Exija que os pedidos sejam provenientes da sua rede privada

Para impedir o tráfego de entrada (ingress) de fontes externas, especifique uma definição de entrada restritiva. A definição de entrada mais restritiva é internal. Com a entrada definida como internal, o seu serviço só permite pedidos do seu projeto, das redes VPC partilhadas às quais o seu projeto está associado e do seu perímetro do VPC Service Controls. Existem algumas limitações com esta definição, consoante a origem dos pedidos. Para saber mais acerca destas limitações e como navegar nelas, consulte a secção Receba pedidos da sua rede privada.

Pode especificar a definição de entrada para cada recurso do Cloud Run ou aplicar a utilização da sua definição de entrada preferida para todos os recursos do Cloud Run na sua organização.

  • Para especificar a definição de entrada para cada recurso do Cloud Run: consulte o artigo Definir entrada.
  • Para aplicar uma definição de entrada específica a todos os recursos do Cloud Run no seu projeto, pasta ou organização: configure a restrição da run.allowedIngress política da organizaçãorun.allowedIngress. Para saber como, consulte o artigo Personalizar políticas para restrições de listas.

Envie pedidos para a sua rede privada

Se o seu recurso do Cloud Run precisar de aceder a um recurso na sua rede privada, configure um caminho para pedidos privados à sua rede. A configuração depende do destino final do pedido.

Envie pedidos para a sua rede VPC

Para enviar pedidos para uma rede VPC, tem de configurar a saída da VPC direta ou um conetor de acesso a VPC sem servidor. Compare a saída da VPC direta e os conetores de VPC. Reveja os preços para compreender os custos.

Quando a saída da VPC direta ou os conetores estão configurados, as seguintes considerações aplicam-se por predefinição:

  • Todas as consultas DNS são enviadas para o servidor DNS configurado para a rede VPC associada à configuração de saída da rede VPC.

  • Os pedidos para endereços IP internos são encaminhados para a rede VPC através da saída da VPC direta ou de um conetor. Os pedidos para destinos públicos continuam a ser encaminhados diretamente para a Internet, a menos que a sua definição de saída esteja configurada de outra forma.

Com os pedidos encaminhados através da saída da VPC direta ou dos conectores, as respostas são devolvidas através do caminho que o pedido percorreu. Os pedidos da sua rede de VPC para o Cloud Run são ativados através de outras tecnologias e não são encaminhados através da saída de VPC direta nem de conetores, e as respostas a esses pedidos são devolvidas através do mesmo caminho. Para saber como enviar pedidos da sua rede VPC para o Cloud Run, consulte o artigo Receba pedidos de redes VPC.

Enviar pedidos para uma rede VPC fora do seu projeto

Para enviar pedidos para uma rede VPC fora do seu projeto:

  1. Para utilizadores da VPC partilhada, consulte o artigo Estabeleça ligação a uma rede VPC partilhada.
  2. Para outras redes VPC, configure a saída da VPC direta ou um conetor para se ligar a uma VPC no seu projeto.
    • Redes de VPC interligadas: para enviar para uma VPC interligada a uma VPC que usa a saída da rede da VPC, não é necessária nenhuma configuração adicional. No entanto, as VMs na sub-rede que aloja a saída da rede VPC têm de conseguir alcançar a rede VPC de destino.
    • Outras redes VPC: para redes VPC fora do seu projeto que não fazem parte do mesmo ambiente de VPC partilhada ou que não estão em intercâmbio com a rede VPC do seu projeto, configure o Private Service Connect depois de configurar a saída da rede VPC.

Enviar pedidos para outros recursos e Google Cloud serviços do Cloud Run

Os pedidos de um recurso do Cloud Run para outro ou para outros serviços permanecem na rede interna da Google e estão sujeitos aos VPC Service Controls.Google Cloud

Para pedidos a recursos do Cloud Run com definições de entrada restritivas, é necessária uma configuração adicional. Consulte o artigo Receba pedidos de outros recursos do Cloud Run ou do App Engine.

Enviar pedidos para recursos no local e outras nuvens

Para enviar pedidos a recursos no local e outras nuvens através da sua rede privada, tem de fazer o seguinte:

  1. Certifique-se de que a sua rede VPC está configurada para encaminhar de forma privada o tráfego para o destino, por exemplo, através de um túnel de VPN.
  2. Configure o seu serviço para enviar pedidos para a sua rede VPC.
  3. Exija que todos os pedidos sejam enviados para a sua rede VPC.

Exigir que todos os pedidos sejam enviados para a sua rede VPC

Para exigir que todos os pedidos do seu recurso do Cloud Run sejam direcionados para a sua rede VPC, especifique a all-trafficdefinição de saída da rede VPC. Pode especificar a definição de saída para cada recurso do Cloud Run que usa a saída da rede VPC ou pode aplicar a utilização da sua definição de saída preferida para todos os recursos do Cloud Run no seu projeto, pasta ou organização.

Isto é útil nas seguintes situações:

  1. Quer configurar um endereço IP de saída estático para o seu recurso do Cloud Run.
  2. Quer aplicar regras de firewall a todas as saídas de um recurso do Cloud Run.
  3. Quer enviar pedidos para recursos no local e outras nuvens através da sua rede privada.

Se o seu recurso do Cloud Run fizer pedidos a destinos finais fora da sua rede VPC, exigir que todos os pedidos sejam encaminhados para a sua rede VPC aumenta a utilização da largura de banda nos conetores do Acesso a VPC sem servidor configurados e pode aumentar os custos em conformidade. Os conetores são dimensionados automaticamente quando o tráfego aumenta, mas não são dimensionados se o tráfego diminuir. Reveja os preços para compreender os custos.

Controlos adicionais

  • Controlos de perímetro: para reduzir o risco de exfiltração de dados para um grupo de recursos, coloque-os num perímetro sensível ao contexto através dos VPC Service Controls.
  • Controlos detalhados: para controlar o acesso para tráfego de um recurso específico na sua rede privada, como um recurso específico do Cloud Run ou uma máquina virtual do Compute Engine, use contas de serviço para controlar as autorizações e a autenticação.

O que se segue?

Se usar o Terraform, o exemplo de código do Terraform está disponível para configurar recursos do Cloud Run numa rede privada.