No Google Cloud Platform (GCP), todo novo projeto já vem com uma rede VPC padrão ao habilitar a Compute Engine API, a menos que você a desabilite.
Isso simplifica o uso do GCP, já que não é preciso criar uma VPC e sub-redes personalizadas. Mas o problema da rede padrão é que todas as sub-redes criadas automaticamente usam um conjunto de faixas IPv4 predefinidas que se encaixam no bloco CIDR 10.128.0.0/9.
Por causa dessa sobreposição, não é possível ter comunicação interna privada entre projetos. A limitação vale tanto para o VPC Peering quanto para o Cloud VPN.
Neste post, mostramos como usar o Private Service Connect para acessar de forma privada serviços que rodam em VMs ou clusters GKE com redes sobrepostas. Isso vale tanto para redes sobrepostas dentro de uma mesma organização do GCP quanto entre organizações diferentes.
Arquitetura de referência
Configuração de destino do Private Service Connect
O Projeto B é o projeto produtor do serviço, com um serviço nginx de exemplo implantado em uma instância de um managed instance group.
O Projeto A é o projeto consumidor e precisa acessar o serviço do Projeto B de forma privada. Nenhuma das instâncias dos dois projetos tem IP externo.
A região do GCP usada para os recursos é us-west4
A API compute.googleapis.com está habilitada nos Projetos A e B
Cloud NAT para que as instâncias privadas tenham acesso à internet e baixem pacotes
Implantar o serviço de exemplo e a instância de teste
As redes do Projeto A e do Projeto B não têm conectividade interna entre si. Por isso, a instância no Projeto A não consegue acessar o serviço que roda no Projeto B.
O VPC peering também não é uma opção, já que há sobreposição de faixas na rede padrão.
Configurar o load balancer interno
O Private Service Connect precisa de um load balancer interno para expor o serviço por meio de um service attachment. Para essa configuração, vamos criar um load balancer TCP interno no Projeto B.
Crie um novo health check HTTP regional para testar a conectividade HTTP nas VMs na porta 80.
Testar a conectividade a partir do projeto consumidor
Os componentes do Private Service Connect já estão configurados nos Projetos A e B. Use o IP do endpoint do Projeto A para acessar o serviço nginx no Projeto B.
O teste confirma que as instâncias nas redes sobrepostas conseguem se comunicar de forma privada pelo Endpoint do Private Service Connect.
Este exemplo mostra como usar o Private Service Connect para publicar e consumir serviços com segurança em redes sobrepostas.
O tráfego permanece inteiramente dentro do Google Cloud, com acesso orientado a serviços entre consumidores e produtores e controle granular sobre como cada serviço é acessado.
Saiba mais sobre o Private Service Connect na página do produto.
\n'yum\ install\ epel-release
Crie um managed instance group no Projeto B.
Quando a criação termina com sucesso, o managed instance group sobe uma instância na zona de destino.
Acesse a instância via SSH e confira o status do serviço nginx.
Crie uma instância de teste de conectividade no Projeto A.
As redes do Projeto A e do Projeto B não têm conectividade interna entre si. Por isso, a instância no Projeto A não consegue acessar o serviço que roda no Projeto B.
O VPC peering também não é uma opção, já que há sobreposição de faixas na rede padrão.
Configurar o load balancer interno
O Private Service Connect precisa de um load balancer interno para expor o serviço por meio de um service attachment. Para essa configuração, vamos criar um load balancer TCP interno no Projeto B.
Crie um novo health check HTTP regional para testar a conectividade HTTP nas VMs na porta 80.
Crie o backend service para o tráfego HTTP.
Adicione o instance group do serviço nginx ao backend service.
Crie uma forwarding rule para o backend service.
Crie uma regra de firewall para liberar os health checks do load balancer.
Publicar serviços no projeto produtor
Publique o serviço no Projeto B (o projeto produtor) para que consumidores em outras redes VPC possam se conectar de forma privada e segura.
Reserve uma sub-rede para o Private Service Connect. A faixa dessa sub-rede não pode se sobrepor à rede padrão.
Publique o serviço nginx para o Projeto A com aprovação explícita do projeto.
Crie uma regra de firewall para permitir que o Private Service Connect acesse as instâncias de destino.
Configurar o Endpoint no projeto consumidor
Um endpoint no projeto consumidor se conecta aos serviços da rede VPC produtora por meio de uma forwarding rule do Private Service Connect.
Ao criar um endpoint, ele é registrado automaticamente no Service Directory, em um namespace que você escolhe ou no padrão, goog-psc-default.
Para disponibilizar o Endpoint em mais de uma região, ative o global access. O global access está em Preview.
Reserve um endereço IP interno para atribuir ao Endpoint.
Crie uma forwarding rule para conectar o Endpoint ao service attachment do Projeto B.
Testar a conectividade a partir do projeto consumidor
Os componentes do Private Service Connect já estão configurados nos Projetos A e B. Use o IP do endpoint do Projeto A para acessar o serviço nginx no Projeto B.
O teste confirma que as instâncias nas redes sobrepostas conseguem se comunicar de forma privada pelo Endpoint do Private Service Connect.
Este exemplo mostra como usar o Private Service Connect para publicar e consumir serviços com segurança em redes sobrepostas.
O tráfego permanece inteiramente dentro do Google Cloud, com acesso orientado a serviços entre consumidores e produtores e controle granular sobre como cada serviço é acessado.
Saiba mais sobre o Private Service Connect na página do produto.
\n'yum\ -y\ install\ nginx
Crie um managed instance group no Projeto B.
Quando a criação termina com sucesso, o managed instance group sobe uma instância na zona de destino.
Acesse a instância via SSH e confira o status do serviço nginx.
Crie uma instância de teste de conectividade no Projeto A.
As redes do Projeto A e do Projeto B não têm conectividade interna entre si. Por isso, a instância no Projeto A não consegue acessar o serviço que roda no Projeto B.
O VPC peering também não é uma opção, já que há sobreposição de faixas na rede padrão.
Configurar o load balancer interno
O Private Service Connect precisa de um load balancer interno para expor o serviço por meio de um service attachment. Para essa configuração, vamos criar um load balancer TCP interno no Projeto B.
Crie um novo health check HTTP regional para testar a conectividade HTTP nas VMs na porta 80.
Crie o backend service para o tráfego HTTP.
Adicione o instance group do serviço nginx ao backend service.
Crie uma forwarding rule para o backend service.
Crie uma regra de firewall para liberar os health checks do load balancer.
Publicar serviços no projeto produtor
Publique o serviço no Projeto B (o projeto produtor) para que consumidores em outras redes VPC possam se conectar de forma privada e segura.
Reserve uma sub-rede para o Private Service Connect. A faixa dessa sub-rede não pode se sobrepor à rede padrão.
Publique o serviço nginx para o Projeto A com aprovação explícita do projeto.
Crie uma regra de firewall para permitir que o Private Service Connect acesse as instâncias de destino.
Configurar o Endpoint no projeto consumidor
Um endpoint no projeto consumidor se conecta aos serviços da rede VPC produtora por meio de uma forwarding rule do Private Service Connect.
Ao criar um endpoint, ele é registrado automaticamente no Service Directory, em um namespace que você escolhe ou no padrão, goog-psc-default.
Para disponibilizar o Endpoint em mais de uma região, ative o global access. O global access está em Preview.
Reserve um endereço IP interno para atribuir ao Endpoint.
Crie uma forwarding rule para conectar o Endpoint ao service attachment do Projeto B.
Testar a conectividade a partir do projeto consumidor
Os componentes do Private Service Connect já estão configurados nos Projetos A e B. Use o IP do endpoint do Projeto A para acessar o serviço nginx no Projeto B.
O teste confirma que as instâncias nas redes sobrepostas conseguem se comunicar de forma privada pelo Endpoint do Private Service Connect.
Este exemplo mostra como usar o Private Service Connect para publicar e consumir serviços com segurança em redes sobrepostas.
O tráfego permanece inteiramente dentro do Google Cloud, com acesso orientado a serviços entre consumidores e produtores e controle granular sobre como cada serviço é acessado.
Saiba mais sobre o Private Service Connect na página do produto.
Quando a criação termina com sucesso, o managed instance group sobe uma instância na zona de destino.
Acesse a instância via SSH e confira o status do serviço nginx.
Crie uma instância de teste de conectividade no Projeto A.
As redes do Projeto A e do Projeto B não têm conectividade interna entre si. Por isso, a instância no Projeto A não consegue acessar o serviço que roda no Projeto B.
O VPC peering também não é uma opção, já que há sobreposição de faixas na rede padrão.
Configurar o load balancer interno
O Private Service Connect precisa de um load balancer interno para expor o serviço por meio de um service attachment. Para essa configuração, vamos criar um load balancer TCP interno no Projeto B.
Crie um novo health check HTTP regional para testar a conectividade HTTP nas VMs na porta 80.
Crie o backend service para o tráfego HTTP.
Adicione o instance group do serviço nginx ao backend service.
Crie uma forwarding rule para o backend service.
Crie uma regra de firewall para liberar os health checks do load balancer.
Publicar serviços no projeto produtor
Publique o serviço no Projeto B (o projeto produtor) para que consumidores em outras redes VPC possam se conectar de forma privada e segura.
Reserve uma sub-rede para o Private Service Connect. A faixa dessa sub-rede não pode se sobrepor à rede padrão.
Publique o serviço nginx para o Projeto A com aprovação explícita do projeto.
Crie uma regra de firewall para permitir que o Private Service Connect acesse as instâncias de destino.
Configurar o Endpoint no projeto consumidor
Um endpoint no projeto consumidor se conecta aos serviços da rede VPC produtora por meio de uma forwarding rule do Private Service Connect.
Ao criar um endpoint, ele é registrado automaticamente no Service Directory, em um namespace que você escolhe ou no padrão, goog-psc-default.
Para disponibilizar o Endpoint em mais de uma região, ative o global access. O global access está em Preview.
Reserve um endereço IP interno para atribuir ao Endpoint.
Crie uma forwarding rule para conectar o Endpoint ao service attachment do Projeto B.
Testar a conectividade a partir do projeto consumidor
Os componentes do Private Service Connect já estão configurados nos Projetos A e B. Use o IP do endpoint do Projeto A para acessar o serviço nginx no Projeto B.
O teste confirma que as instâncias nas redes sobrepostas conseguem se comunicar de forma privada pelo Endpoint do Private Service Connect.
Este exemplo mostra como usar o Private Service Connect para publicar e consumir serviços com segurança em redes sobrepostas.
O tráfego permanece inteiramente dentro do Google Cloud, com acesso orientado a serviços entre consumidores e produtores e controle granular sobre como cada serviço é acessado.
Saiba mais sobre o Private Service Connect na página do produto.