

# IAM 인증을 사용하여 데이터베이스 계정 생성
<a name="UsingWithRDS.IAMDBAuth.DBAccounts"></a>

IAM 데이터베이스 인증 방식에서는 데이터베이스 암호를 사용자 계정에 할당할 필요 없습니다. 데이터베이스 계정에 매핑되어 있는 사용자를 제거할 경우에는 `DROP USER` 문으로 데이터베이스 계정도 제거해야 합니다.

**참고**  
IAM 인증에 사용되는 사용자 이름은 데이터베이스에 있는 사용자 이름과 대소문자가 일치해야 합니다.

**Topics**
+ [MariaDB 및 MySQL에서 IAM 인증 사용](#UsingWithRDS.IAMDBAuth.DBAccounts.MySQL)
+ [PostgreSQL에서 IAM 인증 사용](#UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL)

## MariaDB 및 MySQL에서 IAM 인증 사용
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.MySQL"></a>

MariaDB 및 MySQL에서는 AWS에서 제공하는 플러그인인 `AWSAuthenticationPlugin`에서 인증을 처리합니다. 이 플러그인은 IAM과 원활하게 연동되어 사용자를 인증합니다. 마스터 사용자 또는 사용자를 생성하고 권한을 부여할 수 있는 다른 사용자로 DB 인스턴스에 연결합니다. 연결한 후 다음 예제와 같이 `CREATE USER` 문을 실행합니다.

```
CREATE USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; 
```

`IDENTIFIED WITH` 절을 사용하면 MariaDB 및 MySQL이 `AWSAuthenticationPlugin`을 통해 데이터베이스 계정(`jane_doe`)을 인증할 수 있습니다. `AS 'RDS'` 절은 인증 방법을 참조합니다. 지정한 데이터베이스 사용자 이름이 IAM 데이터베이스 액세스에 대한 IAM 정책의 리소스와 같은지 확인합니다. 자세한 내용은 [IAM 데이터베이스 액세스를 위한 IAM 정책 생성 및 사용](UsingWithRDS.IAMDBAuth.IAMPolicy.md) 섹션을 참조하세요.

**참고**  
다음과 같은 메시지가 표시되면 현재 DB 인스턴스에서 AWS 제공 플러그인을 사용할 수 없는 것입니다.  
`ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded`  
위와 같은 오류 문제를 해결하려면 지원되는 구성을 사용하고 있는지, 그리고 DB 인스턴스 에서 IAM 데이터베이스 인증이 활성화되어 있는지 확인하십시오. 자세한 내용은 [리전 및 버전 사용 가능 여부](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability) 및 [IAM 데이터베이스 인증의 활성화 및 비활성화](UsingWithRDS.IAMDBAuth.Enabling.md) 단원을 참조하십시오.

`AWSAuthenticationPlugin`을 사용하여 계정을 생성한 이후 계정 관리 방법은 다른 데이터베이스 계정과 동일합니다. 예를 들어 `GRANT` 및 `REVOKE` 문으로 계정 권한을 수정하거나, 혹은 `ALTER USER` 문으로 여러 가지 계정 속성을 변경할 수 있습니다.

IAM을 사용하는 경우 데이터베이스 네트워크 트래픽은 SSL/TLS를 사용하여 암호화됩니다. SSL 연결을 허용하려면 다음 명령을 사용해 사용자 계정을 수정합니다.

```
ALTER USER 'jane_doe'@'%' REQUIRE SSL;     
```

 

## PostgreSQL에서 IAM 인증 사용
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL"></a>

 PostgreSQL에서 IAM 인증을 사용하려면 마스터 사용자 또는 사용자를 생성하고 권한을 부여할 수 있는 다른 사용자로 DB 인스턴스에 연결해야 합니다. 연결한 후 데이터베이스 사용자를 생성하고 다음 예제에 나온 것처럼 사용자에게 `rds_iam` 역할을 부여합니다.

```
CREATE USER db_userx; 
GRANT rds_iam TO db_userx;
```

지정한 데이터베이스 사용자 이름이 IAM 데이터베이스 액세스에 대한 IAM 정책의 리소스와 같은지 확인합니다. 자세한 내용은 [IAM 데이터베이스 액세스를 위한 IAM 정책 생성 및 사용](UsingWithRDS.IAMDBAuth.IAMPolicy.md) 섹션을 참조하세요. IAM 인증을 사용하려면 `rds_iam` 역할을 부여해야 합니다. 중첩된 멤버십이나 역할의 간접 부여도 사용할 수 있습니다.