Para aproveitar esse conteúdo ao máximo, você precisa conhecer um pouco os seguintes conceitos:
- Rede básica
- Google Cloud Redes de nuvem privada virtual (VPC)
Para proteger o tráfego de rede dos serviços e aplicativos, muitas organizações usam uma rede particular no Google Cloud Google Cloud com controles de perímetro para evitar a exfiltração de dados. A rede particular pode ter as seguintes propriedades:
- Você pode ter vários recursos, como VMs, em uma ou mais redes VPC.
- Essas VMs podem pertencer a muitos projetos diferentes e podem estar conectadas a uma VPC compartilhada.
- É possível ter cargas de trabalho no local ou cargas de trabalho em outras nuvens conectadas a esse ambiente usando o Cloud VPN ou o Cloud Interconnect.
- Você pode ter ativado um perímetro do VPC Service Controls para reduzir o risco de exfiltração de dados.
- É possível ter várias redes particulares, uma para cada um dos diversos ambientes diferentes, como uma para produção, outra para preparo e uma para desenvolvimento.
Por padrão, os recursos do Cloud Run não são associados a nenhuma rede VPC específica. Nesta página, explicamos como incorporar recursos do Cloud Run à sua rede particular.
Narrativa de rede sem servidor
Para explorar uma variedade de configurações corporativas comuns para redes públicas e privadas, leia nossa narrativa sobre rede sem servidor.
Este ponto de partida apresenta os seguintes cenários do Cloud Run do básico ao avançado:
- Implante com segurança um app "Hello, World!" que usa um domínio personalizado
- Desenvolva aplicativos empresariais e microsserviços
- Acessar bancos de dados e sistemas de arquivos de maneira pública ou privada
- Conectar-se com provedores de SaaS
- Aplicar controles de segurança
Consulte a lista de módulos do Terraform correspondentes.
Receber solicitações da sua rede particular
O recebimento de solicitações da sua rede particular requer configuração com base nas seguintes condições:
- Origem da solicitação.
- Se o recurso do Cloud Run só permite solicitações da sua rede particular.
Por exemplo, receber solicitações de redes VPC pode exigir uma configuração diferente de receber solicitações de recursos locais e de outras nuvens.
Receber solicitações de outros recursos do Cloud Run ou do App Engine
Quando o recurso de destino do Cloud Run recebe tráfego de outros recursos do Cloud Run ou do App Engine e usa a configuração de entrada "interna" ou "balanceamento de carga e interno", o tráfego precisa usar a rede VPC para ser considerado interno.
Para receber solicitações de outros recursos do Cloud Run ou do App Engine, execute as seguintes etapas:
Configure o recurso de origem para usar a saída da VPC direta ou um conector.
Verifique se o tráfego para as rotas do Cloud Run por meio da rede VPC usa uma das seguintes opções:
- Configure o recurso de origem para encaminhar todo o tráfego pela rede VPC e ativar o Acesso privado do Google na sub-rede associada à saída de VPC direta ou conector.
- Configure o Private Service Connect ou um balanceador de carga de aplicativo interno para exibir o recurso de destino do Cloud Run. Com essa configuração, você acessa o Cloud Run usando endereços IP internos para que as solicitações sejam roteadas por meio da rede VPC.
- Ative o Acesso privado do Google na sub-rede associada ao recurso de origem
e configure o DNS
para resolver URLs
run.appnos intervalosprivate.googleapis.com(199.36.153.8/30) ourestricted.googleapis.com(199.36.153.4/30). As solicitações para esses intervalos são roteadas por meio da rede VPC.
Receber solicitações de redes VPC
Por padrão, somente os recursos que têm endereços IP externo ou usam o Cloud NAT podem acessar diretamente a Internet e Google Cloud serviços como o Pub/Sub e o Cloud Run. Para outros recursos, há algumas opções para ativar o caminho de tráfego para o Cloud Run:
- O caminho mais direto é ativar o Acesso privado do Google
nas sub-redes que hospedam seus recursos. Quando o Acesso privado do Google está
ativado, os recursos nas sub-redes podem acessar os recursos do Cloud Run
no URL
run.apppadrão. O tráfego da rede VPC para o Cloud Run permanece na rede do Google. Nesse caso, o intervalo de IP para solicitações enviadas para o recurso do Cloud Run é0.0.0.0/32. Isso significa que, nas entradas de registro de solicitação, oremoteIpatributo de HttpRequest vai ser0.0.0.0. - Se você precisar que o recurso do Cloud Run (com outras
APIs do Google) seja acessível por um endereço IP interno na
rede VPC, considere criar um
endpoint do Private Service Connect
e configurar uma zona de DNS particular
para
run.app. Com essa configuração, os recursos na rede VPC podem acessar os recursos do Cloud Run no URLrun.apppadrão pelo endereço IP do endpoint do Private Service Connect. - Se você precisar de recursos e controles de balanceamento de carga, use um balanceador de carga de aplicativo interno. Com essa abordagem, os recursos na rede VPC acessam os recursos do Cloud Run usando o URL associado ao balanceador de carga de aplicativo interno.
- Se você quiser expor o serviço a clientes internos como um serviço gerenciado e controlar quais projetos podem acessá-lo, hospede o com um balanceador de carga de aplicativo interno e publique o serviço usando o Private Service Connect. Os projetos que precisam consumir o serviço podem acessá-lo usando um endpoint do Private Service Connect ou um back-end do Private Service Connect.
As respostas são retornadas usando o mesmo caminho em que a solicitação passou.
Considerações especiais para VPC compartilhada
Ao usar a configuração internal com os controles de entrada do Cloud Run
para determinar que todo o tráfego precisa vir da sua rede particular,
o tráfego da VPC compartilhada só é reconhecido como "interno" nas seguintes
situações:
O recurso do Cloud Run está em execução no projeto do host da VPC compartilhada.
Entrada de VPC compartilhada: o recurso do Cloud Run está anexado a uma rede VPC compartilhada. Nesse cenário, observe as seguintes considerações:
Somente revisões de serviço ou instâncias do Cloud Run que tiverem configurado a saída VPC direta ou que tiverem configurado um conector de acesso VPC sem servidor para enviar tráfego à rede VPC compartilhada também aceitarão tráfego da mesma rede VPC compartilhada.
As solicitações usam caminhos diferentes com base na direção do tráfego. As solicitações enviadas do Cloud Run para a rede VPC compartilhada são roteadas pela saída de VPC direta ou pelo conector. No entanto, as solicitações enviadas da rede VPC compartilhada para o Cloud Run usam o caminho de entrada padrão.
Para desanexar um recurso do Cloud Run da rede VPC compartilhada, reimplante sem acesso à rede VPC ou com o recurso configurado para enviar tráfego para uma rede VPC diferente.
Você está usando um balanceador de carga de aplicativo interno para fazer o tráfego de proxy.
Você colocou o host da VPC compartilhada e todos os projetos de serviço dentro do mesmo perímetro do VPC Service Controls. Para configurar o VPC Service Controls, consulte Como usar o VPC Service Controls (VPC SC).
Considerações especiais para outras redes VPC fora do projeto
Ao usar a configuração internal com os controles de entrada do Cloud Run
para determinar que todo o tráfego precisa vir da sua rede particular,
o tráfego de outras redes VPC fora do projeto não será
reconhecido como "interno", exceto nas seguintes situações:
- O VPC Service Controls está configurado para permitir o tráfego com
run.googleapis.comcomo um serviço restrito, e o Acesso privado do Google está ativado para a sub-rede de origem. - Seu recurso do Cloud Run é publicado como um serviço gerenciado usando o Private Service Connect (requer um balanceador de carga de aplicativo interno) e é acessado da outra rede VPC.
O peering com uma rede VPC fora do projeto não permite que o tráfego seja reconhecido como "interno".
Receber solicitações de outros Google Cloud serviços
As solicitações para o Cloud Run feitas por Google Cloud serviços como o Pub/Sub permanecem na rede do Google.
Há algumas considerações especiais se você tiver configurado controles de entrada do Cloud Run para permitir apenas tráfego "interno":
- Solicitações do BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, monitores sintéticos (incluindo verificações de tempo de atividade), e Workflows no mesmo projeto ou o perímetro VPC Service Controls é reconhecido como "interno."
- As solicitações do Cloud Run ou do App Engine enviadas do mesmo projeto ou perímetro do VPC Service Controls exigem outras configurações antes de serem reconhecidas como "internas". Para mais detalhes, consulte a seção Receber solicitações de outros serviços do Cloud Run ou do App Engine.
- Se o serviço escolhido Google Cloud não conseguir acessar
os recursos do Cloud Run com a entrada definida como
internal, observe que muitos serviços são compatíveis com a autenticação no Cloud Run, como o Pub/Sub (compatível cominternale autenticação), o gateway de API, e o Dialogflow CX (compatível cominternale autenticação). Dependendo das suas necessidades de segurança, pode ser suficiente que o recurso de destino do Cloud Run exija autenticação em vez de entrada "interna". - Solicitações de Google Cloud serviços não mencionados anteriormente não são
reconhecidas como internas e não podem ser recebidas por recursos do Cloud Run
com a entrada definida como
internalouinternal-and-cloud-load-balancing.
Receber solicitações de recursos locais ou de outras nuvens
Há várias maneiras de receber solicitações de recursos particulares e de outras nuvens de maneira particular.
- Configuração básica: para que as solicitações de recursos locais e de outras nuvens atravessem sua rede particular, configure o Acesso privado do Google para hosts locais.
- Tornar o recurso do Cloud Run acessível por um endereço IP
interno: para chamar recursos do Cloud Run usando um endereço IP interno,
crie um
endpoint do Private Service Connect para acessar as APIs do Google,
configure uma zona de DNS particular
para
run.appe configure sua rede local para acessar o endpoint. Com essa configuração, os hosts locais podem acessar os recursos do Cloud Run no URLrun.apppadrão pelo endereço IP do endpoint do Private Service Connect. - Com recursos de balanceamento de carga: se você precisar de recursos e controles de balanceamento de carga, use um balanceador de carga de aplicativo interno. Para informações sobre como acessar o balanceador de carga de aplicativo interno de redes locais, consulte Usar o Cloud VPN e o Cloud Interconnect.
- Em limites administrativos: se você quiser expor seu serviço a clientes internos como um serviço gerenciado e controlar quais projetos podem acessá-lo, você pode publicar o serviço usando o Private Service Connect (requer um balanceador de carga de aplicativo interno). Para acessar o serviço de hosts locais, crie um endpoint do Private Service Connect e configure a rede local para acessar o endpoint. Para mais informações, consulte Acessar endpoints de redes híbridas. Como alternativa, você pode usar um back-end do Private Service Connect com um balanceador de carga. Para informações sobre como acessar balanceadores de carga de redes locais, consulte a documentação do balanceador de carga que você está usando. Por exemplo, para balanceadores de carga de aplicativo internos, consulte Usar o Cloud VPN e o Cloud Interconnect.
Exigir solicitações da sua rede privada
Para evitar o tráfego de entrada (entrada) de origens externas, especifique uma
configuração de entrada restritiva.
A configuração de entrada mais restritiva é internal. Com a entrada definida como
internal, o serviço só permite solicitações do projeto,
redes VPC compartilhadas às quais o projeto está anexado e o perímetro
do VPC Service Controls. Há algumas limitações nessa configuração, dependendo da origem das solicitações. Para saber mais sobre essas limitações e como navegá-las,
consulte a seção Receber solicitações da rede privada.
É possível especificar a configuração de entrada para cada recurso do Cloud Run, ou aplicar o uso da configuração preferida de entrada em todos os recursos do Cloud Run na sua organização.
- Para especificar a configuração de entrada para cada recurso do Cloud Run: consulte Como definir a entrada.
- Para aplicar uma configuração de entrada específica a todos os
recursos do Cloud Run no projeto, na pasta ou na
organização: configure a restrição da política da organização
run.allowedIngress. Para saber como fazer isso, consulte Como personalizar políticas para restrições de lista.
Enviar solicitações para sua rede privada
Se o recurso do Cloud Run precisar acessar um recurso na rede particular, configure um caminho para solicitações particulares à rede. A configuração depende do destino final da solicitação.
Enviar solicitações para sua rede VPC
Para enviar solicitações a uma rede VPC, você precisa configurar a saída de VPC direta ou um conector de acesso VPC sem servidor. Comparar a saída de VPC direta e os conectores de VPC Analise os preços para entender os custos.
Quando a saída de VPC direta ou os conectores são configurados, as seguintes considerações se aplicam por padrão:
Todas as consultas DNS são enviadas ao servidor DNS configurado para a rede VPC associada à configuração de saída da rede VPC.
As solicitações para endereços IP particulares são encaminhadas para a rede VPC usando a saída de VPC direta ou um conector. As solicitações para destinos públicos continuam sendo roteadas diretamente para a Internet, a menos que a sua configuração de saída esteja definida de outra forma.
Com as solicitações encaminhadas usando a saída de VPC direta ou os conectores, as respostas são retornadas usando o caminho pelo qual a solicitação passou. Solicitações da rede VPC para o Cloud Run são ativadas usando outras tecnologias e não são roteadas por saída de VPC direta ou conectores, e as respostas a essas solicitações são retornadas usando o mesmo caminho. Para saber mais sobre como enviar solicitações da rede VPC ao Cloud Run, consulte Receba solicitações de redes VPC.
Como enviar solicitações para uma rede VPC fora do seu projeto
Para enviar solicitações a uma rede VPC fora do projeto, faça o seguinte:
- Para usuários de VPC compartilhada, consulte Conectar-se a uma rede VPC compartilhada.
- Para outras redes VPC, configure a saída de VPC direta ou um conector para se conectar a uma VPC no projeto.
- Redes VPC com peering:para enviar a uma VPC que faz peering com uma que usa a saída de rede VPC, nenhuma outra configuração é necessária. No entanto, as VMs na sub-rede que hospeda a saída da rede VPC precisam ser capazes de alcançar a rede VPC de destino.
- Outras redes VPC: para redes VPC fora do projeto que não fazem parte do mesmo ambiente de VPC compartilhada ou que estão em peering com a rede VPC do projeto, configure Private Service Connect depois de configurar a saída de rede VPC.
Enviar solicitações para outros recursos do Cloud Run e Google Cloud serviços
As solicitações de um recurso do Cloud Run para outro ou para outros Google Cloud serviços permanecem na rede interna do Google e estão sujeitas ao VPC Service Controls.
Para solicitações para os recursos do Cloud Run com configurações de entrada restritivas, é necessária uma configuração adicional. Consulte Receber solicitações de outros recursos do Cloud Run ou do App Engine.
Enviar solicitações para recursos locais e outras nuvens
Para enviar solicitações a recursos locais e outras nuvens por meio da sua rede privada, é necessário fazer o seguinte:
- verificar se sua rede VPC está configurada para rotear o tráfego de maneira particular ao destino, como por meio de um túnel VPN;
- configurar o serviço para enviar solicitações à rede VPC.
- Exigir que todas as solicitações acessem sua rede VPC.
Exigir que todas as solicitações acessem sua rede VPC
Para exigir que todas as solicitações do recurso do Cloud Run acessem
sua rede VPC, especifique a all-traffic
configuração de saída da rede VPC .
Especifique a configuração de saída de cada recurso do Cloud Run que usa a saída de rede VPC ou aplique a configuração de saída preferencial em todos os recursos do Cloud Run no projeto, na pasta ou na organização.
Isso é útil nos cenários de:
- Se você quiser configurar um endereço IP de saída estático para o recurso do Cloud Run.
- Se você quiser aplicar regras de firewall a todas as saídas de um recurso do Cloud Run.
- Você quer enviar solicitações para recursos locais e outras nuvens por meio da sua rede privada.
Se o recurso do Cloud Run fizer solicitações a destinos finais fora da rede VPC, exigir que todas as solicitações acessem a rede VPC aumenta o uso da largura de banda nos conectores de acesso VPC sem servidor configurados e pode aumentar os custos de acordo. Os conectores fazem o escalonamento horizontal automaticamente quando o tráfego aumenta, mas não são reduzir escalonamento horizontal se o tráfego diminuir. Analise os preços para entender os custos.
- Para especificar a configuração de saída para recursos individuais do Cloud Run resources: consulte Controlar o tráfego do serviço de saída.
- Para aplicar uma configuração de saída específica a todos os recursos do Cloud Run no projeto, na pasta ou na organização: configure a restrição da política da organização
run.allowedVPCEgressPara saber como fazer isso, consulte Como personalizar políticas para restrições de lista.
Controles adicionais
- Controles de perímetro: para reduzir o risco de exfiltração de dados de um
grupo de recursos, coloque-os em um perímetro baseado no contexto usando
o VPC Service Controls.
- Para entender o VPC Service Controls, consulte Visão geral do VPC Service Controls.
- Para começar, consulte o guia do Cloud Run Como usar o VPC Service Controls (VPC SC).
- Para entender os custos, consulte os preços.
- Controles granulares: para controlar o acesso de um recurso específico à rede, como um recurso específico do Cloud Run ou uma máquina virtual do Compute Engine, use as contas de serviço para controlar permissões e autenticação.
- Para entender as contas de serviço, consulte O que são contas de serviço?
- Para começar, consulte os guias de autenticação do Cloud Run.
A seguir
Para saber mais sobre como oferecer baixa latência e alta capacidade de processamento usando um caminho de rede direto, consulte Saída de VPC direta com uma rede VPC.