

# Babelfish용 Active Directory 보안 그룹을 사용하여 Kerberos 인증 설정
<a name="babelfish-kerberos-securityad"></a>

Babelfish 버전 4.2.0부터 Active Directory 보안 그룹을 사용하여 Babelfish에 대한 Kerberos 인증을 설정할 수 있습니다. Active Directory를 사용하여 Kerberos 인증을 설정하려면 완료해야 하는 사전 조건은 다음과 같습니다.
+  [Babelfish를 사용하는 Kerberos 인증](babelfish-active-directory.md)에 언급된 모든 단계를 따라야 합니다.
+ DB 인스턴스가 Active Directory와 연결되어 있는지 확인합니다. 콘솔에서 또는 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령을 실행하여 도메인 구성원 자격 상태를 보고 확인할 수 있습니다.

  DB 인스턴스의 상태가 kerberos를 지원해야 합니다. 도메인 구성원 자격 이해에 대한 자세한 내용은 [도메인 멤버십 이해](postgresql-kerberos-managing.md#postgresql-kerberos-managing.understanding) 섹션을 참조하세요.
+ 다음 쿼리를 사용하여 NetBIOS 도메인 이름과 DNS 도메인 이름 간의 매핑을 확인합니다.

  ```
  SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
  ```
+ 계속 진행하기 전에 개별 로그인을 사용한 Kerberos 인증이 예상대로 작동하는지 확인합니다. Active Directory 사용자로서 Kerberos 인증을 사용한 연결이 성공해야 합니다. 문제가 발생하는 경우 [자주 발생하는 오류](babelfish-active-directory.md#babelfish-active-directory-errors) 섹션을 참조하세요.

## pg\_ad\_mapping 확장 설정
<a name="babelfish-kerberos-securityad-setpgextn"></a>

 [pg\_ad\_mapping 확장 설정](AD.Security.Groups.md#AD.Security.Groups.Setup)에 언급된 모든 단계를 따라야 합니다. 확장 프로그램이 설치되었는지 확인하려면 TDS 엔드포인트에서 다음 쿼리를 실행합니다.

```
1> SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping';
2> GO
extname       extversion
------------- ----------
pg_ad_mapping 0.1

(1 rows affected)
```

## 그룹 로그인 관리
<a name="babelfish-kerberos-securityad-managing"></a>

 [로그인 관리](babelfish-active-directory.md#babelfish-active-directory-login-managing)에 설명된 단계에 따라 그룹 로그인을 생성합니다. 필수는 아니지만, 유지 관리가 용이하도록 로그인 이름을 Active Directory(AD) 보안 그룹 이름과 동일하게 사용하는 것이 좋습니다. 예제: 

```
CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]
```

## 감사 및 로깅
<a name="babelfish-kerberos-securityad-audit"></a>

 AD 보안 주체 ID를 확인하려면 아래 명령을 사용하세요.

```
1> select suser_name();
2> GO
suser_name
----------
corp\user1

(1 rows affected)
```

현재로서는 AD 사용자 ID가 로그에 표시되지 않습니다. `log_connections` 파라미터를 설정하여 DB 세션 설정을 로깅할 수 있습니다. 자세한 내용은 [log\_connections](https://docs.aws.amazon.com/prescriptive-guidance/latest/tuning-postgresql-parameters/log-connections.html)를 참조하세요. 다음 예제와 같이 출력에 AD 사용자 ID가 보안 주체로 포함됩니다. 이 출력과 관련된 백엔드 PID는 실제 AD 사용자에게 작업을 귀속시키는 데 도움이 됩니다.

```
bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)
```