Como posso usar o plug-in validate_password para melhorar a segurança da minha instância de banco de dados Amazon RDS para MySQL?

5 minuto de leitura
0

Tenho uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) que executa o MySQL. Quero usar o plug-in validate_password para testar minhas senhas e melhorar a segurança da minha instância de banco de dados.

Breve descrição

O MySQL fornece um plug-in validate_password que você pode usar para melhorar a segurança de uma instância de banco de dados RDS para MySQL. O plug-in usa parâmetros no grupo de parâmetros do banco de dados para sua instância de banco de dados para impor políticas de senha. O plug-in é compatível com instâncias de banco de dados que executam as versões 5.7 e 8.0 do MySQL.

Observação: o plug-in validate_password é um plug-in e não faz parte da configuração padrão do MySQL. Quando o Amazon RDS cria uma instância de banco de dados MySQL, o plug-in não é instalado por padrão.

Resolução

Ative o plug-in validate_password para a instância de banco de dados RDS para MySQL

Use o usuário principal para se conectar à instância de banco de dados RDS para MySQL e execute o seguinte comando:

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

Isso instala o plug-in validate_password e, em seguida, executa o plug-in com os valores de parâmetros padrão.

Verifique se o plug-in validate_password está instalado e ativo na instância de banco de dados RDS para MySQL

Execute a seguinte consulta em sua instância de banco de dados para verificar o status do plug-in 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 |
    +-------------------+---------------+-------------------+----------------------+

Verificar valores padrão para o plugin validate_password

Execute a consulta a seguir para verificar os valores padrão dos parâmetros do plug-in:

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

Aqui estão as descrições de cada parâmetro:

validate_password_check_user_name

  • Valor - DESATIVADO
  • Descrição - em branco

validate_password_dictionary_file

  • Valor - em branco
  • Descrição - em branco

validate_password_length

  • Valor - 8
  • Descrição - Tamanho mínimo da senha

validate_password_mixed_case_count

  • Valor - 1
  • Descrição - Exigir que as senhas tenham caracteres maiúsculos e minúsculos

validate_password_number_count

  • Valor - 1
  • Descrição - Exigir que as senhas tenham pelo menos um número

validate_password_policy

  • Valor - MÉDIO
  • Descrição - O rótulo do grupo de configurações

validate_password_special_char_count

  • Valor - 1
  • Descrição - Exigir que as senhas tenham pelo menos um caractere especial

Configure esses parâmetros no grupo de parâmetros de banco de dados personalizados que sua instância de banco de dados usa, exceto validate_password_dictionary_file e validate_password_check_user_name. Se sua instância de banco de dados usa o grupo de parâmetros padrão, crie um novo grupo de parâmetros e, em seguida, anexe-o à instância de banco de dados. Isso ocorre porque você não pode modificar as configurações de parâmetros de um grupo de parâmetros padrão. Para obter mais informações, consulte Trabalhar com grupos de parâmetros.

Observação: o Amazon RDS não valida senhas. Se você usar qualquer uma das opções a seguir para definir uma senha de usuário, a alteração será bem-sucedida independentemente de suas políticas de senha:

  • Console de Gerenciamento da AWS
  • O comando modify-db-instance da AWS Command Line Interface (AWS CLI)
  • A operação ModifyDBInstance da API do Amazon RDS

Redefinir senhas existentes e criar uma senha compatível com a política

Depois de instalar e ativar o plug-in password_validate, redefina suas senhas existentes de acordo com suas novas políticas de validação.

1.    Teste o plug-in password_validate que está instalado em sua instância de banco de dados. Use os parâmetros padrão do plug-in listados anteriormente para criar um novo usuário de banco de dados:

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

Como validate_password_policy está definido como MEDIUM, a senha deve atender aos critérios descritos na documentação de MySQL validate_password_policy documentation. No exemplo anterior, o comando CREATE USER falha porque não satisfaz a política de senha. Você recebe uma mensagem de erro semelhante à seguinte:

“Sua senha não atende aos requisitos da política atual.”

2.    Execute o comando a seguir para criar um usuário com uma senha que atenda à política:

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

3.    Para verificar se você criou o usuário com êxito, execute o seguinte 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 alterar a senha de usuário existente, execute o comando a seguir. Use uma senha compatível com a política, conforme mostrado no exemplo a seguir:

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

Para saber mais sobre como redefinir senhas para um usuário existente, consulte Como redefinir a senha raiz (no site do MySQL).

Desative o plug-in validate_password para a instância de banco de dados RDS para MySQL

MySQL [(none)]> UNINSTALL PLUGIN validate_password;

Informações relacionadas

Como usar o plug-in de validação de senha para RDS para MySQL

O plug-in de validação de senha na documentação do MySQL