- 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 e ter um gerenciamento 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 senhas, Active Directory e Kerberos, além de controle refinado 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 DBCluster, consulte a Referência de CRD
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 só sejam acessíveis a
outros aplicativos em execução no mesmo cluster do Kubernetes. É possível encontrar 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:
- Ative o tráfego externo:defina
spec.allowExternalIncomingTraffic: true, que geralmente provisiona um serviçoLoadBalancer. - Implemente o 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 qualquer conexão
originada de endereços IP fora desses intervalos.
Pooling de conexões com o PgBouncer
Para gerenciar conexões com eficiência e reduzir a carga da instância, use o PgBouncer. O operador do AlloyDB Omni fornece um recurso personalizado (CR) PgBouncer para simplificar essa operação.
Para detalhes abrangentes sobre a configuração do 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 clientes permitidas.max_db_connections: número máximo de conexões abertas para a instância do AlloyDB Omni.
Expor o PgBouncer
Use spec.serviceOptions.type para controlar a visibilidade.
ClusterIP: acesso somente ao cluster interno.LoadBalancer: acesso externo. É possível restringir isso comspec.serviceOptions.loadBalancerSourceRangesusando blocos CIDR.
Autenticação e autorização
O AlloyDB Omni oferece suporte a 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. Normalmente, a senha de administrador é fornecida usando um secret do Kubernetes, conforme mostrado no Exemplo completo de DBCluster.
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 do LDAP.spec.pgHbaEntries: para configurar regras depg_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 sem senha de certificado TLS está previsto para uma versão futura.
Autorização e controle de acesso
- Políticas de rede do Kubernetes:definem 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
LoadBalancer. - Papéis do PostgreSQL:use papéis e privilégios padrão do banco de dados para gerenciar permissões de usuário depois que eles forem autenticados.
A seguir
- Consulte a Referência de CRD do DBCluster para 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.