Para reforzar la seguridad de la autenticación integrada de la base de datos, puedes establecer y administrar políticas de contraseñas para los usuarios de la base de datos en 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 en 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 definir y habilitar la aplicación de contraseñas estableciendo 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 solo se aplican a los usuarios de bases de datos integrados (
BUILT_IN). Los usuarios de la base de datos basados en IAM (IAM_BASED) se excluyen de las políticas de contraseñas de la instancia.Las políticas de contraseñas se aplican solo a las contraseñas creadas después de que configuras las políticas. Las contraseñas de los usuarios existentes no se ven afectadas por un cambio en la política de contraseñas.
Las políticas de contraseñas se aplican a las contraseñas que se ingresan 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
Puedes establecer una política de contraseñas en una instancia configurando 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: Exige la rotación periódica de la contraseña.
Para obtener una lista de las marcas de política de contraseñas que admite AlloyDB, consulta Marcas de política de contraseñas.
Para cumplir con los estándares de seguridad y alinearte con la orientación del recomendador de seguridad, debes habilitar las tres opciones juntas configurando sus marcas de aplicación de política principales como ON:
password.enforce_password_does_not_contain_usernamepassword.enforce_complexitypassword.enforce_expiration
Si estableces cualquiera de estas tres marcas como OFF o las omites, el recomendador de seguridad
marcará la instancia como si no tuviera una política de contraseñas habilitada.
Aplicar de manera forzosa la complejidad de la contraseña
Para aplicar de manera forzosa una política de complejidad de contraseñas, haz lo siguiente:
- Establece la marca
password.enforce_complexityenON. - 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 al menos 10 caracteres, debes establecer las siguientes marcas:
Marca
password.enforce_complexitycomoONMarca
password.min_uppercase_letterscomo1Marca
password.min_numerical_charscomo1Marca
password.min_pass_lengthcomo10
Después de configurar estas marcas, fallará cualquier intento de establecer una contraseña de usuario de la base de datos que
no cumpla con esta política de contraseñas. Por ejemplo, con esta política
establecida, el siguiente comando de cliente psql falla 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 el vencimiento de contraseñas
Para aplicar la política de vencimiento de contraseñas, haz lo siguiente:
Establece la marca
password.enforce_expirationenON.Establece la marca
password.expiration_in_daysen la cantidad de días después de que se establece una contraseña para que venza.Establece la marca
password.notify_expiration_in_daysen la cantidad de días antes de que venza una contraseña para que un usuario comience a recibir notificaciones de vencimiento de la 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 notifique a los usuarios 15 días antes de que venza su contraseña, establece lo siguiente:
Marca
password.enforce_expirationcomoONMarca
password.expiration_in_dayscomo30Marca
password.notify_expiration_in_dayscomo15
Cuando un usuario se conecta durante el período de notificación antes de que venza su contraseña, AlloyDB muestra el siguiente mensaje en la conexión del cliente
y lo escribe en postgres.log:
Caution: Password is set to expire soon. Be sure to update the password before the expiration time.
Si la contraseña de un usuario vence, ese usuario no puede conectarse a la instancia de AlloyDB. Para restablecer la contraseña de un usuario, consulta Cambia la contraseña de un usuario de la base de datos.
No permitir nombres de usuario en las contraseñas
Para aplicar de manera forzosa la política que impide que una contraseña contenga un nombre de usuario, haz lo siguiente:
- Establece la marca
password.enforce_password_does_not_contain_usernameenON.
Por ejemplo, para evitar que una contraseña contenga un nombre de usuario como una subcadena, establece lo siguiente:
- Marca
password.enforce_password_does_not_contain_usernamecomoON
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';