

# Kerberos 인증을 사용하여 PostgreSQL 연결
<a name="postgresql-kerberos-connecting"></a>

pgAdmin 인터페이스 또는 psql과 같은 명령줄 인터페이스를 사용하여 Kerberos 인증으로 PostgreSQL에 연결할 수 있습니다. 연결에 대한 자세한 내용은 [Amazon Aurora PostgreSQL DB 클러스터에 연결](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL) 섹션을 참조하세요. 연결에 필요한 엔드포인트, 포트 번호 및 기타 세부 정보를 얻는 방법에 대한 자세한 내용은 [Aurora 클러스터의 엔드포인트 보기](Aurora.Overview.Endpoints.md#Aurora.Endpoints.Viewing) 단원을 참조하십시오. 

**참고**  
PostgreSQL의 GSSAPI 인증 및 암호화는 Kerberos 라이브러리 `libkrb5.so`에 의해 구현됩니다. `postgres_fdw` 및 `dblink`와 같은 기능은 Kerberos 인증 또는 암호화를 사용한 아웃바운드 연결에도 동일한 라이브러리를 사용합니다.

## pgAdmin
<a name="collapsible-section-pgAdmin"></a>

pgAdmin을 사용하여 Kerberos 인증으로 PostgreSQL에 연결하려면 다음 단계를 수행하십시오.

1. 클라이언트 컴퓨터에서 pgAdmin 애플리케이션을 실행합니다.

1. [**Dashboard**] 탭에서 [**Add New Server**]를 선택합니다.

1. **생성 - 서버** 대화 상자에서 pgAdmin의 서버를 식별하기 위해 **일반** 탭에 이름을 입력합니다.

1. **연결** 탭에서 Aurora PostgreSQL 데이터베이스에 있는 다음 정보를 입력합니다.
   + **호스트**의 경우 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 엔드포인트를 입력합니다. 엔드포인트는 다음과 유사하게 표시됩니다.

     ```
     AUR-cluster-instance.111122223333.aws-region.rds.amazonaws.com
     ```

     Windows 클라이언트에서 온-프레미스 Microsoft Active Directory에 연결하려면 호스트 엔드포인트의 `rds.amazonaws.com` 대신 AWS Managed Active Directory의 도메인 이름을 사용합니다. 예를 들어 AWS Managed Active Directory의 도메인 이름이 `corp.example.com`일 경우 그런 다음**호스트**에서는 엔드포인트가 다음과 같이 지정됩니다.

     ```
     AUR-cluster-instance.111122223333.aws-region.corp.example.com
     ```
   + **포트**에 할당된 포트를 입력합니다.
   + **Maintenance database(유지 관리 데이터베이스)**에 클라이언트가 연결될 초기 데이터베이스의 이름을 입력합니다.
   + **Username(사용자 이름)**에 [7단계: Kerberos 보안 주체를 위한 PostgreSQL 사용자 생성](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins)의 Kerberos 인증을 위해 입력했던 사용자 이름을 입력합니다.

1. **저장**을 선택합니다.

## psql
<a name="collapsible-section-psql"></a>

psql을 사용하여 Kerberos 인증으로 PostgreSQL에 연결하려면 다음 단계를 수행하십시오.

1. 명령 프롬프트에서 다음 명령을 실행합니다.

   ```
   kinit username                
   ```

   *`username`*을 사용자 이름으로 대체합니다. 프롬프트에서 Microsoft Active Directory에 저장된 사용자 암호를 입력합니다.

1. PostgreSQL DB 클러스터 가 공개적으로 액세스 가능한 VPC를 사용하는 경우 DB 클러스터 엔드포인트의 IP 주소를 EC2 클라이언트의 `/etc/hosts` 파일에 넣습니다. 예를 들어 다음 명령은 IP 주소를 얻은 다음 `/etc/hosts` 파일에 넣습니다.

   ```
   % dig +short PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com  
   ;; Truncated, retrying in TCP mode.
   ec2-34-210-197-118.AWS-Region.compute.amazonaws.com.
   34.210.197.118 
   
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
   ```

   Windows 클라이언트에서 온프레미스 Microsoft Active Directory를 사용하는 경우 특수 엔드포인트를 사용하여 연결해야 합니다. 호스트 엔드포인트에서 Amazon 도메인 `rds.amazonaws.com`을 사용하는 대신 AWS Managed Active Directory의 도메인 이름을 사용합니다.

   예를 들어 AWS Managed Active Directory의 도메인 이름이 `corp.example.com`일 경우 엔드포인트에 `PostgreSQL-endpoint.AWS-Region.corp.example.com` 형식을 사용하고 `/etc/hosts` 파일에 넣습니다.

   ```
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.corp.example.com" >> /etc/hosts
   ```

1. 다음 psql 명령을 사용하여 Active Directory와 통합된 PostgreSQL DB 클러스터에 로그인합니다. 클러스터 또는 인스턴스 엔드포인트를 사용합니다.

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com postgres
   ```

   온프레미스 Active Directory를 사용하여 Windows 클러스터에서 PostgreSQL DB 클러스터에 로그인하려면 이전 단계의 도메인 이름(`corp.example.com`)과 함께 다음 psql 명령을 사용합니다.

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.corp.example.com postgres
   ```