- Rede:saiba como configurar clusters de banco de dados do AlloyDB Omni
para acesso interno usando um serviço
ClusterIPdo Kubernetes ou acesso externo usando umLoadBalancer, incluindo como restringir o tráfego externo usando intervalos de roteamento entre domínios sem classe (CIDR) de origem. - Pool de conexões:use o recurso personalizado
PgBouncerpara implementar o pool de conexões, o que permite gerenciar as conexões de forma eficiente e reduzir a carga nas instâncias de banco de dados. - Autenticação e autorização:acesso seguro usando métodos compatíveis, como integração baseada em senha, Active Directory e Kerberos, além de controle detalhado implementado por políticas de rede do Kubernetes e papéis do PostgreSQL.
Rede
É possível configurar clusters de banco de dados do AlloyDB Omni, gerenciados pelo
recurso personalizado DBCluster, para acesso interno ou externo.
Para mais detalhes sobre as opções de rede do DBCluster, consulte a Referência de CRD do DBCluster.
Conectividade interna
Por padrão, as instâncias do AlloyDB Omni são expostas usando um serviço ClusterIP do Kubernetes. Isso garante que as instâncias sejam acessíveis apenas para
outros aplicativos em execução no mesmo cluster do Kubernetes. Encontre o endpoint da instância principal no status DBCluster.
Conectividade externa
Para permitir conexões de fora do cluster do Kubernetes, atualize a especificação
DBCluster:
- Ativar o tráfego externo:defina
spec.allowExternalIncomingTraffic: true, que normalmente provisiona um serviçoLoadBalancer. - Implemente um controle refinado:use
spec.primarySpec.dbLoadBalancerOptions. Por exemplo, em Google Cloud, definagcp.loadBalancerType: "External"para receber um endereço IP acessível pela Internet pública.
Acesso restrito
Para proteger conexões externas, use spec.primarySpec.sourceCidrRanges para
definir uma lista de intervalos CIDR permitidos. O sistema bloqueia todas as conexões
originadas de endereços IP fora desses intervalos.
Pooling de conexão com o PgBouncer
Para gerenciar conexões de maneira eficiente e reduzir a carga da instância, use o PgBouncer. O
operador do AlloyDB Omni fornece um recurso personalizado (CR, na sigla em inglês) PgBouncer
para simplificar essa operação.
Para detalhes abrangentes sobre como configurar o PgBouncer, consulte a Referência de CRD do PgBouncer.
Implantação e configuração
Crie um recurso PgBouncer e faça referência ao cluster de banco de dados em
spec.dbclusterRef. Os principais parâmetros em spec.parameters incluem:
pool_mode: determina quando as conexões são reutilizadas (session,transactionoustatement).default_pool_size: conexões de servidor por usuário e banco de dados.max_client_conn: número máximo de conexões de cliente permitidas.max_db_connections: número máximo de conexões abertas com a instância do AlloyDB Omni.
Expor o PgBouncer
Use spec.serviceOptions.type para controlar a visibilidade.
ClusterIP: somente acesso interno ao cluster.LoadBalancer: acesso externo. É possível restringir isso comspec.serviceOptions.loadBalancerSourceRangesusando blocos CIDR.
Autenticação e autorização
O AlloyDB Omni é compatível com vários métodos para verificar identidades e controlar o acesso.
Métodos de autenticação
- Baseada em senha:autenticação padrão de nome de usuário e senha do PostgreSQL. A senha do administrador normalmente é fornecida usando um Secret do Kubernetes, conforme mostrado no exemplo de DBCluster completo.
Active Directory e Kerberos:gerenciados usando o CR
UserDefinedAuthentication. Isso é compatível com a sincronização de grupos GSSAPI e LDAP usando o seguinte:spec.keytabSecretRef: para keytabs do Kerberos.spec.ldapConfiguration: para mapeamento de grupos e configurações de LDAP.spec.pgHbaEntries: para configurar regraspg_hba.conf, por exemplo,gssouldap.
Para mais informações, consulte a referência do CRD UserDefinedAuthentication.
Baseada em certificado (planejada): o suporte para autenticação de certificado TLS sem senha está planejado para uma versão futura.
Autorização e controle de acesso
- Políticas de rede do Kubernetes:defina regras no nível do pod para proteger o tráfego
entre aplicativos e pods do AlloyDB Omni ou do
PgBouncer. - Intervalos CIDR de origem:restringem o tráfego no nível de
LoadBalancer. - Papéis do PostgreSQL:use papéis e privilégios padrão do banco de dados para gerenciar as permissões do usuário após a autenticação.
A seguir
- Consulte a Referência de CRD do DBCluster para ver todas as opções de configuração.
- Saiba como implantar o pool de conexões com a referência de CRD do PgBouncer.
- Entenda a integração do Active Directory na referência de CRD UserDefinedAuthentication.
- Confira um exemplo completo em Exemplo completo de DBCluster.
- Consulte a documentação do Kubernetes sobre políticas de rede.