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 do Cloud Run de destino recebe tráfego de outros recursos do Cloud Run ou do App Engine, e usa a configuração de entrada "interna" ou "interna e balanceamento de carga", 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 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 ativar o Acesso privado do Google na sub-rede associada à saída direta de VPC ou ao 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.app
nos 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çosGoogle 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 é
ativado, os recursos nas sub-redes podem acessar os recursos do Cloud Run
no URL
run.app
padrã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 atributoremoteIp
do 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.app
padrã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 interno do aplicativo.
- 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.com
como 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 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":
- 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
, muitos deles serão compatíveis com a autenticação no Cloud Run, como o Pub/Sub (compatível cominternal
e autenticação), o API Gateway e o Dialogflow CX (compatível cominternal
e 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". - As solicitações de serviços 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
internal
ouinternal-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.
- Acessar o recurso do Cloud Run 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 privada para
run.app
e configure sua rede local para acessar o endpoint. Com essa configuração, os hosts locais podem acessar os recursos do Cloud Run no URL padrãorun.app
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 em 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, use 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 aplicativos 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 navegar por elas,
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 de entrada preferencial 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 os conectores, as respostas são retornadas usando o caminho pelo qual a solicitação passou. As solicitações da rede VPC para o Cloud Run são ativadas usando outras tecnologias e não são roteadas pela saída VPC direta ou por 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 VPCs 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 Google Cloud serviços do Cloud Run
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 a 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 configuração de saída
da rede VPC all-traffic
.
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:
- Você quer configurar um endereço IP de saída estático para seu recurso do Cloud Run.
- Você quer 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 são escalonados automaticamente quando o tráfego aumenta, mas não são reduzir escalonamento horizontal se o tráfego diminui. Analise os preços para entender os custos.
- Para especificar a configuração de saída de recursos individuais do Cloud Run: consulte Controlar o tráfego de saída do serviço.
- 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
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
Se você usa o Terraform, o código de amostra do Terraform está disponível para configurar recursos do Cloud Run em uma rede privada.