UserDefinedAuthentication (alloydbomni.dbadmin.goog/v1). Vous pouvez personnaliser le comportement de l'authentification client (par exemple, en limitant les sous-réseaux clients, en appliquant SSL/TLS, en spécifiant des méthodes d'authentification personnalisées ou en configurant le mappage des utilisateurs) en définissant des entrées pg_hba.conf et pg_ident.conf personnalisées indépendamment de la configuration d'Active Directory.
Dans ce document, nous partons du principe que vous savez appliquer des fichiers manifestes Kubernetes et utiliser l'outil de ligne de commande kubectl. Pour en savoir plus, consultez Outil de ligne de commande (kubectl).
Avant de commencer
Pour configurer l'authentification du client, vous devez disposer des éléments suivants :
- Un cluster AlloyDB Omni déployé dans un environnement Kubernetes.
- Utilisateurs et rôles de base de données configurés dans le cluster.
- La CLI
kubectldoit être installée et configurée.
Appliquer le fichier manifeste de ressource personnalisée
Appliquez le fichier manifeste de ressource personnalisée d'authentification définie par l'utilisateur suivant :
apiVersion: alloydbomni.dbadmin.goog/v1
kind: UserDefinedAuthentication
metadata:
name: USER_DEFINED_AUTHENTICATION_NAME
namespace: DB_CLUSTER_NAMESPACE
spec:
dbclusterRef:
name: DB_CLUSTER_NAME
pgHbaEntries:
PG_HBA_ENTRIES
pgIdentEntries:
PG_IDENT_ENTRIES
Remplacez les éléments suivants :
USER_DEFINED_AUTHENTICATION_NAME: nom de la ressource personnaliséeUserDefinedAuthentication(par exemple,DB_CLUSTER_NAME-client-auth).DB_CLUSTER_NAMESPACE: espace de noms Kubernetes pour cette ressource personnalisée. L'espace de noms doit correspondre à celui du cluster de base de données.DB_CLUSTER_NAME: nom de votre cluster de bases de données, que vous avez attribué lors de sa création.PG_HBA_ENTRIES: entréespg_hba.confsous forme de liste de chaînes. Ces entrées écrasent les entrées par défaut danspg_hba.conf. Par exemple, pour limiter les connexions à un sous-réseau spécifique, utilisez- "host all all 192.168.1.0/24 scram-sha-256". Pour en savoir plus, consultez le fichier pg_hba.conf.PG_IDENT_ENTRIES: (facultatif) entréespg_ident.confsous forme de liste de chaînes. Pour implémenter le mappage des noms d'utilisateur, spécifiezmap=dans le champ des options du fichierpg_hba.conf. Si vous n'avez pas besoin de mappage de nom d'utilisateur, omettez le champpgIdentEntriesdu fichier manifeste. Pour en savoir plus, consultez Mappages de noms d'utilisateur.
Vérifier les règles d'authentification client
Pour vérifier l'état de la ressource UserDefinedAuthentication, exécutez la commande suivante :
kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE
Vérifiez que la colonne STATE affiche Ready.
Pour afficher les détails et les conditions des ressources, exécutez la commande suivante :
kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE
Mettre à jour les règles d'authentification client
Pour mettre à jour les règles d'authentification du client ou les mappages d'utilisateurs, mettez à jour spec.pgHbaEntries ou spec.pgIdentEntries dans votre fichier manifeste, puis appliquez-le à nouveau :
kubectl apply -f CLIENT_AUTH_MANIFEST.yaml
L'opérateur AlloyDB Omni recharge dynamiquement la configuration PostgreSQL (pg_ctl reload) sans redémarrage du pod de base de données ni temps d'arrêt.
Supprimer des règles d'authentification client
Pour supprimer les règles d'authentification personnalisées et rétablir les règles d'authentification par défaut, exécutez la commande suivante :
kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE
Lorsque vous supprimez la ressource UserDefinedAuthentication, l'opérateur AlloyDB Omni recharge dynamiquement pg_hba.conf (pg_ctl reload) pour restaurer les règles d'authentification par défaut sans nécessiter de redémarrage du pod de base de données.
Étapes suivantes
- Gérer les utilisateurs et les rôles
- Gérer les règles concernant les mots de passe
- Documentation de référence sur les CRD
UserDefinedAuthentication