

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에서 Kerberos 인증 사용 AWS Database Migration Service
<a name="CHAP_Security.Kerberos"></a>

DMS v3.5.3부터 Kerberos 인증을 사용하여 데이터베이스 인스턴스에 연결하도록 Oracle 또는 SQL Server 소스 엔드포인트를 구성할 수 있습니다. DMS는 Directory Service Microsoft Active Directory 및 Kerberos 인증을 지원합니다. Microsoft Active Directory 서비스에 대한 AWS관리형 액세스에 대한 자세한 내용은 [ 란 무엇입니까 Directory Service?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)를 참조하세요.

## AWS DMS Kerberos 인증 아키텍처 개요
<a name="CHAP_Security.Kerberos.architecture"></a>

다음 다이어그램은 AWS DMS Kerberos 인증 워크플로에 대한 개략적인 개요를 제공합니다.

![\[Kerberos 인증 아키텍처\]](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/images/datarep-kerberos-architecture.jpg)


## 에서 Kerberos 인증 사용에 대한 제한 사항 AWS DMS
<a name="CHAP_Security.Kerberos.limitations"></a>

에서 Kerberos 인증을 사용할 때는 AWS DMS다음과 같은 제한 사항이 적용됩니다.
+ DMS 복제 인스턴스는 Kerberos `krb5.conf` 파일 하나와 키 캐시 파일 하나를 지원합니다.
+ 티켓이 만료되기 최소 30분 전에 Secrets Manager에서 Kerberos 키 캐시 파일을 업데이트해야 합니다.
+ Kerberos 지원 DMS 엔드포인트는 Kerberos 지원 DMS 복제 인스턴스에서만 작동합니다.

## 사전 조건
<a name="CHAP_Security.Kerberos.prerequisites"></a>

시작하려면 기존 Active Directory 또는 Kerberos 인증 호스트에서 다음 사전 조건을 완료해야 합니다.
+ 온프레미스 AD와 Active Directory 신뢰 관계를 설정합니다. 자세한 내용은 [ 자습서: AWS 관리형 Microsoft AD와 자체 관리형 Active Directory 도메인 간의 신뢰 관계 생성을 참조하세요](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html).
+ 간소화된 버전의 Kerberos `krb5.conf` 구성 파일을 준비합니다. 영역, 도메인 관리자 서버의 위치, Kerberos 영역에 대한 호스트 이름 매핑에 대한 정보를 포함합니다. `krb5.conf` 콘텐츠의 형식이 영역 및 도메인 영역 이름에 대한 올바른 대/소문자 혼합 형식인지 확인해야 합니다. 예제:

  ```
  [libdefaults] 
   dns_lookup_realm = true 
   dns_lookup_kdc = true 
   forwardable = true 
   default_realm = MYDOMAIN.ORG 
  [realms] 
  MYDOMAIN.ORG = { 
  kdc = mydomain.org 
  admin_server = mydomain.org 
  } 
  [domain_realm] 
  .mydomain.org = MYDOMAIN.ORG 
  mydomain.org = MYDOMAIN.ORG
  ```
