Configura la autenticación de clientes

Selecciona una versión de la documentación:

En este documento, se describe cómo configurar la autenticación de clientes en tu clúster de base de datos de AlloyDB Omni basado en Kubernetes con el recurso personalizado UserDefinedAuthentication (alloydbomni.dbadmin.goog/v1). Puedes personalizar el comportamiento de la autenticación de clientes, como restringir las subredes de clientes, aplicar SSL/TLS, especificar métodos de autenticación personalizados o configurar la asignación de usuarios, definiendo entradas personalizadas de pg_hba.conf y pg_ident.conf de forma independiente de la configuración de Active Directory.

En este documento, se da por sentado que estás familiarizado con la aplicación de archivos de manifiesto de Kubernetes y el uso de la herramienta de línea de comandos de kubectl. Para obtener más información, consulta Herramienta de línea de comandos (kubectl).

Antes de comenzar

Para configurar la autenticación de clientes, debes tener lo siguiente:

  • Un clúster de AlloyDB Omni implementado en un entorno de Kubernetes.
  • Son los usuarios y roles de la base de datos configurados en el clúster.
  • La CLI de kubectl instalada y configurada.

Aplica el manifiesto del recurso personalizado

Aplica el siguiente manifiesto de recurso personalizado de autenticación definido por el usuario:

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

Reemplaza lo siguiente:

  • USER_DEFINED_AUTHENTICATION_NAME: es el nombre del recurso personalizado UserDefinedAuthentication, por ejemplo, DB_CLUSTER_NAME-client-auth.
  • DB_CLUSTER_NAMESPACE: Es el espacio de nombres de Kubernetes para este recurso personalizado. El espacio de nombres debe coincidir con el del clúster de base de datos.
  • DB_CLUSTER_NAME: Es el nombre del clúster de base de datos, que asignaste cuando lo creaste.
  • PG_HBA_ENTRIES: Son las entradas de pg_hba.conf como una lista de cadenas. Estas entradas reemplazan las entradas predeterminadas en pg_hba.conf. Por ejemplo, para restringir las conexiones a una subred específica, usa - "host all all 192.168.1.0/24 scram-sha-256". Para obtener más información, consulta El archivo pg_hba.conf.
  • PG_IDENT_ENTRIES: (Opcional) Entradas de pg_ident.conf como una lista de cadenas. Para implementar la asignación de nombres de usuario, especifica map= en el campo de opciones del archivo pg_hba.conf. Si no necesitas la asignación de nombres de usuario, omite el campo pgIdentEntries del manifiesto. Para obtener más información, consulta Asignaciones de nombres de usuario.

Verifica las reglas de autenticación de clientes

Para verificar el estado del recurso UserDefinedAuthentication, ejecuta el siguiente comando:

kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE

Verifica que la columna STATE muestre Ready.

Para ver los detalles y las condiciones de los recursos, ejecuta el siguiente comando:

kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Actualiza las reglas de autenticación de clientes

Para actualizar las reglas de autenticación de clientes o las asignaciones de usuarios, actualiza spec.pgHbaEntries o spec.pgIdentEntries en tu archivo de manifiesto y vuelve a aplicarlo:

kubectl apply -f CLIENT_AUTH_MANIFEST.yaml

El operador de AlloyDB Omni vuelve a cargar de forma dinámica la configuración de PostgreSQL (pg_ctl reload) sin reiniciar el Pod de la base de datos ni generar tiempo de inactividad.

Borra reglas de autenticación de clientes

Para borrar las reglas de autenticación personalizadas y volver a las reglas de autenticación predeterminadas, ejecuta el siguiente comando:

kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Cuando borras el recurso UserDefinedAuthentication, el operador de AlloyDB Omni vuelve a cargar de forma dinámica pg_hba.conf (pg_ctl reload) para restablecer las reglas de autenticación predeterminadas sin necesidad de reiniciar el pod de la base de datos.

¿Qué sigue?