

# 为逻辑复制连接配置 IAM 身份验证
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth"></a>

从 Aurora PostgreSQL 版本 11 及更高版本开始，您可以对复制连接使用 Amazon Identity and Access Management（IAM）身份验证。此功能允许您使用 IAM 角色而不是密码来管理数据库访问权限，从而增强安全性。它在集群级别运行，遵循与标准 IAM 身份验证相同的安全模型。

复制连接的 IAM 身份验证是一项可选功能。要启用 IAM 身份验证，请在数据库集群参数组中将 `rds.iam_auth_for_replication` 参数设置为 `1`。由于这是一个动态参数，因此您的数据库集群无需重新启动，这样您就可以在不停机的情况下对现有工作负载使用 IAM 身份验证。启用此功能之前，您必须满足下面列出的[先决条件](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites)。

## 先决条件
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites"></a>

要对复制连接使用 IAM 身份验证，您需要满足以下所有要求：
+ 您的 Aurora PostgreSQL 数据库集群必须为 11 或更高版本。
+ 在发布者 Aurora PostgreSQL 数据库集群上：
  + 启用 IAM 数据库身份验证。

    有关更多信息，请参阅 [启用和禁用 IAM 数据库身份验证](UsingWithRDS.IAMDBAuth.Enabling.md)。
  + 通过将 `rds.logical_replication` 参数设置为 `1`，启用逻辑复制。

    有关更多信息，请参阅 [为 Aurora PostgreSQL 数据库集群设置逻辑复制](AuroraPostgreSQL.Replication.Logical.Configure.md)。

  在逻辑复制中，发布者是向订阅者集群发送数据的源 Aurora PostgreSQL 数据库集群。有关更多信息，请参阅 [Overview of PostgreSQL logical replication with Aurora](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Replication.Logical.html)。

**注意**  
必须在您的发布者 Aurora PostgreSQL 数据库集群上同时启用 IAM 身份验证和逻辑复制。如果任一项未启用，则无法对复制连接使用 IAM 身份验证。

## 对复制连接启用 IAM 身份验证
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-enabling"></a>

要对复制连接启用 IAM 身份验证，请完成以下步骤。

1. 确认您的 Aurora PostgreSQL 数据库集群满足对复制连接使用 IAM 身份验证的所有前提条件。有关更多信息，请参阅 [先决条件](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites)。

1. 要配置 `rds.iam_auth_for_replication` 参数，请修改数据库集群参数组：
   + 将 `rds.iam_auth_for_replication` 参数设置为 `1`。此动态参数不要求重启。

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 身份验证
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-disabling"></a>

您可以使用下面任何方法对复制连接禁用 IAM 身份验证：
+ 在数据库集群参数组中将 `rds.iam_auth_for_replication` 参数设置为 `0`
+ 或者，您可以在 Aurora PostgreSQL 数据库集群上禁用以下任一功能：
  + 通过将 `rds.logical_replication` 参数设置为 `0`，禁用逻辑复制
  + 禁用 IAM 身份验证

禁用该功能后，复制连接可以使用数据库密码进行身份验证（如果已配置）。

**注意**  
即使启用了该功能，没有 `rds_iam` 角色的用户的复制连接也可以使用密码身份验证。

## 限制和注意事项
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-limitations"></a>

对复制连接使用 IAM 身份验证时，需遵守以下限制和注意事项。
+ 复制连接的 IAM 身份验证仅适用于 Aurora PostgreSQL 11 及更高版本。
+ 发布者必须支持对复制连接使用 IAM 身份验证。
+ 默认情况下，IAM 身份验证令牌会在 15 分钟后失效。在令牌失效之前，您可能需要刷新长时间运行的复制连接。