Visão geral da conexão

Para conectar seus aplicativos e ferramentas com segurança aos bancos de dados do AlloyDB para PostgreSQL, é possível configurar rede, autorização, autenticação e pool de conexões:

  • Rede:as instâncias do AlloyDB usam endereços IP públicos ou privados em uma rede de nuvem privada virtual (VPC). Várias opções permitem conexões seguras de aplicativos em execução fora da rede VPC.

  • Autorização:o proxy de autenticação do AlloyDB e os conectores de linguagem do AlloyDB permitem usar o Identity and Access Management (IAM) para controlar quem tem acesso aos seus dados. As regras de firewall da rede VPC permitem ajustar ainda mais o acesso aos recursos do AlloyDB.

  • Autenticação:use técnicas padrão de autenticação de usuário do PostgreSQL para fazer login nas instâncias. O AlloyDB também é compatível com a autenticação baseada no IAM usando papéis de usuário padrão do PostgreSQL.

  • Pooling:para melhorar a confiabilidade, o desempenho e a escalonabilidade, use o pooling de conexões padrão do lado do cliente do PostgreSQL e o pooling de conexões gerenciado do lado do servidor.

Para orientações sobre como escolher a configuração de conectividade certa para sua carga de trabalho, consulte Escolher uma opção de conectividade.

Rede

Embora uma instância do AlloyDB contenha muitos nós, seus aplicativos se conectam a uma instância por um único endereço IP estático. Esse endereço pode ser um endereço IP privado na rede VPC que você especifica ao configurar o cluster de uma instância pela primeira vez ou um endereço IP público que permite conexões diretas de fora da rede VPC.

IP particular

Quando você configura o AlloyDB com IP privado, sua instância recebe um endereço IP privado na rede VPC.

Os endereços IP particulares afetam as conexões com o aplicativo de duas maneiras:

  • Os aplicativos em execução em outro lugar na rede VPC do projeto podem se conectar à instância ou a um proxy que a represente, sem etapas ou recursos adicionais.

    Por exemplo, Conectar-se do Compute Engine mostra como se conectar à sua instância do AlloyDB executando o programa de linha de comando psql em uma VM do Compute Engine na sua rede VPC.

  • Os aplicativos em execução fora da rede VPC exigem um serviço intermediário para se conectar à instância do AlloyDB. As soluções incluem executar serviços de proxy em uma VM na rede VPC da instância ou usar outros produtos doGoogle Cloud para estabelecer uma conexão permanente entre o aplicativo e a rede VPC.

    Para mais informações, consulte Conectar-se a um cluster de fora da VPC.

As conexões por IP particular geralmente oferecem menor latência e vetores de ataque limitados porque não exigem que os dados atravessem a Internet.

Para saber mais sobre o IP privado no AlloyDB, consulte Visão geral do IP privado.

IP público

Quando você configura o AlloyDB com IP público, sua instância recebe um endereço IP público para conexões de entrada que pode ser acessado na Internet pública. Se quiser, use redes externas autorizadas para especificar um intervalo de endereços IP no formato CIDR que podem acessar sua instância.

Recomendamos o uso de IP público com os conectores de linguagem do AlloyDB ou o proxy de autenticação do AlloyDB para garantir conexões seguras entre o cliente e sua instância.

Para mais informações sobre como adicionar um endereço IP público e redes externas autorizadas à sua instância, consulte Conectar usando IP público.

O AlloyDB também é compatível com conexões de saída da sua instância para a Internet pública. Quando você ativa o IP público de saída, o AlloyDB fornece um endereço IP de origem consistente e previsível para o tráfego que sai da sua instância do AlloyDB para a Internet pública. Quando você ativa esse recurso, o AlloyDB provisiona um par de endereços IP públicos estáticos que são usados exclusivamente para conexões de saída da sua instância.

As conexões de saída são especialmente úteis para os seguintes cenários:

  • Migração de banco de dados: ao migrar seus dados de um banco de dados externo para o AlloyDB usando o Database Migration Service, é possível configurar o firewall do banco de dados externo para permitir conexões dos endereços IP de saída específicos da sua instância do AlloyDB, garantindo um caminho seguro de transferência de dados.

  • Wrappers de dados externos: se você precisar consultar dados de um banco de dados externo no AlloyDB usando wrappers de dados externos, como postgres_fdw ou oracle_fdw, adicione os endereços IP de saída da instância à lista de permissões do banco de dados externo. Essa configuração permite que o AlloyDB se conecte e consulte a fonte de dados externa com segurança.

Ao ativar o IP público de saída, é possível ver os endereços IP atribuídos no console do Google Cloud ou usando a CLI gcloud. Em seguida, use esses endereços IP para configurar regras de firewall ou listas de controle de acesso (ACLs) nos sistemas externos para conceder à instância do AlloyDB acesso a eles.

Para mais informações sobre como ativar o IP público de saída, consulte Adicionar conectividade de saída a uma instância.

Autorização

É possível controlar o acesso a um cluster do AlloyDB usando os conectores de linguagem do AlloyDB, o proxy de autenticação do AlloyDB ou as regras de firewall da VPC.

Conectores de linguagem do AlloyDB

Os conectores de linguagem do AlloyDB são bibliotecas de cliente que fornecem mTLS automatizado usando TLS 1.3 e autorização do IAM ao se conectar a um cluster do AlloyDB.

