Configura l'autenticazione client

Seleziona una versione della documentazione:

Questo documento descrive come configurare l'autenticazione client sul tuo cluster di database AlloyDB Omni basato su Kubernetes utilizzando la risorsa personalizzata UserDefinedAuthentication (alloydbomni.dbadmin.goog/v1). Puoi personalizzare il comportamento dell'autenticazione client, ad esempio limitando le subnet client, applicando SSL/TLS, specificando metodi di autenticazione personalizzati o configurando la mappatura degli utenti, definendo voci pg_hba.conf e pg_ident.conf personalizzate indipendentemente dalla configurazione di Active Directory.

Questo documento presuppone che tu abbia familiarità con l'applicazione dei file manifest di Kubernetes e con l'utilizzo dello strumento a riga di comando kubectl. Per saperne di più, consulta Strumento a riga di comando (kubectl).

Prima di iniziare

Per configurare l'autenticazione client, devi disporre di quanto segue:

  • Un cluster AlloyDB Omni di cui è stato eseguito il deployment in un ambiente Kubernetes.
  • Utenti e ruoli del database configurati nel cluster.
  • L'interfaccia a riga di comando kubectl installata e configurata.

Applica il manifest della risorsa personalizzata

Applica il seguente manifest della risorsa personalizzata di autenticazione definita dall'utente:

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

Sostituisci quanto segue:

  • USER_DEFINED_AUTHENTICATION_NAME: il nome della risorsa personalizzata UserDefinedAuthentication, ad esempio DB_CLUSTER_NAME-client-auth.
  • DB_CLUSTER_NAMESPACE: lo spazio dei nomi Kubernetes per questa risorsa personalizzata. Lo spazio dei nomi deve corrispondere a quello del cluster di database.
  • DB_CLUSTER_NAME: il nome del cluster di database, che hai assegnato quando lo hai creato.
  • PG_HBA_ENTRIES: voci pg_hba.conf come elenco di stringhe. Queste voci sovrascrivono quelle predefinite in pg_hba.conf. Ad esempio, per limitare le connessioni a una subnet specifica, utilizza - "host all all 192.168.1.0/24 scram-sha-256". Per saperne di più, consulta Il file pg_hba.conf.
  • PG_IDENT_ENTRIES: (Facoltativo) Voci pg_ident.conf come elenco di stringhe. Per implementare la mappatura dei nomi utente, specifica map= nel campo Options nel file pg_hba.conf. Se non hai bisogno della mappatura dei nomi utente, ometti il campo pgIdentEntries dal manifest. Per saperne di più, consulta Mappe dei nomi utente.

Verifica le regole di autenticazione client

Per controllare lo stato della risorsa UserDefinedAuthentication, esegui questo comando:

kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE

Verifica che nella colonna STATE sia visualizzato Ready.

Per visualizzare i dettagli e le condizioni delle risorse, esegui questo comando:

kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Aggiorna le regole di autenticazione client

Per aggiornare le regole di autenticazione del client o le mappature degli utenti, aggiorna spec.pgHbaEntries o spec.pgIdentEntries nel file manifest e applicalo di nuovo:

kubectl apply -f CLIENT_AUTH_MANIFEST.yaml

L'operatore AlloyDB Omni ricarica dinamicamente la configurazione PostgreSQL (pg_ctl reload) senza riavviare il pod del database o causare tempi di inattività.

Elimina le regole di autenticazione client

Per eliminare le regole di autenticazione personalizzate e ripristinare quelle predefinite, esegui questo comando:

kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Quando elimini la risorsa UserDefinedAuthentication, l'operatore AlloyDB Omni ricarica dinamicamente pg_hba.conf (pg_ctl reload) per ripristinare le regole di autenticazione predefinite senza richiedere il riavvio di un pod del database.

Passaggi successivi