En esta página, se describe cómo puedes configurar y administrar las políticas de contraseñas de AlloyDB Omni.
Acerca de las políticas de contraseñas
Si los usuarios de la base de datos de tu aplicación se autentican con AlloyDB Omni mediante 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 de AlloyDB Omni 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 Omni 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 AlloyDB Omni
Para establecer una política de contraseñas, actualiza los parámetros de contraseña de la configuración general unificada (GUC) en el archivo de configuración postgresql.conf
. Para obtener información sobre cómo configurar un
paraméntero GUC, consulta
Configura marcas de base de datos de AlloyDB Omni.
Una política de contraseñas para AlloyDB Omni puede incluir las siguientes opciones:
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 Omni, consulta Marcas de la política de contraseñas.
Carga previa de la biblioteca de validación de contraseñas
Para que una política de contraseña tenga efecto en AlloyDB Omni, se debe cargar la biblioteca alloydb_password_validation
. Para cargar esta biblioteca, haz lo siguiente:
Busca el archivo de configuración
postgresql.conf
de tu instalación de AlloyDB Omni y ábrelo en un editor de texto.Busca la línea
shared_preload_libraries
y verifica si incluyealloydb_password_validation
. Si no es así, debes agregarlo. Cuando termines, la líneashared_preload_libraries
se verá similar a la siguiente:shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
Aplica la complejidad de la contraseña de manera forzosa
Para aplicar una política de complejidad de contraseñas, haz lo siguiente:
Verifica que tu archivo
postgresql.conf
cargue previamente la biblioteca de validación de contraseñas.Establece la marca
password.enforce_complexity
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, como mínimo, una letra mayúscula, un número y tener al menos 10 caracteres, debes configurar lo siguiente en tu archivo postgresql.conf
:
password.enforce_complexity = ON
password.min_uppercase_letters = 1
password.min_numerical_chars = 1
password.min_pass_length = 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;
Aplica el vencimiento de contraseña
Para aplicar la política de vencimiento de contraseñas, haz lo siguiente:
Verifica que tu archivo
postgresql.conf
cargue previamente la biblioteca de validación de contraseñas.Establece la marca
password.enforce_expiration
enON
.Establece la marca
password.expiration_in_days
en la cantidad de días después de que se establece una contraseña que vence.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 en tu archivo postgresql.conf
:
password.enforce_expiration = ON
password.expiration_in_days = 30
password.notify_expiration_in_days = 15
Si vence la contraseña de un usuario, este no podrá conectarse a AlloyDB Omni. Para restablecer la contraseña de un usuario, haz lo siguiente:
Conéctate a AlloyDB Omni con
psql
. Por ejemplo, si instalaste AlloyDB Omni con Docker, ejecuta el siguiente comando:docker exec -it CONTAINER-NAME psql -h localhost -U postgres
En el mensaje de
postgres=#
, ejecuta el siguiente comando:ALTER USER USERNAME WITH 'NEW-PASSWORD';
Para obtener más información sobre cómo cambiar la contraseña de un usuario, consulta ALTER ROLE
en la documentación de PostgreSQL.
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:
Verifica que tu archivo
postgresql.conf
cargue previamente la biblioteca de validación de contraseñas.Establece
password.enforce_password_does_not_contain_username
enON
.
Por ejemplo, para asegurarte de que una contraseña no contenga un nombre de usuario como subcadena, configura lo siguiente en tu archivo postgresql.conf
:
password.enforce_password_does_not_contain_username = 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?
- Obtén información para crear copias de seguridad y restablecer AlloyDB Omni
- Cómo crear una réplica de solo lectura