- Mise en réseau : découvrez comment configurer des clusters de bases de données AlloyDB Omni pour un accès interne à l'aide d'un service Kubernetes
ClusterIPou un accès externe à l'aide d'unLoadBalancer, y compris comment limiter le trafic externe à l'aide de plages CIDR (Classless Inter-Domain Routing) sources. - Regroupement de connexions : utilisez la ressource personnalisée
PgBouncerpour implémenter le regroupement de connexions afin de gérer efficacement les connexions et de réduire la charge sur les instances de base de données. - Authentification et autorisation : sécurisez l'accès à l'aide de méthodes compatibles, telles que l'intégration basée sur un mot de passe, Active Directory et Kerberos, ainsi qu'un contrôle précis mis en œuvre via les règles de réseau Kubernetes et les rôles PostgreSQL.
Mise en réseau
Vous pouvez configurer les clusters de bases de données AlloyDB Omni, gérés par la ressource personnalisée DBCluster, pour un accès interne ou externe.
Pour en savoir plus sur les options de mise en réseau DBCluster, consultez la documentation de référence sur la CRD DBCluster.
Connectivité interne
Par défaut, les instances AlloyDB Omni sont exposées à l'aide d'un service Kubernetes ClusterIP. Cela garantit que les instances ne sont accessibles qu'aux autres applications exécutées dans le même cluster Kubernetes. Vous pouvez trouver le point de terminaison de l'instance principale dans l'état DBCluster.
Connectivité externe
Pour autoriser les connexions depuis l'extérieur du cluster Kubernetes, mettez à jour la spécification DBCluster :
- Activer le trafic externe : définissez
spec.allowExternalIncomingTraffic: true, qui provisionne généralement un serviceLoadBalancer. - Mettre en œuvre un contrôle ultraprécis : utilisez
spec.primarySpec.dbLoadBalancerOptions. Par exemple, surGoogle Cloud, définissezgcp.loadBalancerType: "External"pour obtenir une adresse IP accessible depuis l'Internet public.
Limiter l'accès
Pour sécuriser les connexions externes, utilisez spec.primarySpec.sourceCidrRanges pour définir une liste de plages CIDR autorisées. Le système bloque toutes les connexions provenant d'adresses IP situées en dehors de ces plages.
Regroupement de connexions avec PgBouncer
Pour gérer efficacement les connexions et réduire la charge des instances, utilisez PgBouncer. L'opérateur AlloyDB Omni fournit une ressource personnalisée (CR) PgBouncer pour simplifier cette opération.
Pour en savoir plus sur la configuration de PgBouncer, consultez la documentation de référence sur les CRD PgBouncer.
Déploiement et configuration
Créez une ressource PgBouncer et référencez votre cluster de bases de données dans spec.dbclusterRef. Les paramètres clés de spec.parameters sont les suivants :
pool_mode: détermine quand les connexions sont réutilisées (session,transactionoustatement).default_pool_size: connexions au serveur par utilisateur et par base de données.max_client_conn: nombre maximal de connexions client autorisées.max_db_connections: nombre maximal de connexions ouvertes à l'instance AlloyDB Omni.
Exposer PgBouncer
Utilisez spec.serviceOptions.type pour contrôler la visibilité.
ClusterIP: accès au cluster interne uniquement.LoadBalancer: accès externe. Vous pouvez restreindre cela avecspec.serviceOptions.loadBalancerSourceRangesà l'aide de blocs CIDR.
Authentification et autorisation
AlloyDB Omni accepte plusieurs méthodes pour valider les identités et contrôler les accès.
Méthodes d'authentification
- Basée sur un mot de passe : authentification standard par nom d'utilisateur et mot de passe PostgreSQL. Le mot de passe administrateur est généralement fourni à l'aide d'un secret Kubernetes, comme indiqué dans l'exemple de DBCluster complet.
Active Directory et Kerberos : gérés à l'aide de la ressource personnalisée
UserDefinedAuthentication. Cela permet la synchronisation des groupes GSSAPI et LDAP à l'aide des éléments suivants :spec.keytabSecretRef: pour les keytabs Kerberos.spec.ldapConfiguration: pour le mappage de groupes et les paramètres LDAP.spec.pgHbaEntries: pour configurer des règlespg_hba.conf, par exemplegssouldap.
Pour en savoir plus, consultez la documentation de référence sur la CRD UserDefinedAuthentication.
Basée sur un certificat (prévue) : la compatibilité avec l'authentification par certificat TLS sans mot de passe est prévue dans une prochaine version.
Autorisation et contrôle des accès
- Règles de réseau Kubernetes : définissez des règles au niveau des pods pour sécuriser le trafic entre les applications et les pods AlloyDB Omni ou
PgBouncer. - Plages CIDR sources : limitez le trafic au niveau de
LoadBalancer. - Rôles PostgreSQL : utilisez des rôles et des droits de base de données standards pour gérer les autorisations des utilisateurs une fois qu'ils sont authentifiés.
Étapes suivantes
- Consultez la documentation de référence sur la CRD DBCluster pour connaître toutes les options de configuration.
- Découvrez comment déployer le pooling de connexions avec la documentation de référence sur la CRD PgBouncer.
- Comprendre l'intégration d'Active Directory dans la documentation de référence sur la CRD UserDefinedAuthentication.
- Consultez un exemple complet dans l'exemple DBCluster complet.
- Consultez la documentation Kubernetes sur les règles de réseau.