Estabeleça ligação a uma instância do Cloud SQL a partir do exterior da respetiva VPC

Esta página descreve como estabelecer ligação a uma instância do Cloud SQL a partir do exterior da respetiva nuvem virtual privada (VPC) configurada.

Antes de começar

Antes de começar, certifique-se de que conclui as seguintes ações:

  1. Crie uma instância do Cloud SQL.
  2. Configura a instância para usar um endereço IP interno em vez de um endereço IP externo.

Acerca das ligações externas

A sua instância do Cloud SQL consiste num número de nós numa VPC gerida pela Google. Quando cria uma instância, também configura o acesso privado aos serviços ou o Private Service Connect entre uma das suas VPCs e a VPC gerida pela Google que contém a sua nova instância. Esta ligação com intercâmbio permite-lhe usar endereços IP internos para aceder a recursos na VPC da instância como se fizessem parte da sua própria VPC.

Nas seguintes situações, estabeleça ligação à sua instância a partir do exterior de uma VPC ligada:

  • A sua aplicação é executada fora da VPC que usou para se ligar à sua instância através do acesso a serviços privados ou do Private Service Connect.

  • A sua aplicação é executada numa VPC que existe fora da rede da Google.

  • A sua aplicação é executada numa máquina localizada noutro lugar na Internet pública.

Em todos estes casos, tem de configurar um serviço adicional para ativar este tipo de ligação externa à sua instância do Cloud SQL.

Recomendamos as seguintes soluções para estabelecer ligações externas, dependendo das suas necessidades:

  • Para o desenvolvimento ou a criação de protótipos de projetos, ou para um ambiente de produção relativamente de baixo custo, configure uma máquina virtual intermediária (VM), também conhecida como bastion, na sua VPC. Existem vários métodos para criar esta VM intermediária e transformá-la numa ligação segura entre um ambiente de aplicação externo e a sua instância do Cloud SQL.

  • Para ambientes de produção que requerem alta disponibilidade, considere estabelecer uma ligação permanente entre a VPC e a sua aplicação através do Cloud VPN ou do Cloud Interconnect.

As secções seguintes descrevem estas soluções.

Ligue-se através de uma VM intermediária

Para estabelecer uma ligação a uma instância do Cloud SQL a partir de fora da respetiva VPC através de ferramentas de código aberto e um mínimo de recursos adicionais, execute um serviço de proxy numa VM intermediária configurada nessa VPC. Pode configurar uma nova VM ou usar uma VM já em execução na VPC da instância do Cloud SQL.

Como solução autogerida, a utilização de uma VM intermediária geralmente custa menos e tem um tempo de configuração mais rápido do que a utilização de um produto de conetividade de rede. Também tem desvantagens: a disponibilidade, a segurança e a taxa de transferência de dados da ligação passam a depender da VM intermediária, que tem de manter como parte do seu projeto.

Estabeleça ligação através do IAP

Com o Identity-Aware Proxy (IAP), pode ligar-se à sua instância do Cloud SQL de forma segura sem ter de expor o endereço IP interno da VM intermediária. Usa uma combinação de regras de firewall e gestão de identidade e de acesso (IAM) para limitar o acesso através desta rota. Isto torna as CAs uma boa solução para utilizações que não sejam de produção, como desenvolvimento e criação de protótipos.

Arquitetura do Identity-Aware Proxy

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 Auth do Cloud SQL encripta o tráfego entre a VM e a instância do Cloud SQL. Através destes dois proxies, é estabelecida a comunicação entre o cliente e a instância.

Para configurar o acesso à IAP na sua instância, siga estes passos:

  1. No cliente externo, instale a CLI gcloud.

  2. Na VM intermediária, transfira e instale o proxy Auth do Cloud SQL.

  3. Na VM intermediária, inicie o proxy Auth do Cloud SQL.

    Uma vez que a sua VM está configurada com um endereço IP interno, quando inicia o proxy Auth do Cloud SQL, tem de fornecer a opção --private-ip.

  4. No seu Google Cloud projeto, ative o encaminhamento TCP do IAP.

    Quando definir a nova regra de firewall, permita o tráfego TCP de entrada para a porta 22 (SSH). Se estiver a usar a rede predefinida do seu projeto com a regra default-allow-ssh pré-preenchida ativada, não precisa de definir uma regra adicional.

  5. Configure o encaminhamento de portas entre o cliente externo e a VM intermediária através do SSH através do IAP:

    gcloud compute ssh VM_NAME \
    --tunnel-through-iap \
    --zone=ZONE_NAME \
    --ssh-flag="-L 3306:localhost:3306"

    Faça as seguintes substituições:

    • VM_NAME: o nome da VM
    • ZONE_NAME: o nome da zona associada à VM
  6. No cliente externo, teste a ligação através de mysql.

Ligue-se através de um proxy SOCKS

A execução de um serviço SOCKS na VM intermediária oferece uma ligação flexível e escalável à sua instância do Cloud SQL, com encriptação ponto a ponto fornecida pelo proxy Auth do Cloud SQL.

Para mais informações sobre a utilização de um proxy SOCKS para estabelecer ligação à sua instância do Cloud SQL, consulte o artigo Estabeleça ligação através de um proxy intermédio (SOCKS5).

Ligue-se através de um agrupador

Se precisar de instalar e executar o proxy Auth do Cloud SQL na VM intermediária, em vez de num cliente externo, pode ativar ligações seguras ao mesmo sincronizando-o com um proxy com reconhecimento de protocolo, também conhecido como pooler. Um pooler de código aberto popular para o MySQL é o ProxySQL.

Nesta solução, executa o proxy Auth do Cloud SQL e o pooler na VM intermediária. Em seguida, o cliente ou a aplicação podem ligar-se de forma segura diretamente ao pooler através de SSL, sem necessidade de executar serviços adicionais. O pooler encarrega-se de transmitir as consultas PostgreSQL à sua instância do Cloud SQL através do proxy Auth do Cloud SQL.

Uma vez que cada instância do Cloud SQL tem um endereço IP interno separado, cada serviço de proxy só pode comunicar com uma instância específica: a instância principal, a instância de reserva ou um conjunto de leitura. Por conseguinte, para cada instância, tem de executar um serviço de agrupamento separado com um certificado SSL configurado adequadamente.

Estabeleça ligação através do Cloud VPN ou do Cloud Interconnect

Para o trabalho de produção que requer alta disponibilidade (HA), recomendamos a utilização de um produto Google Cloud Network Connectivity, como o Cloud VPN ou o Cloud Interconnect, consoante as necessidades do seu serviço externo e a topologia de rede. Em seguida, configure o Cloud Router para anunciar as rotas adequadas.

Para saber mais sobre as soluções de conetividade de rede, consulte o artigo Escolher um produto de conetividade de rede.

O que se segue?