Aurora MySQL 中的密码策略和密码验证
密码策略
Aurora MySQL 支持以下 MySQL 密码策略功能。有关这些策略的更多信息,请参阅 MySQL Password Management 文档
密码到期
| 参数/子句 | 备注 |
|---|---|
集群参数 |
在 Aurora MySQL 版本 3(与 MySQL 8.0 兼容)及更高版本中可用。 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
集群参数 |
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
密码重用限制
| 参数/子句 | 备注 |
|---|---|
集群参数 |
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
集群参数 |
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
当前密码验证
| 参数/子句 | 备注 |
|---|---|
参数 |
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
双密码支持
| 参数/子句 | 备注 |
|---|---|
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
失败登录跟踪和临时账户锁定
| 参数/子句 | 备注 |
|---|---|
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
每账户 DCL 子句 |
无 |
使用 validate_password 组件
validate_password 组件是一个 MySQL 服务器组件,提供密码强度验证和强制执行功能。该组件根据可配置的规则测试密码,确保只有满足指定安全要求的密码才会被接受。
启用后,validate_password 组件将在以下过程中自动验证密码:
用户账户创建(
CREATE USER)密码更改(
ALTER USER、SET PASSWORD)
这可以帮助企业确保其数据库用户维持了严格的密码规范,并遵守安全策略和监管要求。
Aurora MySQL 版本 8.4 提供了基于参数的方法来启用和管理 validate_password 组件,无需手动使用 INSTALL COMPONENT 和 UNINSTALL COMPONENT 命令。
启用 validate_password 组件
要在 Aurora MySQL 集群中启用密码验证,请使用集群参数:
参数名称: aurora_enable_validate_password_component
启用:在数据库集群参数组中,将 aurora_enable_validate_password_component 设置为 true(或 1)。
禁用:在数据库集群参数组中,将 aurora_enable_validate_password_component 设置为 false(或 0)。
注意
对于 validate_password 组件,您无法使用 INSTALL/UNINSTALL COMPONENT 命令。
注意
从 Aurora MySQL 版本 8.4 开始,mysql.component 表中未列出 validate_password 组件。您可以在数据库集群参数组中或通过全局变量 aurora_enable_validate_password_component 查看组件的状态:
SELECT @@global.aurora_enable_validate_password_component;
支持的 validate_password 组件参数
| 参数名称 | 备注 |
|---|---|
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。仅支持 LOW 和 MEDIUM 级别。 |
|
在 Aurora MySQL 版本 8.4 及更高版本中可用。 |
有关 MySQL validate_password 参数的更多信息,请参阅 MySQL Password Validation Options and Variables 文档
validate_password 插件和组件从 RDS for MySQL 或 Aurora MySQL 版本 3 迁移到 Aurora MySQL 版本 8.4
从 Aurora MySQL 版本 8.4 开始,如果您之前使用 INSTALL PLUGIN 命令安装了 validate_password 插件,则可以启用参数 aurora_enable_validate_password_component 来迁移到 validate_password 组件,然后在写入器实例上通过 UNINSTALL PLUGIN 命令删除插件。
注意
如果您已安装插件并启用了 aurora_enable_validate_password_component 参数,则 validate_password 组件将优先于插件。
如果您之前使用 INSTALL COMPONENT 'file://component_validate_password' 手动安装了 validate_password 组件,请确保升级时在目标数据库集群参数组中设置了 aurora_enable_validate_password_component 参数。升级后,该组件将不再在 mysql.component 表中列出。您可以使用 aurora_enable_validate_password_component 全局变量来验证组件的状态。
升级后首次启动数据库引擎时,如果您之前手动安装了该组件,则在 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.
手动安装限制
从 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.'
监控组件状态
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
密码验证对主用户密码的影响
通过 modify-db-cluster API 重置主用户密码时,如果新密码不符合所配置的密码验证规则,Aurora MySQL 将发出一个对客户可见的事件来指示出现问题,并且您必须使用合规密码重试该操作。
密码验证对 Amazon RDS 管理的主用户密码的影响
如果集群使用 Amazon RDS 托管的主用户凭证且凭证存储在 AWS Secrets Manager 中,并且轮换期间自动生成的密码不符合配置的验证要求,则轮换将失败。您需要调整密码验证参数以便使轮换成功。建议不要同时使用 validate_password 组件和托管的主用户密码。