Essas bibliotecas podem ser usadas diretamente nas respectivas linguagens de programação. Eles oferecem os mesmos recursos que o proxy de autenticação sem exigir um processo externo. Essa abordagem oferece maior segurança e requisitos de configuração reduzidos para a conexão com o AlloyDB.

Para mais informações, consulte a visão geral dos conectores de linguagem do AlloyDB.

Conectar usando a gcloud

Para sessões de banco de dados interativas, use o comando gcloud beta alloydb connect. Esse comando simplifica o processo de conexão ao gerenciar automaticamente uma instância local do proxy de autenticação do AlloyDB e iniciar uma sessão de cliente psql para você.

Para mais informações, consulte Conectar usando a gcloud.

Controlar o acesso com o IAM e o proxy de autenticação do AlloyDB

Embora seja possível se conectar diretamente a uma instância pelo endereço IP, recomendamos o uso do proxy de autenticação do AlloyDB em ambientes de produção. Ele fornece controle de acesso baseado no IAM e criptografia de ponta a ponta entre o proxy e o cluster.

Para mais informações, consulte Sobre o proxy de autenticação do AlloyDB.

Limitar o acesso à VPC com regras de firewall

Como em qualquer projeto baseado na nuvem, ajuste as regras de firewall da rede VPC para restringir o acesso à rede apenas aos intervalos de IP ou às sub-redes de onde seus aplicativos se conectam. Essa prática é especialmente importante com aplicativos externos, conforme detalhado em Conectar-se a um cluster de fora da VPC.

Para mais informações sobre como configurar o firewall da rede VPC, consulte Regras de firewall da VPC.

Autenticação

O AlloyDB é compatível com dois tipos de usuários de banco de dados, cada um com uma maneira própria de autenticação:

  • Os papéis de usuário padrão do PostgreSQL são autenticados com um nome de usuário e uma senha. Você gerencia essas contas usando técnicas comuns de gerenciamento de usuários do PostgreSQL. Para mais informações, consulte Gerenciar usuários do PostgreSQL com autenticação integrada.

  • As contas de serviço e de usuário do IAM são autenticadas como usuários do banco de dados usando tokens do OAuth 2.0. Você gerencia essas contas usando o sistema doGoogle Cloud IAM. Para mais informações, consulte Gerenciar a autenticação do IAM.

Depois de se autenticar com uma instância do AlloyDB, um aplicativo pode tratar a instância como um servidor PostgreSQL comum. Depois de estabelecer rotas de rede e autorização para uma instância, use técnicas padrão do PostgreSQL para fazer login em uma instância e acessar seus dados. Isso é válido seja para fazer login manualmente com uma ferramenta como psql ou para se conectar ao banco de dados de maneira programática usando uma biblioteca de código do PostgreSQL.

Normalmente, a primeira autenticação com um novo cluster do AlloyDB envolve fazer login na instância primária como o usuário postgres, usando a senha especificada ao criar o cluster. A partir daí, é possível criar usuários de banco de dados sem privilégios de administrador para uso do aplicativo.

Se você não definir uma senha para postgres ao criar um cluster, não será possível fazer login nele. Para fazer login, defina uma senha para postgres ou crie outro usuário. Para mais informações, consulte Gerenciar usuários do PostgreSQL com autenticação integrada.

Pooling

O pool de conexões é uma técnica que ajuda a garantir que sua carga de trabalho tenha uma conexão confiável e de alto desempenho com o banco de dados. Ele é útil tanto no lado do cliente quanto no do servidor.

Pooling de conexões do cliente

Ao se conectar ao AlloyDB, use um pool de conexões de cliente. O pool de conexões do cliente cria várias conexões com o banco de dados e garante que elas permaneçam ativas e íntegras durante todo o ciclo de vida da carga de trabalho. Essa abordagem garante que sua carga de trabalho tenha uma conexão confiável com o banco de dados.

  • Quando você executa consultas manualmente na linha de comando.
  • Quando você usa uma linguagem que não é compatível com o pool de conexões do cliente.
  • Quando a carga de trabalho é temporária e não mantém uma conexão de longa duração.

É possível usar qualquer pool de conexões de cliente padrão compatível com o PostgreSQL. Lembre-se do seguinte:

  • A biblioteca de pool de conexões do cliente às vezes é separada do driver do PostgreSQL.
  • Às vezes, o driver do PostgreSQL inclui a funcionalidade de pool de conexões do cliente na mesma biblioteca.

As seguintes bibliotecas de pool de conexões são usadas com frequência:

Se a biblioteca for compatível com o PostgreSQL, ela poderá ser usada com o AlloyDB.

Configurar pools de conexão do cliente

Para conseguir o melhor desempenho do pool de conexões do cliente, talvez seja necessário configurar o tamanho do pool. Use a seguinte fórmula como ponto de partida:

connections = (vCPU count * 2) + 1

Para mais informações, consulte Sobre o dimensionamento de pools. Dependendo das cargas do mundo real, talvez seja necessário realizar ajustes adicionais.

Usar o pool de conexões gerenciado

Além do pooling de conexões do cliente, o AlloyDB também é compatível com o pooling de conexões do lado do servidor com o pooling de conexões gerenciado.

Embora seja possível usar o pool de conexões gerenciado para qualquer carga de trabalho transacional, ele é mais adequado para aplicativos que contêm mais conexões de curta duração ou que podem ter um aumento repentino de conexões. Para mais informações, consulte Configurar o pool de conexões gerenciadas.

A seguir