

# 論理レプリケーション接続の IAM 認証の設定
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth"></a>

Aurora PostgreSQL バージョン 11 以降では、レプリケーション接続に AWS Identity and Access Management (IAM) 認証を使用できます。この機能は、パスワードの代わりに IAM ロールを使用してデータベースアクセスを管理できるようにすることで、セキュリティを強化します。クラスターレベルで動作し、標準の IAM 認証と同じセキュリティモデルに従います。

レプリケーション接続の IAM 認証はオプトイン機能です。有効にするには、DB クラスターパラメータグループの `rds.iam_auth_for_replication` パラメータを `1` に設定します。これは動的パラメータであるため、DB クラスターを再起動する必要がなく、ダウンタイムなしで既存のワークロードで IAM 認証を活用できます。この機能を有効にする前に、以下の [前提条件](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites) を満たす必要があります。

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

レプリケーション接続に IAM 認証を使用するには、以下のすべての要件を満たす必要があります。
+ Aurora PostgreSQL DB クラスターはバージョン 11 以降である必要があります。
+ パブリッシャーとしての Aurora PostgreSQL DB クラスター 
  + IAM データベース認証を有効にする。

    詳細については、「[IAM データベース認証の有効化と無効化](UsingWithRDS.IAMDBAuth.Enabling.md)」を参照してください。
  + `rds.logical_replication` パラメータを `1` に設定して、論理レプリケーションを有効にします。

    詳細については、「[Aurora PostgreSQL DB クラスターの論理レプリケーションの設定](AuroraPostgreSQL.Replication.Logical.Configure.md)」を参照してください。

  論理レプリケーションでは、パブリッシャーはサブスクライバークラスターにデータを送信するソース Aurora PostgreSQL DB クラスターです。詳細については、「[Aurora での PostgreSQL 論理レプリケーションの概要](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Replication.Logical.html)」を参照してください。

**注記**  
パブリッシャー Aurora PostgreSQL DB クラスターで IAM 認証と論理レプリケーションの両方を有効にする必要があります。どちらかが有効になっていない場合、レプリケーション接続に IAM 認証を使用することはできません。

## レプリケーション接続の IAM 認証の有効化
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-enabling"></a>

レプリケーション接続の IAM 認証を有効にするには、次の手順を実行します。

1. Aurora PostgreSQL DB クラスターが、レプリケーション接続による IAM 認証のすべての前提条件を満たしていることを確認します。詳細については、「[前提条件](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites)」を参照してください。

1. DB クラスターパラメータグループを変更して、`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 認証を無効にするには、次のいずれかの方法を使用します。
+ DB クラスターパラメータグループの `rds.iam_auth_for_replication` パラメータを `0` に設定します。
+ または、Aurora PostgreSQL DB クラスターで次のいずれかの機能を無効にすることもできます。
  + `rds.logical_replication` パラメータを `0` に設定して論理レプリケーションを無効にする
  + IAM 認証の無効化

この機能を無効にすると、レプリケーション接続が設定されている場合、認証にデータベースパスワードを使用できます。

**注記**  
`rds_iam` ロールを持たないユーザーのレプリケーション接続は、この機能が有効になっている場合でもパスワード認証を使用できます。

## 制約事項と考慮事項
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-limitations"></a>

レプリケーション接続に IAM 認証を使用する場合、以下の制限と考慮事項が適用されます。
+ レプリケーション接続の IAM 認証は、Aurora PostgreSQL バージョン 11 以降でのみ使用できます。
+ パブリッシャーは、レプリケーション接続の IAM 認証をサポートする必要があります。
+ IAM 認証トークンは、デフォルトで 15 分後に期限切れになります。トークンの有効期限が切れる前に、長時間実行されるレプリケーション接続を更新する必要がある場合があります。