+ Kerberos 키 캐시 파일을 준비합니다. 파일에는 클라이언트 위탁자 정보의 임시 Kerberos 자격 증명이 포함되어 있습니다. 파일은 클라이언트의 암호를 저장하지 않습니다. DMS 태스크는 이 캐시 티켓 정보를 사용하여 암호 없이 추가 자격 증명을 가져옵니다. 기존 Active Directory 또는 Kerberos 인증 호스트에서 다음 단계를 실행하여 키 캐시 파일을 생성합니다.
  + Kerberos 키탭 파일을 생성합니다. **kutil** 또는 **ktpass** 유틸리티를 사용하여 키탭 파일을 생성할 수 있습니다.

    Microsoft **ktpass** 유틸리티에 대한 자세한 내용은 *Windows Server 설명서*의 [ktpass](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass)를 참조하세요.

    MIT **kutil** 유틸리티에 대한 자세한 내용은 *MIT Kerberos 설명서*의 [kutil](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/ktutil.html)을 참조하세요.
  + **kinit** 유틸리티를 사용하여 keytab 파일에서 Kerberos 키 캐시 파일을 생성합니다. **kinit** 유틸리티에 대한 자세한 내용은 *MIT Kerberos 설명서*의 [kinit](https://web.mit.edu/kerberos/krb5-1.12/doc/user/user_commands/kinit.html)를 참조하세요.
+ `SecretBinary` 파라미터를 사용하여 Secrets Manager에 Kerberos 키 캐시 파일을 저장합니다. Secrets Manager에 키 캐시 파일을 업로드하면 DMS가 해당 파일을 검색한 다음 약 30분마다 로컬 캐시 파일을 업데이트합니다. 로컬 키 캐시 파일이 미리 정의된 만료 타임스탬프를 초과하면 DMS는 작업을 정상적으로 중지합니다. 지속적 복제 작업 중에 인증 실패를 방지하려면 티켓 만료 최소 30분 전에 Secrets Manager에서 키 캐시 파일을 업데이트합니다. 자세한 내용은 * Systems Manager API 참조*의 [createsecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)을 참조하세요. 다음 AWS CLI 샘플은 Secrets Manager에 키 캐시 파일을 이진 형식으로 저장하는 방법을 보여줍니다.

  ```
  aws secretsmanager create-secret —name keycache —secret-binary fileb://keycachefile
  ```
+ IAM 역할에 Secrets Manager에서 키 캐시 파일을 가져올 수 있는 `GetSecretValue` 및 `DescribeSecret` 권한을 부여합니다. IAM 역할에 `dms-vpc-role` 신뢰 정책이 포함되어 있는지 확인합니다. `dms-vpc-role` 신뢰 정책에 대한 자세한 내용은 [와 함께 사용할 IAM 역할 생성 AWS DMS](security-iam.md#CHAP_Security.APIRole) 섹션을 참조하세요.

다음 예에서는 Secrets Manager `GetSecretValue` 및 `DescribeSecret` 권한을 사용하여 IAM 역할 정책을 보여줍니다. *<keycache\$1secretsmanager\$1arn>* 값은 이전 단계에서 생성한 Keycache Secrets Manager ARN입니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:DescribeSecret"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## AWS DMS 복제 인스턴스에서 Kerberos 지원 활성화
<a name="CHAP_Security.Kerberos.enable.instance"></a>

Kerberos 영역은 Windows의 도메인과 동일합니다. 원칙 영역을 해결하기 위해 Kerberos는 도메인 이름 서비스(DNS)를 사용합니다. `dns-name-servers` 파라미터를 설정하면 복제 인스턴스는 미리 정의된 사용자 지정 DNS 서버 세트를 사용하여 Kerberos 도메인 영역을 확인합니다. Kerberos 영역 쿼리를 해결하는 또 다른 대안은 복제 인스턴스 가상 프라이빗 클라우드(VPC)에서 Amazon Route 53를 구성하는 것입니다. 자세한 내용은 [Route 53](https://docs.aws.amazon.com/route53/)를 참조하세요.

### 를 사용하여 DMS 복제 인스턴스에서 Kerberos 지원 활성화 AWS Management Console
<a name="CHAP_Security.Kerberos.enable.instance.console"></a>

콘솔을 사용하여 Kerberos 지원을 활성화하려면 **복제 인스턴스 생성** 또는 **복제 인스턴스 수정** 페이지의 **Kerberos 인증** 섹션에 다음 정보를 입력합니다.
+ `krb5.conf` 파일의 콘텐츠
+ 키 캐시 파일이 포함된 Secrets Manager 보안 암호의 ARN
+ 보안 암호 관리자 ARN에 액세스할 수 있는 IAM 역할의 ARN 및 키 캐시 파일을 검색할 수 있는 권한

### 를 사용하여 DMS 복제 인스턴스에서 Kerberos 지원 활성화 AWS CLI
<a name="CHAP_Security.Kerberos.enable.instance.cli"></a>

다음 AWS CLI 샘플 호출은 Kerberos를 지원하는 프라이빗 DMS 복제 인스턴스를 생성합니다. 복제 인스턴스는 사용자 지정 DNS를 사용하여 Kerberos 영역을 확인합니다. 자세한 내용은 [create-replication-instance](https://docs.aws.amazon.com/cli/latest/reference/dms/create-replication-instance.html) 섹션을 참조하세요.

```
aws dms create-replication-instance 
--replication-instance-identifier my-replication-instance 
--replication-instance-class dms.t2.micro 
--allocated-storage 50 
--vpc-security-group-ids sg-12345678 
--engine-version 3.5.4 
--no-auto-minor-version-upgrade 
--kerberos-authentication-settings'{"KeyCacheSecretId":<secret-id>,"KeyCacheSecretIamArn":<secret-iam-role-arn>,"Krb5FileContents":<krb5.conf file contents>}'
--dns-name-servers <custom dns server>
--no-publicly-accessible
```

## 소스 엔드포인트에서 Kerberos 지원 활성화
<a name="CHAP_Security.Kerberos.enable.endpoint"></a>

DMS Oracle 또는 SQL Server 소스 엔드포인트에서 Kerberos 인증을 활성화하기 전에 클라이언트 머신의 Kerberos 프로토콜을 사용하여 소스 데이터베이스에 인증할 수 있는지 확인합니다. AWS DMS 진단 AMI를 사용하여 복제 인스턴스와 동일한 VPC에서 Amazon EC2 인스턴스를 시작한 다음 kerberos 인증을 테스트할 수 있습니다. API에 대한 자세한 내용은 [AWS DMS 진단 지원 AMI 작업](CHAP_SupportAmi.md) 섹션을 참조하세요.

### AWS DMS 콘솔 사용
<a name="CHAP_Security.Kerberos.enable.endpoint.console"></a>

**엔드포인트 데이터베이스**에 대한 액세스에서 **Kerberos 인증**을 선택합니다.

### 사용 AWS CLI
<a name="CHAP_Security.Kerberos.enable.endpoint.cli"></a>

엔드포인트 설정 파라미터를 지정하고 `AuthenticationMethod` 옵션을 kerberos로 설정합니다. 예제:

**Oracle**

```
aws dms create-endpoint 
--endpoint-identifier my-endpoint 
--endpoint-type source 
--engine-name oracle 
--username dmsuser@MYDOMAIN.ORG 
--server-name mydatabaseserver 
--port 1521 
--database-name mydatabase  
--oracle-settings "{\"AuthenticationMethod\": \"kerberos\"}"
```

**SQL Server**

```
aws dms create-endpoint 
--endpoint-identifier my-endpoint 
--endpoint-type source 
--engine-name sqlserver 
--username dmsuser@MYDOMAIN.ORG 
--server-name mydatabaseserver 
--port 1433
--database-name mydatabase  
--microsoft-sql-server-settings "{\"AuthenticationMethod\": \"kerberos\"}"
```

## 소스 엔드포인트 테스트
<a name="CHAP_Security.Kerberos.test"></a>

Kerberos 지원 복제 인스턴스에 대해 Kerberos 지원 엔드포인트를 테스트해야 합니다. Kerberos 인증을 위해 복제 인스턴스 또는 소스 엔드포인트를 제대로 구성하지 않으면 엔드포인트 `test-connection` 작업이 실패하고가 Kerberos 관련 오류를 반환할 수 있습니다. 자세한 내용은 [테스트 연결](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/test-connection.html)을 참조하세요.