

# 논리적 복제 연결을 위한 IAM 인증 구성
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication"></a>

PostgreSQL용 RDS 버전 11 이상부터는 복제 연결에 AWS Identity and Access Management(IAM) 인증을 사용할 수 있습니다. 이 기능을 사용하면 암호 대신 IAM 역할을 사용하여 데이터베이스 액세스를 관리할 수 있으므로 보안이 강화됩니다. 이 기능은 클러스터 및 인스턴스 수준 모두에서 작동하며 표준 IAM 인증과 동일한 보안 모델을 따릅니다.

복제 연결을 위한 IAM 인증은 옵트인 기능입니다. 활성화하려면 DB 클러스터 또는 DB 파라미터 그룹의 `rds.iam_auth_for_replication` 파라미터를 1로 설정합니다. 동적 파라미터이므로 DB 클러스터 또는 인스턴스를 다시 시작할 필요가 없으므로, 가동 중지 시간 없이 기존 워크로드에서 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 DB 인스턴스는 버전 11 이상이어야 합니다.
+ 게시자 RDS for PostgreSQL DB 인스턴스에서:
  + 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 DB 인스턴스에서 IAM 인증과 논리적 복제가 모두 활성화되어 있어야 합니다. 둘 중 하나가 활성화되지 않은 경우 복제 연결에 IAM 인증을 사용할 수 없습니다.

## 복제 연결에 대한 IAM 인증 활성화
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Enabling"></a>

다음 단계를 완료하여 복제 연결에 대한 IAM 인증을 활성화합니다.

**복제 연결에 대한 IAM 인증 활성화**

1. RDS for PostgreSQL DB 클러스터 또는 인스턴스가 복제 연결을 사용한 IAM 인증에 필요한 모든 필수 조건을 충족하는지 확인합니다. 자세한 내용은 [사전 조건](#PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Prerequisites)을 참조하세요.

1. RDS for PostgreSQL 설정을 기반으로 `rds.iam_auth_for_replication` 파라미터를 구성합니다.
   + RDS for PostgreSQL DB 인스턴스의 경우: DB 파라미터 그룹을 수정합니다.
   + 다중 AZ 클러스터의 경우: DB 클러스터 파라미터 그룹을 수정합니다.

   `rds.iam_auth_for_replication`을 1로 설정합니다. 재부팅할 필요 없이 즉시 적용되는 동적 파라미터입니다.
**참고**  
다중 AZ 클러스터는 DB 클러스터 파라미터 그룹만 사용합니다. 다중 AZ 클러스터에서는 개별 인스턴스 파라미터 그룹을 수정할 수 없습니다.

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 인증을 비활성화할 수 있습니다.
+ DB 인스턴스의 경우 DB 파라미터 그룹에서 `rds.iam_auth_for_replication` 파라미터를 0으로 설정하고 다중 AZ 클러스터의 경우 DB 클러스터 파라미터 그룹에서 파라미터를 0으로 설정합니다.
+ 또는 RDS for PostgreSQL DB 클러스터 또는 인스턴스에서 이러한 기능 중 하나를 비활성화할 수도 있습니다.
  + `rds.logical_replication` 파라미터를 0으로 설정하여 논리적 복제 비활성화
  + IAM 인증 비활성화

기능을 비활성화하면 복제 연결이 인증에 데이터베이스 암호를 사용할 수 있습니다.

**참고**  
`rds_iam` 역할이 없는 사용자의 복제 연결은 기능이 활성화된 경우에도 암호 인증을 사용할 수 있습니다.

## 제한 사항 및 고려 사항
<a name="PostgreSQL.Concepts.General.FeatureSupport.IAMLogicalReplication.Limitations"></a>

논리적 복제 연결에 IAM 인증을 사용할 때 다음과 같은 제한 사항 및 고려 사항을 염두에 둡니다.
+ 이 기능은 RDS for PostgreSQL 버전 11 이상에서만 사용할 수 있습니다.
+ 게시자는 복제 연결에 대한 IAM 인증을 지원해야 합니다.
+ IAM 인증 토큰은 기본적으로 15분 후에 만료됩니다. 토큰이 만료되기 전에 장기 실행 복제 연결을 새로 고쳐야 할 수 있습니다.