

# Políticas de senha e validação de senha no Aurora MySQL
<a name="AuroraMySQL.PasswordPolicies"></a>

**Topics**
+ [Políticas de senha](#AuroraMySQL.PasswordPolicies.overview)
+ [Como usar o componente validate\_password](#AuroraMySQL.PasswordPolicies.validate-password)
+ [Documentação relacionada](#AuroraMySQL.PasswordPolicies.related)

## Políticas de senha
<a name="AuroraMySQL.PasswordPolicies.overview"></a>

O Aurora MySQL é compatível com os recursos de política de senha do MySQL a seguir. Para ter mais informações sobre essas políticas, consulte a documentação [MySQL Password Management](https://dev.mysql.com/doc/refman/8.4/en/password-management.html).

### Expiração de senha
<a name="AuroraMySQL.PasswordPolicies.expiration"></a>


**Parâmetros de expiração de senha**  

| Parâmetro/cláusula | Observações | 
| --- | --- | 
| Parâmetro `default_password_lifetime` do cluster | Disponível no Aurora MySQL versão 3 (compatível com MySQL 8.0) e versões posteriores. | 
| Cláusula DCL `PASSWORD EXPIRE INTERVAL N DAY` por conta | Nenhum | 
| Cláusula DCL `PASSWORD EXPIRE NEVER` por conta | Nenhum | 
| Cláusula DCL `PASSWORD EXPIRE DEFAULT` por conta | Nenhum | 
| Parâmetro `disconnect_on_expired_password` do cluster | Disponível no Aurora MySQL versão 8.4 e posterior. | 

### Restrições de reutilização de senhas
<a name="AuroraMySQL.PasswordPolicies.reuse"></a>


**Parâmetros de restrição de reutilização de senhas**  

| Parâmetro/cláusula | Observações | 
| --- | --- | 
| Parâmetro `password_history` do cluster | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| Parâmetro `password_reuse_interval` do cluster | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| Cláusula DCL `PASSWORD HISTORY N` por conta | Nenhum | 
| Cláusula DCL `PASSWORD REUSE INTERVAL N DAY` por conta | Nenhum | 
| Cláusula DCL `PASSWORD HISTORY DEFAULT` por conta | Nenhum | 

### Verificação de senha atual
<a name="AuroraMySQL.PasswordPolicies.current-verification"></a>


**Parâmetros de verificação de senha atual**  

| Parâmetro/cláusula | Observações | 
| --- | --- | 
| Parâmetro `password_require_current` | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| Cláusula DCL `PASSWORD REQUIRE CURRENT` por conta | Nenhum | 
| Cláusula DCL `PASSWORD REQUIRE CURRENT OPTIONAL` por conta | Nenhum | 
| Cláusula DCL `PASSWORD REQUIRE CURRENT DEFAULT` por conta | Nenhum | 

### Suporte a senha dupla
<a name="AuroraMySQL.PasswordPolicies.dual-password"></a>


**Cláusulas de suporte a senha dupla**  

| Parâmetro/cláusula | Observações | 
| --- | --- | 
| Cláusula DCL `RETAIN CURRENT PASSWORD` por conta | Nenhum | 
| Cláusula DCL `DISCARD OLD PASSWORD` por conta | Nenhum | 

### Rastreamento de login com falha e bloqueio temporário de conta
<a name="AuroraMySQL.PasswordPolicies.failed-login"></a>


**Cláusulas de rastreamento de login com falha**  

| Parâmetro/cláusula | Observações | 
| --- | --- | 
| Cláusula DCL `FAILED_LOGIN_ATTEMPTS N` por conta | Nenhum | 
| Cláusula DCL `PASSWORD_LOCK_TIME N` por conta | Nenhum | 
| Cláusula DCL `PASSWORD_LOCK_TIME UNBOUNDED` por conta | Nenhum | 

## Como usar o componente validate\_password
<a name="AuroraMySQL.PasswordPolicies.validate-password"></a>

O componente `validate_password` é um componente do servidor MySQL que oferece recursos de validação e imposição de força de senha. Ele testa as senhas em relação a regras configuráveis para garantir que elas atendam aos requisitos de segurança especificados antes de serem aceitas. 

Quando habilitado, o componente `validate_password` valida automaticamente as senhas durante:
+ A criação de conta de usuário (`CREATE USER`).
+ A alteração de senhas (`ALTER USER`, `SET PASSWORD`).

Isso ajuda as organizações a manter uma forte higienização de senhas entre os usuários do banco de dados e a cumprir políticas de segurança e requisitos regulamentares.

O Aurora MySQL versão 8.4 oferece uma abordagem baseada em parâmetros para habilitar e gerenciar o componente `validate_password`, eliminando a necessidade dos comandos manuais `INSTALL COMPONENT` e `UNINSTALL COMPONENT`.

### Como habilitar o componente validate\_password
<a name="AuroraMySQL.PasswordPolicies.validate-password.enabling"></a>

Para habilitar a validação de senha em um cluster do Aurora MySQL, use o parâmetro do cluster:

Nome do parâmetro: `aurora_enable_validate_password_component`

Para habilitá-lo: defina `aurora_enable_validate_password_component` como `true` (ou `1`) no grupo de parâmetros do cluster de banco de dados.

Para desabilitá-lo: defina `aurora_enable_validate_password_component` como `false` (ou `0`) no grupo de parâmetros do cluster de banco de dados.

**nota**  
Não será possível usar os comandos `INSTALL/UNINSTALL COMPONENT` do componente `validate_password`.

**nota**  
A partir do Aurora MySQL versão 8.4, o componente `validate_password` não estará mais listado na tabela `mysql.component`. É possível ver o status do componente no grupo de parâmetros do cluster de banco de dados ou por meio da variável global `aurora_enable_validate_password_component`:  

```
SELECT @@global.aurora_enable_validate_password_component;
```

### Parâmetros compatíveis do componente validate\_password
<a name="AuroraMySQL.PasswordPolicies.validate-password.parameters"></a>


**parâmetros compatíveis do componente validate\_password**  

| Nome do parâmetro | Observações | 
| --- | --- | 
| `validate_password.check_user_name` | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| `validate_password.length` | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| `validate_password.mixed_case_count` | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| `validate_password.number_count` | Disponível no Aurora MySQL versão 8.4 e posterior. | 
| `validate_password.policy` | Disponível no Aurora MySQL versão 8.4 e posterior. Somente os níveis BAIXO e MÉDIO são permitidos. | 
| `validate_password.special_char_count` | Disponível no Aurora MySQL versão 8.4 e posterior. | 

Para ter mais informações sobre os parâmetros do validate\_password do MySQL, consulte a documentação [MySQL Password Validation Options and Variables](https://dev.mysql.com/doc/refman/8.4/en/validate-password-options-variables.html).

### Migração do plug-in e componente validate\_password do RDS para MySQL ou do Aurora MySQL versão 3 para o Aurora MySQL versão 8.4
<a name="AuroraMySQL.PasswordPolicies.validate-password.migration"></a>

A partir da versão 8.4 do Aurora MySQL, se você tiver instalado anteriormente o plugin `validate_password` usando o comando `INSTALL PLUGIN`, poderá migrar para o componente `validate_password`. Ative o parâmetro `aurora_enable_validate_password_component` e, depois, remova o plugin usando o comando `UNINSTALL PLUGIN` na instância gravadora.

**nota**  
Se você já tiver instalado o plug-in e o parâmetro `aurora_enable_validate_password_component` estiver habilitado, o componente `validate_password` terá precedência sobre o plug-in.

Se você já tiver instalado o componente `validate_password` manualmente usando `INSTALL COMPONENT 'file://component_validate_password'`, defina o parâmetro `aurora_enable_validate_password_component` no grupo de parâmetros do cluster de banco de dados de destino durante a atualização. Após a atualização, o componente não será mais listado na tabela `mysql.component`. É possível usar a variável global `aurora_enable_validate_password_component` para verificar o status do componente.

Na primeira inicialização do mecanismo de banco de dados após a atualização, você verá a seguinte mensagem no log de erros do MySQL se já tiver instalado o componente manualmente:

```
Component 'file://component_validate_password' is being removed from mysql.component table.
validate_password component can be enabled/disabled through 'aurora_enable_validate_password_component' cluster parameter.
```

### Restrições da instalação manual
<a name="AuroraMySQL.PasswordPolicies.validate-password.restrictions"></a>

A partir das versões 8.4 do Aurora MySQL, os comandos de instalação e desinstalação manual do componente `validate_password` não são mais permitidos:

```
mysql> INSTALL COMPONENT 'file://component_validate_password';
ERROR HY000: Cannot load component from specified URN: 'validate_password component can be
enabled/disabled through 'aurora_enable_validate_password_component' cluster parameter.'
```

### Monitorar o status do componente
<a name="AuroraMySQL.PasswordPolicies.validate-password.monitoring"></a>

O Aurora MySQL registra em log as alterações do estado do componente no log de erros do MySQL:

Quando habilitado:

```
Component 'validate_password' is enabled by parameter aurora_enable_validate_password_component
```

Quando desabilitado:

```
Component 'validate_password' is disabled by parameter aurora_enable_validate_password_component
```

### Impacto da validação de senhas na senha do usuário principal
<a name="AuroraMySQL.PasswordPolicies.validate-password.master-user"></a>

Ao redefinir a senha do usuário mestre por meio da API `modify-db-cluster`, se a nova senha não estiver em conformidade com as regras de validação de senha configuradas, o Aurora MySQL emitirá um evento visível ao cliente indicando a falha. Você deverá repetir a operação usando uma senha em conformidade.

### Impacto da validação de senhas na senha do usuário principal gerenciada pelo Amazon RDS
<a name="AuroraMySQL.PasswordPolicies.validate-password.managed-password"></a>

Para clusters que usam credenciais de usuário principal gerenciadas pelo Amazon RDS e armazenadas no AWS Secrets Manager, se a senha gerada automaticamente durante a alternância não atender aos requisitos de validação configurados, a alternância falhará. Ajuste os parâmetros de validação de senha para permitir que a alternância seja concluída com êxito. Sugerimos não usar o componente `validate_password` e a senha do usuário principal gerenciada ao mesmo tempo.

## Documentação relacionada
<a name="AuroraMySQL.PasswordPolicies.related"></a>
+ [Parâmetros de configuração do Aurora MySQL](AuroraMySQL.Reference.ParameterGroups.md)
+ [Segurança com o Amazon Aurora MySQL](AuroraMySQL.Security.md)
+ [Documentação do componente MySQL validate\_password](https://dev.mysql.com/doc/refman/8.4/en/validate-password.html)
+ [Grupos de parâmetros para Amazon Aurora](USER_WorkingWithParamGroups.md)