Sobre opções de conexão,Sobre opções de conexão,Sobre opções de conexão,Sobre opções de conexão

Esta página fornece uma visão geral das maneiras pelas quais você pode se conectar à sua instância do Cloud SQL e descreve as opções de autenticação e autorização disponíveis.

Visão geral

Ao considerar como se conectar à sua instância do Cloud SQL, há muitas opções a serem consideradas, incluindo:

  • Você quer que sua instância do Cloud SQL seja acessível pela Internet, mantida privada dentro de uma rede de Nuvem Privada Virtual (VPC) ou que ela seja acessível tanto pública quanto privadamente?
  • Você está planejando escrever seu próprio código de conexão ou conectar-se usando ferramentas disponíveis publicamente, como o Cloud SQL Auth Proxy ou um cliente psql ?
  • Você deseja exigir criptografia por meio de SSL/TLS ou permitir tráfego não criptografado?

Nas seções a seguir, discutiremos as opções que o Cloud SQL oferece para conectar, autorizar e autenticar seu banco de dados.

  • Como se conectar - qual caminho de rede você usa para acessar sua instância:
    • Um endereço IP interno, somente VPC ( privado ).
    • Um endereço IP externo, acessível pela Internet ( público ).
  • Como autorizar - quais conexões são autorizadas e permitidas para se conectar à sua instância do Cloud SQL:
    • Bibliotecas do Cloud SQL Auth Proxy e do conector do Cloud SQL para Java e Python: elas fornecem acesso com base no IAM.
    • Certificados SSL/TLS autogerenciados: eles só permitem conexões baseadas em chaves públicas específicas.
    • Redes autorizadas - uma lista de endereços IP autorizados a se conectar.
  • Como autenticar - o método para fazer login no seu banco de dados.
    • Autenticação de banco de dados integrada - efetue login com um nome de usuário/senha definidos no mecanismo de banco de dados.
    • Autenticação de banco de dados IAM - faça login com um e-mail ou com um token OAuth 2.0 como senha.

Use as informações a seguir para decidir quais opções de conexão, autorização e autenticação funcionam melhor para você.

Antes de começar

Conceder acesso a um aplicativo não habilita automaticamente uma conta de usuário do banco de dados para se conectar à instância. Antes de se conectar a uma instância, você precisa ter uma conta de usuário do banco de dados com a qual possa se conectar. Para novas instâncias, isso significa que você precisa ter configurado a conta de usuário padrão. Para obter mais informações, consulte Gerenciar usuários com autenticação integrada .

Como se conectar ao Cloud SQL

As conexões de banco de dados consomem recursos no servidor e no aplicativo conectado. Sempre use boas práticas de gerenciamento de conexões para minimizar o impacto do seu aplicativo e reduzir a probabilidade de exceder os limites de conexão do Cloud SQL. Para obter mais informações, consulte Gerenciando conexões de banco de dados .

IP público e privado

No Cloud SQL, IP público significa que a instância é acessível pela internet pública. Em contraste, instâncias que usam apenas IP privado não são acessíveis pela internet pública, mas sim por meio de uma Nuvem Privada Virtual (VPC). As instâncias do Cloud SQL podem ter um endereço IP público e um privado.

IP privado

Um IP privado é um endereço IPv4 acessível em uma Nuvem Privada Virtual (VPC).

Você pode usar este endereço para se conectar a partir de outros recursos com acesso à VPC. Conexões por IP privado geralmente oferecem menor latência e vetores de ataque limitados, pois não exigem a travessia da internet. Opcionalmente, você pode exigir que todas as conexões usem o proxy do Cloud SQL ou certificados SSL autogerenciados .

É preferível configurar sua instância com um IP privado ao se conectar a partir de um cliente em um recurso com acesso a uma VPC. Para obter mais informações sobre quais recursos podem usar IP privado, consulte Requisitos para IP privado .

Para caminhos IP privados, os seguintes serviços e aplicativos se conectam diretamente à sua instância por meio do Serverless VPC Access :

  • Ambiente padrão do App Engine
  • Ambiente flexível do App Engine
  • Funções do Cloud Run
  • Corrida na Nuvem

Saiba mais sobre o uso de IP privado com o Cloud SQL

Para obter instruções sobre como adicionar um IP privado à sua instância, consulte um dos seguintes:

IP público

Um IP público é um endereço IPv4 disponível externamente na internet pública. Esse endereço pode receber conexões de dispositivos dentro e fora da rede do Google, incluindo de locais como sua casa ou escritório.

Para ajudar a manter sua instância segura, qualquer conexão com uma instância do Cloud SQL usando um IP público deve ser autorizada usando o Cloud SQL Auth Proxy ou redes autorizadas .

