Puedes establecer y administrar 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 hacer que la autenticación sea más segura aplicando contraseñas seguras. Para definir y habilitar la aplicación de contraseñas, establece 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 estableces las políticas. Los cambios en la política de contraseñas no afectan las contraseñas de usuario 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 instancia
Para establecer una política de contraseñas en una instancia, configura las 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 la contraseña: Asegúrate de que las contraseñas roten de forma periódica.
Para obtener una lista de las marcas de políticas de contraseñas que admite AlloyDB, consulta Marcas de políticas de contraseñas.
Para cumplir con los estándares de seguridad y alinearte con la guía del recomendador de seguridad, debes habilitar las tres opciones juntas configurando sus marcas de aplicación principales en ON:
password.enforce_password_does_not_contain_usernamepassword.enforce_complexitypassword.enforce_expiration
Si estableces alguna de estas tres marcas en OFF o las omites, el recomendador de seguridad marcará la instancia como si no tuviera habilitada una política de contraseñas.
Aplica la complejidad de la contraseña
Para aplicar una política de complejidad de contraseñas, haz lo siguiente:
- Establece la
password.enforce_complexitymarca enON. - 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:
password.enforce_complexityenON- Marca
password.min_uppercase_lettersen1 - Marca
password.min_numerical_charsen1 - Marca
password.min_pass_lengthen10
Después de establecer estas marcas, falla 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 esta política establecida, 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úscula.
CREATE USER USERNAME WITH PASSWORD 'foo';
Aplicar de manera forzosa el vencimiento de la contraseña
Para aplicar la política de vencimiento de contraseñas, haz lo siguiente:
Establece la
password.enforce_expirationmarca enON.Establece la
password.expiration_in_daysmarca en la cantidad de días después de que se establece una contraseña que vence.Establece la
password.notify_expiration_in_daysmarca en la cantidad de días antes de que venza 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 establezca que las contraseñas vencen después de 30 días y que se notifica a los usuarios 15 días antes de que venza su contraseña, debes establecer lo siguiente:
password.enforce_expirationenON- Marca
password.expiration_in_daysen30 - Marca
password.notify_expiration_in_daysen15
Si vence la contraseña de un usuario, ese usuario no podrá conectarse a la instancia de AlloyDB. Para restablecer la contraseña de un usuario, consulta Cambia la contraseña de un usuario de base de datos.
No permitas 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:
- Establece
password.enforce_password_does_not_contain_usernameenON.
Por ejemplo, para asegurarte de que una contraseña no contenga un nombre de usuario como una subcadena, debes establecer lo siguiente:
password.enforce_password_does_not_contain_usernameenON
Si se establece esta marca, falla la siguiente operación porque la contraseña
alex-secret contiene el nombre de usuario alex:
CREATE USER alex WITH PASSWORD 'alex-secret';