View a markdown version of this page

Aurora MySQL 中的密码策略和密码验证 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Aurora MySQL 中的密码策略和密码验证

密码策略

Aurora MySQL 支持以下 MySQL 密码策略功能。有关这些策略的更多信息,请参阅 MySQL Password Management 文档

密码到期

密码到期参数
参数/子句 备注

集群参数 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 及更高版本中可用。

密码重用限制

密码重用限制参数
参数/子句 备注

集群参数 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

当前密码验证

当前密码验证参数
参数/子句 备注

参数password_require_current

在 Aurora MySQL 版本 8.4 及更高版本中可用。

每账户 DCL 子句 PASSWORD REQUIRE CURRENT

每账户 DCL 子句 PASSWORD REQUIRE CURRENT OPTIONAL

每账户 DCL 子句 PASSWORD REQUIRE CURRENT DEFAULT

双密码支持

双密码支持子句
参数/子句 备注

每账户 DCL 子句 RETAIN CURRENT PASSWORD

每账户 DCL 子句 DISCARD OLD PASSWORD

失败登录跟踪和临时账户锁定

失败登录跟踪子句
参数/子句 备注

每账户 DCL 子句 FAILED_LOGIN_ATTEMPTS N

每账户 DCL 子句 PASSWORD_LOCK_TIME N

每账户 DCL 子句 PASSWORD_LOCK_TIME UNBOUNDED

使用 validate_password 组件

validate_password 组件是一个 MySQL 服务器组件,提供密码强度验证和强制执行功能。该组件根据可配置的规则测试密码,确保只有满足指定安全要求的密码才会被接受。

启用后,validate_password 组件将在以下过程中自动验证密码:

  • 用户账户创建(CREATE USER

  • 密码更改(ALTER USERSET PASSWORD

这可以帮助企业确保其数据库用户维持了严格的密码规范,并遵守安全策略和监管要求。

Aurora MySQL 版本 8.4 提供了基于参数的方法来启用和管理 validate_password 组件,无需手动使用 INSTALL COMPONENTUNINSTALL 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 组件参数

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 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 托管的主用户凭证且凭证存储在 Amazon Secrets Manager 中,并且轮换期间自动生成的密码不符合配置的验证要求,则轮换将失败。您需要调整密码验证参数以便使轮换成功。建议不要同时使用 validate_password 组件和托管的主用户密码。

相关文档