Conectar-se a uma instância do Cloud SQL de fora da VPC

Nesta página, descrevemos como se conectar a uma instância do Cloud SQL de fora da nuvem privada virtual (VPC) configurada.

Antes de começar

Antes de começar, conclua as seguintes ações:

  1. Crie uma instância do Cloud SQL.
  2. Você configura sua instância para usar um endereço IP interno em vez de um externo.

Sobre as conexões externas

Sua instância do Cloud SQL consiste em vários nós em uma VPC gerenciada pelo Google. Ao criar uma instância, você também configura o acesso a serviços particulares ou o Private Service Connect entre uma das VPCs e a VPC gerenciada pelo Google que contém a nova do Compute Engine. Essa conexão com peering permite usar endereços IP internos para acessar recursos na VPC da instância como se fossem parte da própria VPC.

Nas situações a seguir, conecte-se à instância de fora de uma VPC conectada:

  • O aplicativo é executado fora da VPC que você usou para se conectar à instância pelo acesso a serviços particulares ou pelo 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 algum outro lugar na Internet pública.

Em todos esses casos, você precisa configurar um serviço extra para ativar esse tipo de conexão externa com sua instância do Cloud SQL.

Recomendamos as seguintes soluções para fazer conexões externas, dependendo das suas necessidades:

As seções a seguir descrevem essas soluções.

Conectar-se por 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 extras, execute um serviço de proxy em uma VM intermediária configurada nessa VPC. É possível configurar uma nova VM ou usar uma que já esteja em execução na VPC da instância do Cloud SQL.

Como solução autogerenciada, o uso de 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. Isso também tem desvantagens: a disponibilidade, a segurança e a capacidade de dados da conexão dependem da VM intermediária, que você precisa manter como parte do projeto.

Conecte-se pelo IAP

Com o Identity-Aware Proxy (IAP), é possível se conectar à instância do Cloud SQL com segurança sem a necessidade de 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 faz com que o IAP seja uma boa solução para usos que não sejam de produção, como desenvolvimento e prototipagem.

Arquitetura do Identity-Aware Proxy

Neste diagrama, o IAP serve como o 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 do IAP à sua instância, siga estas etapas:

  1. No cliente externo, instale a CLI gcloud.

  2. Na VM intermediária, faça o download e instale o proxy de autenticação do Cloud SQL.

  3. Na VM intermediária, inicie o proxy de autenticação do Cloud SQL.

    Como sua VM é configurada com um endereço IP interno, ao iniciar o proxy do Cloud SQL Auth, você precisa informar a opção --private-ip.

  4. No projeto do Google Cloud, ative o encaminhamento de 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 regra default-allow-ssh preenchida previamente ativada, não não é preciso definir uma regra adicional.

  5. Configure o encaminhamento de portas entre o cliente externo e a VM intermediária usando SSH pelo IAP:

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

    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 conexão usando um cliente do SQL Server.

Conectar-se por meio de um proxy SOCKS

A execução de um serviço SOCKS na VM intermediária fornece uma conexão flexível e escalonável com a instância do Cloud SQL, com criptografia de ponta a ponta fornecida pelo proxy de autenticação do Cloud SQL.

Para mais informações sobre o uso de um proxy SOCKS para se conectar à instância do Cloud SQL, consulte Conectar usando um proxy intermediário (SOCKS5).

Conecte-se usando um pooler

Se você precisar instalar e executar o proxy de autenticação do Cloud SQL na VM intermediária, em vez de em um cliente externo, ative conexões seguras com ele pareando-o com um proxy com reconhecimento de protocolo, também conhecido como Pooler , Um pooler de código aberto conhecido para SQL Server é o ADO.NET.

Nesta solução, você executa o proxy do Cloud SQL Auth e o pooler na VM intermediária. Seu cliente ou aplicativo pode se conectar com segurança diretamente ao pooler por SSL, sem a necessidade de executar outros serviços. O pooler passa as consultas do PostgreSQL para a instância do Cloud SQL por meio do proxy de autenticação do Cloud SQL.

Como cada instância do Cloud SQL tem 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 de espera ou um pool de leitura. Portanto, para cada instância, é necessário executar um serviço de pooler separado com um certificado SSL configurado corretamente.

Conectar-se por meio do Cloud VPN ou do Cloud Interconnect

Para trabalhos de produção que exigem alta disponibilidade (HA, na sigla em inglês), recomendamos o uso de um produto de conectividade de rede do Google Cloud, como o Cloud VPN ou Cloud Interconnect, dependendo das necessidades e da topologia de rede do serviço externo. Em seguida, configure o Cloud Router para divulgar as rotas apropriadas.

Para saber mais sobre as soluções de conectividade de rede, consulte Como escolher um produto de conectividade de rede.

A seguir