Administra la autenticación integrada con políticas de contraseñas

En esta página, se describe cómo puedes configurar y administrar las políticas de contraseñas para los usuarios de la base de datos de tus instancias de AlloyDB para PostgreSQL.

Para obtener una descripción general de los métodos de autenticación disponibles en AlloyDB, consulta Autenticación.

Acerca de las políticas de contraseñas

Si los usuarios de la base de datos de tu aplicación se autentican con tus instancias de AlloyDB con el método integrado basado en contraseñas, puedes hacer que la autenticación sea más segura aplicando contraseñas seguras. Puedes configurar una política de contraseñas en tus instancias para definir y habilitar la aplicación forzosa de contraseñas.

Limitaciones de las políticas de contraseñas

Las políticas de contraseñas de AlloyDB tienen las siguientes limitaciones:

  • Las políticas de contraseñas se aplican a las contraseñas creadas solo después de que configuras las políticas. Los cambios en la política de contraseñas no afectan a las contraseñas de los usuarios existentes.

  • Las políticas de contraseñas se aplican a las contraseñas ingresadas solo como texto sin formato. Las políticas de contraseñas no se aplican a las contraseñas ingresadas como cadenas encriptadas.

Establece una política de contraseñas de la instancia

Para establecer una política de contraseñas en una instancia, configura marcas de contraseñas en una instancia.

  • Inhabilitar nombre de usuario: Impide que se use el nombre de usuario en la contraseña.

  • Complejidad de la contraseña: Verifica si la contraseña contiene la cantidad permitida de caracteres en minúscula, mayúscula, numéricos y no alfanuméricos. También verifica si la longitud de la contraseña es válida.

  • Vencimiento de contraseñas: Asegúrate de que las contraseñas se cambien periódicamente.

Para obtener una lista de las marcas de la política de contraseñas que admite AlloyDB, consulta Marcas de la política de contraseñas.

Aplica la complejidad de la contraseña de manera forzosa

Para aplicar una política de complejidad de contraseñas, haz lo siguiente:

  1. Establece la marca password.enforce_complexity en ON.
  2. Usa marcas de políticas de contraseñas para definir tu política de contraseñas.

Por ejemplo, para aplicar una política de contraseñas que establezca que una contraseña debe contener al menos una letra mayúscula, un número y tener al menos 10 caracteres, debes establecer las siguientes marcas:

  • De password.enforce_complexity a ON
  • La marca password.min_uppercase_letters en 1
  • La marca password.min_numerical_chars en 1
  • La marca password.min_pass_length en 10

Después de establecer estas marcas, fallará un intento de establecer una contraseña de usuario de base de datos que no cumpla con esta política de contraseñas. Por ejemplo, con este conjunto de políticas, falla el siguiente comando del cliente psql porque la contraseña foo tiene menos de 10 caracteres y no contiene un número ni un carácter en mayúsculas.

CREATE USER USERNAME WITH PASSWORD 'foo';

Cómo aplicar el vencimiento de contraseña

Para aplicar la política de vencimiento de contraseñas, haz lo siguiente:

  1. Establece la marca password.enforce_expiration en ON.

  2. Establece la marca password.expiration_in_days en la cantidad de días después de que se establece una contraseña que vence.

  3. Establece la marca password.notify_expiration_in_days en la cantidad de días antes del vencimiento de una contraseña que un usuario comienza a recibir notificaciones de vencimiento de contraseña.

Por ejemplo, para aplicar una política de contraseñas que indique que las contraseñas vencen después de 30 días y que se les notifique a los usuarios 15 días antes de que venza la contraseña, debes configurar lo siguiente:

  • De password.enforce_expiration a ON
  • La marca password.expiration_in_days en 30
  • La marca password.notify_expiration_in_days en 15

Si vence la contraseña de un usuario, este no podrá conectarse a la instancia de AlloyDB Omni. Para restablecer la contraseña de un usuario, consulta Cómo cambiar la contraseña de un usuario de la base de datos.

No permitir nombres de usuario en las contraseñas

Para aplicar la política que evita que una contraseña contenga un nombre de usuario, haz lo siguiente:

Por ejemplo, para asegurarte de que una contraseña no contenga un nombre de usuario como subcadena, establece lo siguiente:

  • De password.enforce_password_does_not_contain_username a ON

Si se establece esta marca, la siguiente operación falla porque la contraseña alex-secret contiene el nombre de usuario Alex:

CREATE USER Alex WITH PASSWORD 'alex-secret';

¿Qué sigue?