

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定邏輯複寫連線的 IAM 身分驗證
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication"></a>

從 RDS for PostgreSQL 第 11 版及更新版本開始，您可以針對複寫連線使用 AWS Identity and Access Management (IAM) 身分驗證。此功能可讓您使用 IAM 角色而非密碼來管理資料庫存取，以增強安全性。它適用於叢集和執行個體精細程度，並遵循與標準 IAM 身分驗證相同的安全模型。

複寫連線的 IAM 身分驗證是一項選擇加入功能。若要啟用它，請將資料庫叢集或資料庫`rds.iam_auth_for_replication`參數群組中的 參數設定為 1。由於這是動態參數，因此您的資料庫叢集或執行個體不需要重新啟動，可讓您利用 IAM 身分驗證與現有的工作負載，而無須停機。啟用此功能之前，您必須符合下列先決條件。

**Topics**
+ [先決條件](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Prerequisites)
+ [啟用複寫連線的 IAM 身分驗證](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Enabling)
+ [停用複寫連線的 IAM 身分驗證](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Disabling)
+ [限制及考量](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Limitations)

## 先決條件
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Prerequisites"></a>

若要針對複寫連線使用 IAM 身分驗證，您需要符合下列所有要求：
+ 您的 RDS for PostgreSQL 資料庫執行個體必須是 11 版或更新版本。
+ 在您的發佈者 RDS for PostgreSQL 資料庫執行個體上：
  + 啟用 IAM 資料庫身分驗證。如需詳細資訊，請參閱[啟用和停用 IAM 資料庫身分驗證](UsingWithRDS.IAMDBAuth.Enabling.md)。
  + 將 `rds.logical_replication` 參數設定為 1 以啟用邏輯複寫。

在邏輯複寫中，發佈者是將資料傳送至訂閱者資料庫的來源 RDS for PostgreSQL 資料庫。如需詳細資訊，請參閱[為 Amazon RDS for PostgreSQL 執行邏輯複寫](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md)。

**注意**  
必須在發佈者 RDS for PostgreSQL 資料庫執行個體上啟用 IAM 身分驗證和邏輯複寫。如果其中一個未啟用，則您無法針對複寫連線使用 IAM 身分驗證。

## 啟用複寫連線的 IAM 身分驗證
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Enabling"></a>

完成下列步驟，以啟用複寫連線的 IAM 身分驗證。

**啟用複寫連線的 IAM 身分驗證**

1. 確認您的 RDS for PostgreSQL 資料庫叢集或執行個體符合具有複寫連線的 IAM 身分驗證的所有先決條件。如需詳細資訊，請參閱[先決條件](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Prerequisites)。

1. 根據您的 RDS for PostgreSQL 設定來設定 `rds.iam_auth_for_replication` 參數：
   + 對於 RDS for PostgreSQL 資料庫執行個體：修改資料庫參數群組。
   + 對於多可用區域叢集：修改資料庫叢集參數群組。

   `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="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Disabling"></a>

您可以使用下列任一方法停用複寫連線的 IAM 身分驗證：
+ 將資料庫執行個體的資料庫參數群組或多可用區域叢集的資料庫叢集參數群組中的 `rds.iam_auth_for_replication` 參數設定為 0。
+ 或者，您可以在 RDS for PostgreSQL 資料庫叢集或執行個體上停用下列其中一項功能：
  + 將 `rds.logical_replication` 參數設定為 0 以停用邏輯複寫
  + 停用 IAM 身分驗證

當您停用此功能時，複寫連線可以使用資料庫密碼進行身分驗證。

**注意**  
即使啟用 功能，沒有 `rds_iam`角色的使用者複寫連線也可以使用密碼身分驗證。

## 限制及考量
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Limitations"></a>

針對邏輯複寫連線使用 IAM 身分驗證時，請考慮下列限制和考量事項：
+ 此功能僅適用於 RDS for PostgreSQL 第 11 版及更新版本。
+ 發佈者必須支援複寫連線的 IAM 身分驗證。
+ IAM 身分驗證字符預設會在 15 分鐘後過期。您可能需要在字符過期之前重新整理長時間執行的複寫連線。