En esta página se describe cómo puedes definir y gestionar políticas de contraseñas para los usuarios de bases 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 mediante el método integrado basado en contraseñas, puedes aumentar la seguridad de la autenticación exigiendo contraseñas seguras. Puedes definir y habilitar la aplicación de contraseñas configurando una política de contraseñas en tus instancias.
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 las hayas definido. Los cambios en la política de contraseñas no afectan a las contraseñas de los usuarios.
Las políticas de contraseñas se aplican solo a las contraseñas introducidas como texto sin formato. Las políticas de contraseñas no se aplican a las contraseñas introducidas como cadenas cifradas.
Definir una política de contraseñas de instancia
Puedes definir una política de contraseñas en una instancia configurando marcas de contraseñas en una instancia.
No permitir nombre de usuario: impide que se use el nombre de usuario en la contraseña.
Complejidad de la contraseña: comprueba si la contraseña contiene el número permitido de caracteres alfabéticos en minúscula, mayúscula, numéricos y no alfanuméricos. Comprueba también 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 ver una lista de las marcas de política de contraseñas que admite AlloyDB, consulta Marcas de política de contraseñas.
Requerir contraseñas complejas
Para aplicar una política de complejidad de contraseñas, haz lo siguiente:
- Asigna el valor
ON
a la marcapassword.enforce_complexity
. - Usa marcas de política de contraseñas para definir tu política de contraseñas.
Por ejemplo, para aplicar una política de contraseñas que indique que una contraseña debe contener al menos una letra mayúscula, un número y tener una longitud de al menos 10 caracteres, debes definir las siguientes marcas:
- De
password.enforce_complexity
aON
- Bandera de
password.min_uppercase_letters
a1
- Bandera de
password.min_numerical_chars
a1
- Bandera de
password.min_pass_length
a10
Una vez definidas estas marcas, si se intenta establecer una contraseña de usuario de base de datos que no cumpla esta política de contraseñas, se producirá un error. Por ejemplo, con esta política definida, el siguiente comando de cliente psql
falla porque la contraseña foo
tiene menos de 10 caracteres y no contiene ningún número ni ninguna letra mayúscula.
CREATE USER USERNAME WITH PASSWORD 'foo';
Forzar la caducidad de las contraseñas
Para aplicar la política de caducidad de contraseñas, haz lo siguiente:
Asigna el valor
ON
a la marcapassword.enforce_expiration
.Define la marca
password.expiration_in_days
en el número de días que deben transcurrir después de definir una contraseña para que caduque.Define la marca
password.notify_expiration_in_days
con el número de días que faltan para que caduque una contraseña y que un usuario empieza a recibir notificaciones de caducidad de la contraseña.
Por ejemplo, para aplicar una política de contraseñas que indique que las contraseñas caducan al cabo de 30 días y que se notifica a los usuarios 15 días antes de que caduquen, debes definir lo siguiente:
- De
password.enforce_expiration
aON
- Bandera de
password.expiration_in_days
a30
- Bandera de
password.notify_expiration_in_days
a15
Si la contraseña de un usuario caduca, ese usuario no podrá conectarse a la instancia de AlloyDB Omni. Para cambiar la contraseña de un usuario, consulta 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 impide que una contraseña contenga un nombre de usuario, haz lo siguiente:
- Asigna el valor
ON
apassword.enforce_password_does_not_contain_username
.
Por ejemplo, para asegurarte de que una contraseña no contenga un nombre de usuario como subcadena, puedes definir lo siguiente:
- De
password.enforce_password_does_not_contain_username
aON
Si se define 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';
Siguientes pasos
- Gestionar roles de usuario de AlloyDB
- Gestionar la autenticación de gestión de identidades y accesos