

# Amazon RDS 를 사용한 데이터베이스 인증
<a name="database-authentication"></a>

 Amazon RDS 는 데이터베이스 사용자를 인증하는 여러 가지 방법을 지원합니다.

암호, Kerberos 및 IAM 데이터베이스 인증은 데이터베이스에 대해 서로 다른 인증 방법을 사용합니다. 따라서 특정 사용자는 하나의 인증 방법만 사용하여 데이터베이스에 로그인할 수 있습니다.

PostgreSQL의 경우, 특정 데이터베이스 사용자에 대해 다음 역할 설정 중 하나만 사용하세요.
+ IAM 데이터베이스 인증을 사용하려면 `rds_iam` 역할을 사용자에게 할당합니다.
+ Kerberos 인증을 사용하려면 `rds_ad` 역할을 사용자에게 할당합니다.
+ 암호 인증을 사용하려면 `rds_iam` 또는 `rds_ad` 역할을 사용자에게 할당하지 않습니다.

`rds_iam` 및 `rds_ad` 역할을 직접적으로 또는 중첩된 액세스 권한 부여를 통해 간접적으로 PostgreSQL 데이터베이스 사용자에게 둘 다 할당하지 않도록 합니다. `rds_iam` 역할이 마스터 사용자에게 추가되면, IAM 인증이 암호 인증보다 우선하므로 마스터 사용자가 IAM 사용자로 로그인해야 합니다.

**중요**  
애플리케이션에서 직접 마스터 사용자를 사용하지 않는 것이 좋습니다. 대신에 애플리케이션에 필요한 최소 권한으로 생성한 데이터베이스 사용자를 사용하는 모범 사례를 준수하십시오.

**Topics**
+ [암호 인증](#password-authentication)
+ [IAM 데이터베이스 인증](#iam-database-authentication)
+ [Kerberos 인증](#kerberos-authentication)

## 암호 인증
<a name="password-authentication"></a>

*암호 인증*을 통해 데이터베이스는 모든 사용자 계정 관리를 수행합니다. `CREATE USER`와 같은 DB 엔진에서 암호를 지정하는 데 필요한 적절한 절이 있는 SQL 문을 사용하여 사용자를 생성합니다. 예를 들어 MySQL에서 명령문은 `CREATE USER` *이름* `IDENTIFIED BY` *암호*이지만 PostgreSQL에서 명령문은 `CREATE USER` *이름* `WITH PASSWORD` *암호*입니다.

암호 인증을 통해 데이터베이스는 사용자 계정을 제어하고 인증합니다. DB 엔진에 강력한 암호 관리 기능이 있는 경우 보안을 강화할 수 있습니다. 소규모 사용자 커뮤니티가 있는 경우 암호 인증을 사용하여 데이터베이스 인증을 쉽게 관리할 수 있습니다. 이 경우 일반 텍스트 암호가 생성되므로 AWS Secrets Manager과 통합하면 보안이 강화될 수 있습니다.

Secrets Manager를 Amazon RDS 와 함께 사용하는 것에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*에서 [Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) 및 [Rotating secrets for supported Amazon RDS databases](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-rds.html)를 참조하세요. 사용자 지정 애플리케이션에서 프로그래밍 방식으로 비밀을 검색하는 방법에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [비밀 값 검색](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_retrieve-secret.html)을 참조하세요.

## IAM 데이터베이스 인증
<a name="iam-database-authentication"></a>

AWS Identity and Access Management(IAM) 데이터베이스 인증을 사용하여 DB 인스턴스 에 인증할 수 있습니다. 이러한 인증 방식은 DB 인스턴스 에 연결할 때 암호를 사용할 필요가 없습니다. 대신에 인증 토큰을 사용합니다.

특정 DB 엔진의 가용성에 대한 정보를 포함하여 IAM 데이터베이스 인증에 대한 자세한 내용은 [MariaDB, MySQL 및 PostgreSQL IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md) 섹션을 참조하세요.

## Kerberos 인증
<a name="kerberos-authentication"></a>

 Amazon RDS에서는 Kerberos 및 Microsoft Active Directory를 사용한 데이터베이스 사용자의 외부 인증을 지원합니다. Kerberos는 티켓과 대칭 키 암호화를 사용하여 네트워크를 통해 암호를 전송할 필요가 없는 네트워크 인증 프로토콜입니다. Kerberos는 Active Directory에 내장되어 있으며 데이터베이스와 같은 네트워크 리소스에 대해 사용자를 인증하도록 설계되었습니다.

 Kerberos 및 Active Directory에 대한 Amazon RDS의 지원은 데이터베이스 사용자에게 Single Sign-On 및 중앙 집중식 인증의 이점을 제공합니다. 사용자 자격 증명을 Active Directory에 보관할 수 있습니다. Active Directory는 여러 DB 인스턴스 에 대한 자격 증명을 보관하고 관리할 수 있는 중앙 집중식 공간을 제공합니다.

자체 관리형 Active Directory의 자격 증명을 사용하려면 DB 인스턴스 가 조인된 Microsoft Active Directory의 Directory Service에 대한 신뢰 관계를 설정해야 합니다.

 RDS for PostgreSQL 및 RDS for MySQL 은 포리스트 전체 인증 또는 선택적 인증을 통해 단방향 및 양방향 포리스트 신뢰 관계를 지원합니다.

일부 시나리오에서는 외부 신뢰 관계를 통해 Kerberos 인증을 구성할 수 있습니다. 이를 위해서는 자체 관리형 Active Directory에 추가 설정이 필요합니다. 여기에는 [Kerberos 포리스트 검색 순서](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/kfso-not-work-in-external-trust-event-is-17)가 포함되지만, 이에 국한되지는 않습니다.

Microsoft SQL Server 및 PostgreSQL DB 인스턴스는 단방향 및 양방향 포리스트 신뢰 관계를 지원합니다. Oracle DB 인스턴스는 단방향 및 양방향 외부 및 포리스트 신뢰 관계를 지원합니다. 자세한 내용은 *Directory Service 관리 안내서*의 [신뢰 관계를 생성해야 하는 경우](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/setup_trust.html)를 참조하십시오.

특정 DB 엔진의 Kerberos 인증에 대한 자세한 내용은 다음을 참조하십시오.
+  [RDS for SQL Server를 사용하여 AWS 관리형 Active Directory 작업](USER_SQLServerWinAuth.md) 
+  [Amazon RDS for MySQL에 Kerberos 인증 사용](mysql-kerberos.md) 
+  [Amazon RDS for Oracle에 대한 Kerberos 인증 구성](oracle-kerberos.md) 
+  [Amazon RDS for PostgreSQL과 함께 Kerberos 인증 사용](postgresql-kerberos.md) 
+  [Amazon RDS for Db2에 대한 Kerberos 인증 사용](db2-kerberos.md) .

**참고**  
현재 MariaDB DB 인스턴스에 대해서는 Kerberos 인증이 지원되지 않습니다.