alloydbomni.dbadmin.goog/v1) UserDefinedAuthentication konfigurieren. Sie können das Verhalten der Clientauthentifizierung anpassen, z. B. Clientsubnetze einschränken, SSL/TLS erzwingen, benutzerdefinierte Authentifizierungsmethoden angeben oder die Nutzerzuordnung konfigurieren, indem Sie benutzerdefinierte pg_hba.conf- und pg_ident.conf-Einträge unabhängig von der Active Directory-Einrichtung definieren.
In diesem Dokument wird davon ausgegangen, dass Sie mit dem Anwenden von Kubernetes-Manifestdateien und der Verwendung des kubectl-Befehlszeilentools vertraut sind. Weitere Informationen finden Sie unter Befehlszeilentool (kubectl).
Hinweis
Für die Konfiguration der Clientauthentifizierung benötigen Sie Folgendes:
- Ein AlloyDB Omni-Cluster, der in einer Kubernetes-Umgebung bereitgestellt ist.
- Im Cluster konfigurierte Datenbanknutzer und -rollen.
- Die
kubectl-Befehlszeile ist installiert und konfiguriert.
Manifest für benutzerdefinierte Ressource anwenden
Wenden Sie das folgende Manifest für die benutzerdefinierte Ressource für die benutzerdefinierte Authentifizierung an:
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
Ersetzen Sie Folgendes:
USER_DEFINED_AUTHENTICATION_NAME: der Name der benutzerdefiniertenUserDefinedAuthentication-Ressource, z. B.DB_CLUSTER_NAME-client-auth.DB_CLUSTER_NAMESPACE: Der Kubernetes-Namespace für diese benutzerdefinierte Ressource. Der Namespace muss mit dem Namespace des Datenbankclusters übereinstimmen.DB_CLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.PG_HBA_ENTRIES:pg_hba.conf-Einträge als Stringliste. Diese Einträge überschreiben die Standardeinträge inpg_hba.conf. Wenn Sie beispielsweise Verbindungen auf ein bestimmtes Subnetz beschränken möchten, verwenden Sie- "host all all 192.168.1.0/24 scram-sha-256". Weitere Informationen finden Sie unter Die Datei pg_hba.conf.PG_IDENT_ENTRIES: (Optional)pg_ident.conf-Einträge als Stringliste. Wenn Sie die Nutzernamenzuordnung implementieren möchten, geben Siemap=im Options-Feld in der Dateipg_hba.confan. Wenn Sie keine Nutzernamenzuordnung benötigen, lassen Sie das FeldpgIdentEntriesim Manifest weg. Weitere Informationen finden Sie unter Nutzername-Zuordnungen.
Clientauthentifizierungsregeln prüfen
Führen Sie den folgenden Befehl aus, um den Status der Ressource UserDefinedAuthentication zu prüfen:
kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE
Prüfen Sie, ob in der Spalte STATE der Wert Ready angezeigt wird.
Führen Sie den folgenden Befehl aus, um Ressourcendetails und Bedingungen aufzurufen:
kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE
Clientauthentifizierungsregeln aktualisieren
Wenn Sie Regeln für die Clientauthentifizierung oder Nutzerzuordnungen aktualisieren möchten, aktualisieren Sie spec.pgHbaEntries oder spec.pgIdentEntries in Ihrer Manifestdatei und wenden Sie sie noch einmal an:
kubectl apply -f CLIENT_AUTH_MANIFEST.yaml
Der AlloyDB Omni-Operator lädt die PostgreSQL-Konfiguration (pg_ctl reload) dynamisch neu, ohne dass der Datenbank-Pod neu gestartet werden muss oder Ausfallzeiten entstehen.
Regeln für die Clientauthentifizierung löschen
Führen Sie den folgenden Befehl aus, um die benutzerdefinierten Authentifizierungsregeln zu löschen und die Standardauthentifizierungsregeln wiederherzustellen:
kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE
Wenn Sie die Ressource UserDefinedAuthentication löschen, lädt der AlloyDB Omni-Operator pg_hba.conf (pg_ctl reload) dynamisch neu, um die Standardauthentifizierungsregeln wiederherzustellen, ohne dass ein Neustart des Datenbank-Pods erforderlich ist.