

# Aurora MySQL のパスワードポリシーとパスワード検証
<a name="AuroraMySQL.PasswordPolicies"></a>

**Topics**
+ [パスワードポリシー](#AuroraMySQL.PasswordPolicies.overview)
+ [validate\_password コンポーネントの使用](#AuroraMySQL.PasswordPolicies.validate-password)
+ [関連ドキュメント](#AuroraMySQL.PasswordPolicies.related)

## パスワードポリシー
<a name="AuroraMySQL.PasswordPolicies.overview"></a>

Aurora MySQL は、次の MySQL パスワードポリシー機能をサポートしています。これらのポリシーの詳細については、「[MySQL パスワードに関するドキュメント](https://dev.mysql.com/doc/refman/8.4/en/password-management.html)」を参照してください。

### パスワードの有効期限
<a name="AuroraMySQL.PasswordPolicies.expiration"></a>


**パスワードの有効期限パラメータ**  

| パラメータ/句 | 注意事項 | 
| --- | --- | 
| クラスターパラメータ `default_password_lifetime` | Aurora MySQL 3 (MySQL 8.0 と互換) 以降で利用可能。 | 
| アカウントあたりの DCL 句 `PASSWORD EXPIRE INTERVAL N DAY` | なし | 
| アカウントあたりの DCL 句 `PASSWORD EXPIRE NEVER` | なし | 
| アカウントあたりの DCL 句 `PASSWORD EXPIRE DEFAULT` | なし | 
| クラスターパラメータ `disconnect_on_expired_password` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 

### パスワードの再利用に関する制限
<a name="AuroraMySQL.PasswordPolicies.reuse"></a>


**パスワード再利用制限パラメータ**  

| パラメータ/句 | 注意事項 | 
| --- | --- | 
| クラスターパラメータ `password_history` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| クラスターパラメータ `password_reuse_interval` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| アカウントあたりの DCL 句 `PASSWORD HISTORY N` | なし | 
| アカウントあたりの DCL 句 `PASSWORD REUSE INTERVAL N DAY` | なし | 
| アカウントあたりの DCL 句 `PASSWORD HISTORY DEFAULT` | なし | 

### 現在のパスワード検証
<a name="AuroraMySQL.PasswordPolicies.current-verification"></a>


**現在のパスワード検証パラメータ**  

| パラメータ/句 | 注意事項 | 
| --- | --- | 
| パラメータ `password_require_current` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| アカウントあたりの DCL 句 `PASSWORD REQUIRE CURRENT` | なし | 
| アカウントあたりの DCL 句 `PASSWORD REQUIRE CURRENT OPTIONAL` | なし | 
| アカウントあたりの DCL 句 `PASSWORD REQUIRE CURRENT DEFAULT` | なし | 

### デュアルパスワードのサポート
<a name="AuroraMySQL.PasswordPolicies.dual-password"></a>


**デュアルパスワードサポート句**  

| パラメータ/句 | 注意事項 | 
| --- | --- | 
| アカウントあたりの DCL 句 `RETAIN CURRENT PASSWORD` | なし | 
| アカウントあたりの DCL 句 `DISCARD OLD PASSWORD` | なし | 

### 失敗したログインの追跡と一時的なアカウントのロック
<a name="AuroraMySQL.PasswordPolicies.failed-login"></a>


**失敗したログインの追跡句**  

| パラメータ/句 | 注意事項 | 
| --- | --- | 
| アカウントあたりの DCL 句 `FAILED_LOGIN_ATTEMPTS N` | なし | 
| アカウントあたりの DCL 句 `PASSWORD_LOCK_TIME N` | なし | 
| アカウントあたりの DCL 句 `PASSWORD_LOCK_TIME UNBOUNDED` | なし | 

## validate\_password コンポーネントの使用
<a name="AuroraMySQL.PasswordPolicies.validate-password"></a>

`validate_password` コンポーネントは、パスワード強度の検証と強制機能を提供する MySQL サーバーコンポーネントです。設定可能なルールに照らしてパスワードをテストし、承認される前に指定されたセキュリティ要件を満たしていることを確認します。

有効にすると、`validate_password` コンポーネントは次のときにパスワードを自動的に検証します。
+ ユーザーアカウントの作成 (`CREATE USER`)
+ パスワードの変更 (`ALTER USER`、`SET PASSWORD`)

これにより、組織はデータベースユーザー全体で強力なパスワードの健全性を維持し、セキュリティポリシーと規制要件に準拠するのに役立ちます。

Aurora MySQL バージョン 8.4 は、`validate_password` コンポーネントを有効化および管理するためのパラメータベースのアプローチを提供するため、手動で `INSTALL COMPONENT` および `UNINSTALL COMPONENT` コマンドを実行する必要がなくなりました。

### validate\_password コンポーネントを有効にする
<a name="AuroraMySQL.PasswordPolicies.validate-password.enabling"></a>

Aurora MySQL クラスターでパスワード検証を有効にするには、次のクラスターパラメータを使用します。

パラメータ名: `aurora_enable_validate_password_component`

有効にするには、DB クラスターパラメータグループの `aurora_enable_validate_password_component` パラメータを `true` (または `1`) に設定します。

無効にするには、DB クラスターパラメータグループの `aurora_enable_validate_password_component` パラメータを `false` (または `0`) に設定します。

**注記**  
`validate_password` コンポーネントに `INSTALL/UNINSTALL COMPONENT` コマンドを使用することはできません。

**注記**  
Aurora MySQL バージョン 8.4 以降、`validate_password` コンポーネントは `mysql.component` テーブルに表示されなくなりました。DB クラスターパラメータグループまたはグローバル変数 `aurora_enable_validate_password_component` を使用して、コンポーネントのステータスを確認できます。  

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

### サポートされている validate\_password コンポーネントパラメータ
<a name="AuroraMySQL.PasswordPolicies.validate-password.parameters"></a>


**validate\_password コンポーネントパラメータ**  

| パラメータ名 | 注意事項 | 
| --- | --- | 
| `validate_password.check_user_name` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| `validate_password.length` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| `validate_password.mixed_case_count` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| `validate_password.number_count` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 
| `validate_password.policy` | Aurora MySQL バージョン 8.4 以降で利用可能。LOW レベルと MEDIUM レベルのみがサポートされています。 | 
| `validate_password.special_char_count` | Aurora MySQL バージョン 8.4 以降で利用可能。 | 

MySQL validate\_password パラメータの詳細については、「[MySQLパスワード検証オプションと変数に関するドキュメント](https://dev.mysql.com/doc/refman/8.4/en/validate-password-options-variables.html)」を参照してください。

### validate\_password プラグインおよびコンポーネントの、RDS for MySQL または Aurora MySQL バージョン 3 から Aurora MySQL バージョン 8.4 への移行
<a name="AuroraMySQL.PasswordPolicies.validate-password.migration"></a>

Aurora MySQL バージョン 8.4 以降では、以前に `INSTALL PLUGIN` コマンドを使用して `validate_password` プラグインをインストールていた場合、`aurora_enable_validate_password_component` パラメータを有効にしてから、ライターインスタンスで `UNINSTALL PLUGIN` コマンドを使用してプラグインを削除することで、`validate_password` コンポーネントに移行できます。

**注記**  
プラグインがインストールされていて、かつパラメータ `aurora_enable_validate_password_component` が有効になっている場合、`validate_password` コンポーネントがプラグインよりも優先されます。

以前に `INSTALL COMPONENT 'file://component_validate_password'` を使用して `validate_password` コンポーネントを手動でインストールした場合は、アップグレード時にターゲット DB クラスターのパラメータグループで `aurora_enable_validate_password_component` パラメータを設定してください。アップグレード後、コンポーネントは `mysql.component` テーブルに表示されなくなります。`aurora_enable_validate_password_component` グローバル変数を使用して、コンポーネントのステータスを確認できます。

アップグレード後の最初の DB エンジンの起動時に、以前にコンポーネントを手動でインストールしていた場合、MySQL エラーログに次のメッセージが表示されます。

```
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.
```

### 手動インストールの制限
<a name="AuroraMySQL.PasswordPolicies.validate-password.restrictions"></a>

Aurora MySQL バージョン 8.4 リリース以降、`validate_password` コンポーネントの手動インストールおよびアンインストールコマンドは使用できません。

```
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.'
```

### コンポーネントのステータスのモニタリング
<a name="AuroraMySQL.PasswordPolicies.validate-password.monitoring"></a>

Aurora MySQL は、コンポーネントの状態の変更を MySQL エラーログに記録します。

有効にした場合:

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

無効にした場合:

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

### マスターユーザーのパスワードに対するパスワード検証の影響
<a name="AuroraMySQL.PasswordPolicies.validate-password.master-user"></a>

`modify-db-cluster` API を使用してマスターユーザーのパスワードをリセットするときに、新しいパスワードが設定されたパスワード検証ルールに準拠していない場合、Aurora MySQL はエラーを示すお客様が表示可能なイベントを出力します。その場合、準拠したパスワードを使用してオペレーションを再試行する必要があります。

### Amazon RDS マネージドマスターユーザーのパスワードに対するパスワード検証の影響
<a name="AuroraMySQL.PasswordPolicies.validate-password.managed-password"></a>

AWS Secrets Manager に保存されている Amazon RDS 管理のマスターユーザー認証情報を使用するクラスターの場合、ローテーション中に自動的に生成されたパスワードが設定された検証要件に準拠していない場合、ローテーションは失敗します。ローテーションを成功させるには、パスワード検証パラメータを調整する必要があります。`validate_password` コンポーネントとマネージドマスターユーザーパスワードを一緒に使用しないことをお勧めします。

## 関連ドキュメント
<a name="AuroraMySQL.PasswordPolicies.related"></a>
+ [Aurora MySQL 設定パラメータ](AuroraMySQL.Reference.ParameterGroups.md)
+ [Amazon Aurora MySQL でのセキュリティ](AuroraMySQL.Security.md)
+ [MySQL validate\_password コンポーネントのドキュメント](https://dev.mysql.com/doc/refman/8.4/en/validate-password.html)
+ [Amazon Aurora のパラメータグループ](USER_WorkingWithParamGroups.md)