Configurar sua instância com um IP público é melhor ao conectar-se de um cliente que não atende aos requisitos de uma VPC.

Para obter instruções sobre como adicionar um IP público à sua instância, consulte Configurando conectividade de IP público .

Para obter informações sobre como conectar um cliente psql a uma instância do Cloud SQL usando IP público, consulte Conectar usando um cliente de banco de dados .

Endereços IP atribuídos dinamicamente

Alguns aplicativos precisam se conectar à sua instância do Cloud SQL usando um endereço IP atribuído dinamicamente ou temporário. É o caso de aplicativos de Plataforma como Serviço (PaaS), entre outros.

Nesses casos, você deve usar o Cloud SQL Auth Proxy .

Opções de conexão para instâncias

Esta seção contém recursos compatíveis com o Cloud SQL para conexão com instâncias. A seção também contém opções de conexão compatíveis para criar, desativar e habilitar instâncias.

Recursos suportados

A tabela a seguir lista os recursos que o Cloud SQL oferece suporte para conexão a instâncias usando conexões privadas.

Recurso Instância com acesso somente a serviços privados Instância somente com Private Service Connect Instância com acesso a serviços privados e Private Service Connect
Conectar-se a partir de várias VPCs Não suportado. Suportado. Suportado pelo uso do ponto de extremidade do Private Service Connect.
Extensões pglogical , PL/Proxy , dblink e postgres_fdw Suportado. Não suportado. Suportado pelo uso de conectividade de saída para acesso a serviços privados.
Réplicas externas Suportado. Não suportado. Suportado pelo uso de conectividade de saída para acesso a serviços privados.
Escrever ponto final Suportado. Não suportado. Suportado para acesso a serviços privados.
Alterar a rede VPC associada para acesso a serviços privados Suportado. Não aplicável. Não há suporte para acesso a serviços privados porque a instância possui o Private Service Connect habilitado. Não aplicável ao Private Service Connect.
Visibilidade do endereço IP do cliente para o Cloud SQL Suportado. Não suportado. Compatível com o uso do endereço IP de acesso a serviços privados. Não compatível com o uso do endpoint Private Service Connect.

Opções de conexão para criação de instâncias

O Cloud SQL oferece suporte a configurações de IP privado e público. Você pode escolher as opções de conexão de acordo com os requisitos da sua aplicação.

Você pode configurar um IP privado para manter suas instâncias do Cloud SQL privadas dentro de uma rede VPC. Os seguintes tipos de conexões privadas são suportados:

  • Acesso a serviços privados : conecte-se a instâncias do Cloud SQL a partir de uma única rede VPC
  • Private Service Connect : conecte-se a instâncias do Cloud SQL de várias redes VPC que pertencem a diferentes grupos, equipes, projetos ou organizações

Se você deseja que sua instância acesse conexões de clientes dentro e fora de Google Cloudrede pela Internet pública e, em seguida, configure o IP público para a instância.

O Cloud SQL oferece suporte às seguintes opções de conexão para criação de instâncias:

Desativar opções de conexão

O Cloud SQL oferece suporte à desativação das seguintes opções de conexão para instâncias:

  • IP público em uma instância com acesso a serviços privados e IP público
  • IP público em uma instância com IP público, acesso a serviços privados e Private Service Connect
  • Private Service Connect em uma instância com Private Service Connect e acesso a serviços privados
  • Private Service Connect em uma instância com Private Service Connect, acesso a serviços privados e IP público

Habilitar opções de conexão

O Cloud SQL oferece suporte às seguintes opções de conexão para instâncias:

  • Acesso a serviços privados em uma instância somente com IP público
  • Conexão de serviço privado em uma instância com acesso somente a serviços privados
  • Conexão de serviço privado em uma instância com acesso a serviços privados e IP público
  • IP público em uma instância com acesso somente a serviços privados

Limitações

  • Não há suporte para a criação de uma instância com IP público e Private Service Connect.
  • Não há suporte para desativar o acesso a serviços privados em uma instância com acesso a serviços privados e Private Service Connect.
  • Não há suporte para desativar o acesso a serviços privados em uma instância com acesso a serviços privados e IP público.
  • Se você tiver uma instância que usa apenas IP público, não há suporte para habilitar o acesso a serviços privados e o Private Service Connect simultaneamente. Primeiro, habilite o acesso a serviços privados e, em seguida, habilite o Private Service Connect.
  • A lista de permissões baseada em IP usando redes autorizadas não é suportada para instâncias que tenham o Private Service Connect habilitado para elas.

Como autorizar o Cloud SQL

Conectores de linguagem Cloud SQL

Os Conectores de Linguagem do Cloud SQL são bibliotecas de cliente que fornecem criptografia e autorização do IAM ao se conectar a uma instância do Cloud SQL. O Cloud SQL recomenda o uso dos Conectores de Linguagem do Cloud SQL para se conectar à sua instância do Cloud SQL em vez de outras opções de conexão.

