

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# での Kerberos 認証の使用 AWS Database Migration Service
<a name="CHAP_Security.Kerberos"></a>

DMS v3.5.3 以降では、Kerberos 認証を使用してデータベースインスタンスに接続するように Oracle または SQL Server ソースエンドポイントを設定できます。DMS は、Microsoft Active Directory および Kerberos 認証 Directory Service をサポートしています。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>

次の図は、Kerberos AWS DMS 認証ワークフローの概要を示しています。

![Kerberos 認証アーキテクチャ](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-kerberos-architecture.jpg)


## での Kerberos 認証の使用に関する制限事項 AWS DMS
<a name="CHAP_Security.Kerberos.limitations"></a>

で Kerberos 認証を使用する場合、次の制限が適用されます AWS DMS。
+ DMS レプリケーションインスタンスは、1 つの Kerberos `krb5.conf` ファイルと 1 つのキーキャッシュファイルをサポートします。
+ チケットの有効期限が切れる少なくとも 30 分前に、Secrets Manager で Kerberos キーキャッシュファイルを更新する必要があります。
+ Kerberos 対応 DMS エンドポイントは、Kerberos 対応 DMS レプリケーションインスタンスでのみ機能します。

## 前提条件
<a name="CHAP_Security.Kerberos.prerequisites"></a>

開始するには、既存の Active Directory または Kerberos 認証ホストで要求される次の前提条件を満たす必要があります。
+ オンプレミス AD と Active Directory の信頼関係を確立します。詳細については、[「チュートリアル: AWS Managed 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` パラメータを使用して、Kerberos キーキャッシュファイルを Secrets Manager に保存します。Secrets Manager にキーキャッシュファイルをアップロードすると、DMS はキーキャッシュファイルを取得し、約 30 分ごとにローカルキャッシュファイルを更新します。ローカルキーキャッシュファイルが事前定義された有効期限のタイムスタンプを超えると、DMS はタスクを適切に停止します。継続的なレプリケーションタスク中の認証の失敗を回避するには、チケットの有効期限の少なくとも 30 分前に Secrets Manager のキーキャッシュファイルを更新します。詳細については、「*Secrets 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}}
  ```
+ Secrets Manager からキーキャッシュファイルを取得するための `GetSecretValue` および `DescribeSecret` アクセス許可を IAM ロールに付与します。IAM ロールに `dms-vpc-role` 信頼ポリシーが含まれていることを確認します。`dms-vpc-role` 信頼ポリシーの詳細については、「[で使用する IAM ロールの作成 AWS DMS](security-iam.md#CHAP_Security.APIRole)」を参照してください。

次の例は、Secrets Manager `GetSecretValue`と `DescribeSecret` アクセス許可を持つ IAM ロールポリシーを示しています。{{<keycache\_secretsmanager\_arn>}} 値は、前のステップで作成した Keycache Secrets Manager ARN です。

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

****  

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

------

## DMS レプリケーションインスタンスでの AWS Kerberos サポートの有効化
<a name="CHAP_Security.Kerberos.enable.instance"></a>

Kerberos 領域は Windows のドメインと同じです。プリンシパル領域を解決するために、Kerberos はドメインネームサービス (DNS) に依存します。`dns-name-servers` パラメータを設定すると、レプリケーションインスタンスは事前定義されたカスタム DNS サーバーのセットを使用して Kerberos ドメイン領域を解決します。Kerberos 領域クエリを解決するもう 1 つの代替オプションは、レプリケーションインスタンスの仮想プライベートクラウド (VPC) で Amazon Route 53 を設定することです。詳細については、「[Route 53](https://docs.aws.amazon.com/route53/)」を参照してください。

### を使用して DMS レプリケーションインスタンスで Kerberos サポートを有効にする AWS マネジメントコンソール
<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 領域を解決します。詳細については、「[作成レプリケーション インスタンス](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 Diagnostic AMI を使用して、レプリケーションインスタンスと同じ VPC で Amazon EC2 インスタンスを起動し、kerberos 認証をテストできます。AMI の詳細については、「[AWS DMS 診断サポート AMI の使用](CHAP_SupportAmi.md)」を参照してください。

### DMS AWS コンソールの使用
<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)」を参照してください。