为逻辑复制连接配置 IAM 身份验证
从 Aurora PostgreSQL 版本 11 及更高版本开始,您可以对复制连接使用 Amazon Identity and Access Management(IAM)身份验证。此功能允许您使用 IAM 角色而不是密码来管理数据库访问权限,从而增强安全性。它在集群级别运行,遵循与标准 IAM 身份验证相同的安全模型。
复制连接的 IAM 身份验证是一项可选功能。要启用 IAM 身份验证,请在数据库集群参数组中将 rds.iam_auth_for_replication 参数设置为 1。由于这是一个动态参数,因此您的数据库集群无需重新启动,这样您就可以在不停机的情况下对现有工作负载使用 IAM 身份验证。启用此功能之前,您必须满足下面列出的先决条件。
先决条件
要对复制连接使用 IAM 身份验证,您需要满足以下所有要求:
-
您的 Aurora PostgreSQL 数据库集群必须为 11 或更高版本。
-
在发布者 Aurora PostgreSQL 数据库集群上:
-
启用 IAM 数据库身份验证。
有关更多信息,请参阅 启用和禁用 IAM 数据库身份验证。
-
通过将
rds.logical_replication参数设置为1,启用逻辑复制。有关更多信息,请参阅 为 Aurora PostgreSQL 数据库集群设置逻辑复制。
在逻辑复制中,发布者是向订阅者集群发送数据的源 Aurora PostgreSQL 数据库集群。有关更多信息,请参阅 Overview of PostgreSQL logical replication with Aurora。
-
注意
必须在您的发布者 Aurora PostgreSQL 数据库集群上同时启用 IAM 身份验证和逻辑复制。如果任一项未启用,则无法对复制连接使用 IAM 身份验证。
对复制连接启用 IAM 身份验证
要对复制连接启用 IAM 身份验证,请完成以下步骤。
-
确认您的 Aurora PostgreSQL 数据库集群满足对复制连接使用 IAM 身份验证的所有前提条件。有关更多信息,请参阅 先决条件。
-
要配置
rds.iam_auth_for_replication参数,请修改数据库集群参数组:-
将
rds.iam_auth_for_replication参数设置为1。此动态参数不要求重启。
-
-
连接到您的数据库并向您的复制用户授予必要的角色:
以下 SQL 命令授予对复制连接启用 IAM 身份验证所需的角色:
-- Grant IAM authentication role GRANT rds_iam TO replication_user_name; -- Grant replication privileges ALTER USER replication_user_name WITH REPLICATION;
完成这些步骤后,指定的用户必须对复制连接使用 IAM 身份验证。
重要
启用该功能后,同时拥有 rds_iam 和 rds_replication 角色的用户必须对复制连接使用 IAM 身份验证。无论角色是直接分配给用户还是通过其他角色继承,都是如此。
对复制连接禁用 IAM 身份验证
您可以使用下面任何方法对复制连接禁用 IAM 身份验证:
-
在数据库集群参数组中将
rds.iam_auth_for_replication参数设置为0 -
或者,您可以在 Aurora PostgreSQL 数据库集群上禁用以下任一功能:
-
通过将
rds.logical_replication参数设置为0,禁用逻辑复制 -
禁用 IAM 身份验证
-
禁用该功能后,复制连接可以使用数据库密码进行身份验证(如果已配置)。
注意
即使启用了该功能,没有 rds_iam 角色的用户的复制连接也可以使用密码身份验证。
限制和注意事项
对复制连接使用 IAM 身份验证时,需遵守以下限制和注意事项。
-
复制连接的 IAM 身份验证仅适用于 Aurora PostgreSQL 11 及更高版本。
-
发布者必须支持对复制连接使用 IAM 身份验证。
-
默认情况下,IAM 身份验证令牌会在 15 分钟后失效。在令牌失效之前,您可能需要刷新长时间运行的复制连接。