Esta página descreve como se conectar a uma instância do Cloud SQL de fora de sua Nuvem Privada Virtual (VPC) configurada.
Antes de começar
Antes de começar, certifique-se de concluir as seguintes ações:
- Você cria uma instância do Cloud SQL .
- Configure sua instância para usar um endereço IP interno em vez de um endereço IP externo.
Sobre conexões externas
Sua instância do Cloud SQL consiste em vários nós dentro de uma VPC gerenciada pelo Google. Ao criar uma instância, você também configura o acesso a serviços privados ou o Private Service Connect entre uma das suas VPCs e a VPC gerenciada pelo Google que contém sua nova instância. Essa conexão peering permite que você use endereços IP internos para acessar recursos na VPC da instância como se fossem parte da sua própria VPC.
Nas seguintes situações, conecte-se à sua instância de fora de uma VPC conectada:
Seu aplicativo é executado fora da VPC que você usou para se conectar à sua instância por meio do acesso a serviços privados ou do Private Service Connect.
Seu aplicativo é executado em uma VPC que existe fora da rede do Google.
Seu aplicativo é executado em uma máquina localizada em outro lugar na Internet pública.
Em todos esses casos, você deve configurar um serviço adicional para habilitar esse tipo de conexão externa à sua instância do Cloud SQL.
Recomendamos as seguintes soluções para fazer conexões externas, dependendo de suas necessidades:
Para desenvolvimento ou prototipagem de projetos, ou para um ambiente de produção de custo relativamente baixo, configure uma máquina virtual (VM) intermediária — também conhecida como bastião — dentro da sua VPC. Existem vários métodos para usar essa VM intermediária e transformá-la em uma conexão segura entre um ambiente de aplicativo externo e sua instância do Cloud SQL.
Para ambientes de produção que exigem alta disponibilidade, considere estabelecer uma conexão permanente entre a VPC e seu aplicativo por meio do Cloud VPN ou do Cloud Interconnect.
As seções a seguir descrevem essas soluções.
Conectar por meio de uma VM intermediária
Para estabelecer uma conexão com uma instância do Cloud SQL de fora da VPC usando ferramentas de código aberto e um mínimo de recursos adicionais, execute um serviço de proxy em uma VM intermediária configurada nessa VPC. Você pode configurar uma nova VM ou usar uma VM já em execução na VPC da sua instância do Cloud SQL.
Como solução autogerenciada, usar uma VM intermediária geralmente custa menos e tem um tempo de configuração mais rápido do que usar um produto de Conectividade de Rede . Também tem desvantagens: a disponibilidade, a segurança e a taxa de transferência de dados da conexão dependem da VM intermediária, que você deve manter como parte do seu projeto.
Conecte-se via IAP
Usando o Identity-Aware Proxy (IAP) , você pode se conectar à sua instância do Cloud SQL com segurança, sem precisar expor o endereço IP interno da VM intermediária. Use uma combinação de regras de firewall e Gerenciamento de Identidade e Acesso (IAM) para limitar o acesso por essa rota. Isso torna o IAP uma boa solução para usos não relacionados à produção, como desenvolvimento e prototipagem.
Neste diagrama, o IAP serve como gateway entre o cliente externo, que está fora da VPC, e a VM intermediária, que está na VPC. O cliente cria um túnel SSH para o IAP. O Proxy de Autenticação do Cloud SQL criptografa o tráfego entre a VM e a instância do Cloud SQL. Por meio desses dois proxies, a comunicação é estabelecida entre o cliente e a instância.
Para configurar o acesso IAP à sua instância, siga estas etapas:
No seu cliente externo, instale o gcloud CLI .
Na VM intermediária, baixe e instale o Cloud SQL Auth Proxy .
Na VM intermediária, inicie o Cloud SQL Auth Proxy .
Como sua VM está configurada com um endereço IP interno, ao iniciar o Cloud SQL Auth Proxy, você deve fornecer a opção
--private-ip
.Em seu Google Cloud projeto, habilite o encaminhamento TCP do IAP .
Ao definir a nova regra de firewall, permita o tráfego TCP de entrada na porta
22
(SSH). Se você estiver usando a rede padrão do seu projeto com a regradefault-allow-ssh
pré-preenchida e habilitada, não será necessário definir uma regra adicional.Configure o encaminhamento de porta entre seu cliente externo e a VM intermediária usando SSH por meio de IAP :
gcloud compute ssh VM_NAME \ --tunnel-through-iap \ --zone=ZONE_NAME \ --ssh-flag="-L 5432:localhost:5432"
Faça as seguintes substituições:
- VM_NAME: o nome da VM
- ZONE_NAME: o nome da zona associada à VM
No seu cliente externo, teste sua conexão usando
psql
.
Conecte-se por meio de um proxy SOCKS
Executar um serviço SOCKS na VM intermediária fornece uma conexão flexível e escalável à sua instância do Cloud SQL, com criptografia de ponta a ponta fornecida pelo Cloud SQL Auth Proxy.
Para obter mais informações sobre como usar um proxy SOCKS para se conectar à sua instância do Cloud SQL, consulte Conectar usando um proxy intermediário (SOCKS5) .
Conecte-se por meio de um pooler
Se precisar instalar e executar o Cloud SQL Auth Proxy na VM intermediária, em vez de um cliente externo, você pode habilitar conexões seguras a ele emparelhando-o com um proxy com reconhecimento de protocolo , também conhecido como pooler . Poolers de código aberto populares para PostgreSQL incluem Pgpool-II e PgBouncer .
Nesta solução, você executa o Proxy de Autenticação do Cloud SQL e o pooler na VM intermediária. Seu cliente ou aplicativo pode então se conectar com segurança diretamente ao pooler via SSL, sem a necessidade de executar serviços adicionais. O pooler se encarrega de passar as consultas do PostgreSQL para sua instância do Cloud SQL por meio do Proxy de Autenticação do Cloud SQL.
Como cada instância do Cloud SQL possui um endereço IP interno separado, cada serviço de proxy pode se comunicar com apenas uma instância específica: a instância primária, a instância em espera ou um pool de leitura. Portanto, para cada instância, você deve executar um serviço de pooler separado com um certificado SSL configurado adequadamente.
Conecte-se por meio de VPN em nuvem ou interconexão em nuvem
Para trabalhos de produção que exigem alta disponibilidade (HA), recomendamos o uso de um Google CloudProduto de conectividade de rede , como Cloud VPN ou Cloud Interconnect , dependendo das necessidades do seu serviço externo e da topologia da rede. Em seguida, configure o Cloud Router para anunciar as rotas apropriadas.
Para saber mais sobre soluções de conectividade de rede, consulte Escolhendo um produto de conectividade de rede .
O que vem a seguir
- Saiba mais sobre IP privado .
- Saiba mais sobre acesso a serviços privados e conectividade local em VPCs gerenciadas pelo Google.
- Saiba mais sobre como usar o Private Service Connect para se conectar a uma instância do Cloud SQL.