¿Cómo puedo usar el complemento validate_password para mejorar la seguridad de mi instancia de base de datos de Amazon RDS para MySQL?

5 minutos de lectura
0

Tengo una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que ejecuta MySQL. Quiero usar el complemento validate_password para probar mis contraseñas y mejorar la seguridad de mi instancia de base de datos.

Descripción breve

MySQL proporciona un complemento validate_password que puede utilizar para mejorar la seguridad de una instancia de base de datos de RDS para MySQL. El complemento usa parámetros del grupo de parámetros de base de datos de la instancia de base de datos para aplicar las políticas de contraseñas. El complemento es compatible con las instancias de base de datos que ejecutan las versiones 5.7 y 8.0 de MySQL.

Nota: El complemento validate_password es un complemento y no forma parte de la configuración predeterminada de MySQL. Cuando Amazon RDS crea una instancia de base de datos MySQL, el complemento no se instala de forma predeterminada.

Resolución

Active el complemento validate_password para la instancia de base de datos de RDS para MySQL

Utilice el usuario principal para conectarse a la instancia de base de datos de RDS para MySQL y ejecute el siguiente comando:

MySQL [(none)]> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Esto instala el complemento validate_password y, a continuación, ejecuta el complemento con los valores de los parámetros predeterminados.

Compruebe que el complemento validate_password esté instalado y activo en la instancia de base de datos de RDS para MySQL

Ejecute la siguiente consulta en la instancia de base de datos para comprobar el estado del complemento validate_password:

MySQL [(none)]> SELECT plugin_name, plugin_status,
plugin_type, plugin_library FROM information_schema.plugins WHERE
plugin_name='validate_password';

    +-------------------+---------------+-------------------+----------------------+
    | plugin_name       | plugin_status | plugin_type       | plugin_library       |
    +-------------------+---------------+-------------------+----------------------+
    | validate_password | ACTIVE        | VALIDATE PASSWORD | validate_password.so |
    +-------------------+---------------+-------------------+----------------------+

Comprueba los valores predeterminados del complemento validate_password

Ejecute la siguiente consulta para comprobar los valores de los parámetros predeterminados del complemento:

MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'validate_password%';

Estas son las descripciones de cada parámetro:

validate_password_check_user_name

  • Valor: DESACTIVADO
  • Descripción: en blanco

validate_password_dictionary_file

  • Valor: en blanco
  • Descripción: en blanco

validate_password_length

  • Valor: 8
  • Descripción: longitud mínima de la contraseña

validate_password_mixed_case_count

  • Valor: 1
  • Descripción: exigir que las contraseñas tengan caracteres en mayúscula y minúscula

validate_password_number_count

  • Valor: 1
  • Descripción: exija que las contraseñas tengan al menos un número

validate_password_policy

  • Valor: MEDIO
  • Descripción: etiqueta del grupo de configuración

validate_password_special_char_count

  • Valor: 1
  • Descripción: exigir que las contraseñas tengan al menos un carácter especial

Configure estos parámetros en el grupo de parámetros de base de datos personalizado que utiliza su instancia de base de datos, excepto validate_password_dictionary_file y validate_password_check_user_name. Si la instancia de base de datos usa el grupo de parámetros predeterminado, cree un nuevo grupo de parámetros y, a continuación, adjúntelo a la instancia de base de datos. Esto se debe a que no puede modificar la configuración de los parámetros de un grupo de parámetros predeterminado. Para obtener más información, consulte Trabajo con los grupos de parámetros.

**Nota:**Amazon RDS no valida las contraseñas. Si utiliza alguna de las siguientes opciones para establecer una contraseña de usuario, el cambio se llevará a cabo correctamente independientemente de sus políticas de contraseñas:

  • La consola de administración de AWS
  • El comando de la Interfaz de la línea de comandos de AWS (AWS CLI) modify-db-instance
  • La operación de la API de Amazon RDS ModifyDBInstance

Restablecer las contraseñas existentes y crear una contraseña que cumpla con las políticas

Después de instalar y activar el complemento password_validate, restablezca las contraseñas existentes para cumplir con las nuevas políticas de validación.

1.    Pruebe el complemento password_validate que está instalado en la instancia de base de datos. Utilice los parámetros predeterminados del complemento enumerados anteriormente para crear un nuevo usuario de base de datos:

MySQL [(none)]> CREATE USER 'USER123'@'%' identified by 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Dado que validate_password_policy está configurado en MEDIO, la contraseña debe cumplir los criterios que se describen en la documentación de validate_password_policy de MySQL. En el ejemplo anterior, el comando CREAR USUARIO produce un error porque no cumple con la política de contraseñas. Recibe un mensaje de error similar al siguiente:

«Su contraseña no cumple con los requisitos de la política actual».

2.    Ejecute el siguiente comando para crear un usuario con una contraseña que cumpla con la política de contraseñas:

MySQL [(none)]> CREATE USER 'USER123'@'%' identified by 'Password@57';
Query OK, 0 rows affected (0.01 sec)

3.    Para comprobar que haya creado el usuario correctamente, ejecute el siguiente comando:

MySQL [(none)]> SELECT user, host FROM mysql.user WHERE ( user='USER123' AND host='%' );
+-------------------+------+
| user              | host |
+-------------------+------+
| validate_password | %    |
+-------------------+------+
1 row in set (0.00 sec)

4.    Para cambiar la contraseña del usuario existente, ejecute el siguiente comando. Utilice una contraseña que cumpla con las políticas, como se muestra en el siguiente ejemplo:

mysql> alter user 'USER123'@'%' identified by 'Password@2020';
Query OK, 0 rows affected (0.01 sec)

Para obtener más información sobre cómo restablecer las contraseñas de un usuario existente, consulte Cómo restablecer la contraseña raíz (en el sitio web de MySQL).

Desactive el complemento validate_password para la instancia de base de datos MySQL de RDS

MySQL [(none)]> UNINSTALL PLUGIN validate_password;

Información relacionada

Uso del complemento de validación de contraseñas de RDS para MySQL

El complemento de validación de contraseñas de la documentación de MySQL

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses