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 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 recebimento de 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 precisará 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 enviar todo o tráfego pela rede VPC e ative 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 os serviços doGoogle Cloud , 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 ao recurso do Cloud Run é0.0.0.0/32. Isso significa que, nas entradas de registro de solicitação, o atributoremoteIpdo HttpRequest será0.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, crie um endpoint do Private Service Connect e configure 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, vai poder hospedá-lo com um balanceador de carga de aplicativo interno e publicar 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 privada,
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 host da VPC compartilhada.
Entrada de VPC compartilhada: o recurso do Cloud Run está anexado a uma rede de VPC compartilhada. Nesse cenário, observe as seguintes considerações:
Somente revisões de serviço que tiverem configurado a saída VPC direta ou 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 privada,
o tráfego de outras redes VPC fora do projeto não é
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.
Fazer peering com uma rede VPC fora do projeto não permite que o tráfego seja reconhecido como "interno".
Receber solicitações de outros serviços do Google Cloud
As solicitações para o Cloud Run feitas por serviços do Google Cloud , 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":
- As 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 perímetro do VPC Service Controls são reconhecidas como "internas".
- 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 Google Cloud escolhido 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 Pub/Sub (compatível cominternale autenticação), API Gateway e 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 serviços do Google Cloud 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 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 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, publique 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, é possível 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 configuração de saída esteja definida de outra forma.
Com as solicitações encaminhadas usando a saída de VPC direta ou conectores, as respostas são retornadas usando o caminho pelo qual a solicitação passou. As solicitações da sua rede VPC para o Cloud Run são ativadas usando outras tecnologias e não são roteadas por saída direta de VPC 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 Receber 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 da 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 o Private Service Connect depois de configurar a saída de rede VPC.
Enviar solicitações para outros recursos e serviços do Cloud Run Google Cloud
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 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, faça 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;
- Exija 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
a 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 aumentará o uso da largura de banda nos conectores de acesso VPC sem servidor configurados e poderá aumentar os custos de acordo. Os conectores são escalonados horizontalmente de forma automática 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: 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.allowedVPCEgress. Para 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 direta, consulte Saída direta de VPC com uma rede VPC.