Você pode usar essas bibliotecas diretamente da linguagem de programação compatível. Elas fornecem a mesma autenticação que o Cloud SQL Auth Proxy, sem a necessidade de um processo externo. Isso proporciona maior segurança e reduz os requisitos de configuração para se conectar ao Cloud SQL. Os Conectores de Linguagem do Cloud SQL também usam o mesmo código ao se conectar usando um endereço IP público ou privado.

Para começar, consulte Sobre os conectores de linguagem do Cloud SQL .

Proxy de autenticação do Cloud SQL

O Cloud SQL Auth Proxy permite que você autorize e proteja suas conexões usando permissões de Gerenciamento de Identidade e Acesso (IAM) . O Cloud SQL Auth Proxy valida conexões usando credenciais de uma conta de usuário ou serviço e encapsulando a conexão em uma camada SSL/TLS autorizada para uma instância do Cloud SQL. Para obter mais detalhes sobre o funcionamento do Cloud SQL Auth Proxy, consulte Sobre o Cloud SQL Auth Proxy .

Usar o Cloud SQL Auth Proxy é o método recomendado para autenticar conexões com uma instância do Cloud SQL porque é o método mais seguro.

O Cloud SQL Auth Proxy é uma biblioteca de código aberto distribuída como um binário executável. O Cloud SQL Auth Proxy atua como um servidor intermediário que escuta as conexões de entrada, as encapsula em SSL/TLS e as transmite para uma instância do Cloud SQL.

Alguns ambientes oferecem um mecanismo de conexão usando o Proxy de Autenticação do Cloud SQL. Para obter instruções sobre como se conectar usando esses ambientes, consulte um dos seguintes:

Certificados SSL/TLS autogerenciados

Em vez de usar o Cloud SQL Auth Proxy para criptografar suas conexões, é possível configurar certificados SSL/TLS cliente/servidor específicos para uma instância do Cloud SQL. Esses certificados são usados ​​para validar o cliente e o servidor entre si e criptografar as conexões entre eles.

É altamente recomendável usar certificados SSL/TLS autogerenciados para fornecer criptografia quando não estiver usando o Proxy de Autenticação do Cloud SQL. Caso contrário, seus dados serão transmitidos de forma insegura e poderão ser interceptados ou inspecionados por terceiros.

Para começar a usar certificados SSL/TLS autogerenciados, consulte Autorizando com certificados SSL/TLS .

Redes autorizadas

A menos que você utilize o Cloud SQL Auth Proxy, as conexões com o endereço IP público de uma instância serão permitidas somente se vierem de uma rede autorizada . Redes autorizadas são endereços IP ou intervalos que o usuário especificou como tendo permissão para se conectar.

Para começar a usar redes autorizadas, consulte Autorização com redes autorizadas .

Como autenticar no Cloud SQL

A autenticação fornece controle de acesso por meio da verificação da identidade de um usuário. Para usuários finais, a autenticação é realizada quando o usuário insere credenciais (nome de usuário e senha). Para aplicativos, a autenticação é realizada quando as credenciais de um usuário são atribuídas a uma conta de serviço.

O Cloud SQL usa a autenticação integrada do banco de dados, que autentica usando um nome de usuário e uma senha. Para obter mais informações, consulte Criação e gerenciamento de usuários do PostgreSQL .

O Cloud SQL também é integrado ao IAM para ajudar você a monitorar e gerenciar melhor o acesso de usuários e contas de serviço ao banco de dados. Esse recurso é chamado de autenticação de banco de dados do IAM.

Saiba mais sobre a autenticação do banco de dados IAM.

Saiba mais sobre como criar e gerenciar usuários que usam a autenticação de banco de dados do IAM.

Ferramentas para conexão ao Cloud SQL

A tabela a seguir contém algumas opções para conexão ao Cloud SQL:

Opção de conexão Mais informações
Proxy de autenticação do Cloud SQL
gcloud CLI
Conectores de linguagem do Cloud SQL
Concha de Nuvem
Código em Nuvem
Conecte-se usando ferramentas de administração de banco de dados de terceiros
pgAdmin
Borda do Sapo
Blendo

Exemplos de código

Você pode se conectar ao Cloud SQL Auth Proxy a partir de qualquer linguagem que permita a conexão a um soquete Unix ou TCP. Abaixo estão alguns trechos de código de exemplos completos no GitHub para ajudar você a entender como eles funcionam juntos em seu aplicativo.

Solução de problemas

Se você estiver com problemas de conexão, consulte as páginas a seguir para obter ajuda na depuração ou encontrar soluções para problemas conhecidos:

O que vem a seguir