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:
- Acesso somente a serviços privados
- Somente conexão de serviço privado
- Somente IP público
- Acesso a serviços privados e Private Service Connect
- Acesso a serviços públicos e privados
- IP público, acesso a serviços privados e Private Service Connect
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:
- Conectando do Cloud Run
- Conexão a partir de funções do Cloud Run
- Conexão a partir do ambiente padrão do App Engine
- Conexão a partir do ambiente flexível do App Engine
- Conectando do Google Kubernetes Engine
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:
- Depuração de problemas de conexão
- Erros de conectividade conhecidos
- Solução de problemas de conexão do Cloud SQL Auth Proxy
- Problemas comuns de conexão
O que vem a seguir
- Aprenda como se conectar ao Início rápido do Cloud SQL para postgres .
- Aprenda as melhores práticas para gerenciar conexões de banco de dados .
- Saiba mais sobre a autenticação do banco de dados IAM .
- Saiba mais sobre como se conectar usando um cliente psql de uma máquina local ou do Compute Engine .
- Saiba mais sobre como configurar a conectividade IP .
- Saiba mais sobre o Cloud SQL Auth Proxy .
- Saiba mais sobre opções de suporte .