

# Oracle DB インスタンス用に Kerberos を設定する
<a name="oracle-kerberos-setting-up"></a>

AWS Directory Service for Microsoft Active Directory とも呼ばれる AWS Managed Microsoft AD を使用し、Oracle DB インスタンスに Kerberos 認証をセットアップします。Kerberos 認証をセットアップするには、以下のステップを完了します。
+ [ステップ 1: AWS Managed Microsoft AD を使用してディレクトリを作成する](#oracle-kerberos.setting-up.create-directory)
+ [ステップ 2: 信頼関係を作成する](#oracle-kerberos.setting-up.create-forest-trust)
+ [ステップ 3: Amazon RDS の IAM のアクセス許可を設定する](#oracle-kerberos.setting-up.CreateIAMRole)
+ [ステップ 4: ユーザーを作成して設定する](#oracle-kerberos.setting-up.create-users)
+ [ステップ 5: ディレクトリと DB インスタンスの間のクロス VPC トラフィックを有効にする](#oracle-kerberos.setting-up.vpc-peering)
+ [ステップ 6: Oracle DB インスタンスを作成または変更する](#oracle-kerberos.setting-up.create-modify)
+ [ステップ 7: Kerberos 認証 Oracle ログインを作成する](#oracle-kerberos.setting-up.create-logins)
+ [ステップ 8: Oracle クライアントを設定する](#oracle-kerberos.setting-up.configure-oracle-client)

**注記**  
セットアップ中、RDS は、{{managed\_service\_user}}@{{example.com}} という名前の Oracle データベースユーザーを作成し、`CREATE SESSION` 権限を付与します ({{example.com}} はドメイン名です)。このユーザーは、Directory Service が管理されたアクティブディレクトリ内に作成するユーザーに対応します。RDS は定期的に、Directory Service によって提供される認証情報を使用して Oracle データベースにログインします。その後、RDS はすぐにチケットキャッシュを破棄します。

## ステップ 1: AWS Managed Microsoft AD を使用してディレクトリを作成する
<a name="oracle-kerberos.setting-up.create-directory"></a>

Directory Service はフルマネージド型の Active Directory を AWS クラウド内に作成します。AWS Managed Microsoft AD ディレクトリを作成すると、Directory Service がユーザーに代わって 2 つのドメインコントローラーと 2 つのドメインネームシステム (DNS) サーバーを作成します。ディレクトリサーバーは、VPC 内の異なるサブネットで作成されます。この冗長性によって、障害が発生してもディレクトリにアクセス可能な状態を維持できます。

AWS Managed Microsoft AD ディレクトリを作成すると、Directory Service がユーザーに代わって自動的に以下のタスクを実行します。
+ VPC 内に Active Directory を設定します。
+ 「Admin」のユーザー名と指定されたパスワードを使用して、ディレクトリ管理者アカウントを作成します。このアカウントを使用してディレクトリを管理します。
**注記**  
このパスワードは必ず保存してください。Directory Service は保存しません。パスワードはリセットできますが、取得することはできません。
+ ディレクトリコントローラー用セキュリティグループを作成します。

AWS Managed Microsoft AD を起動すると、AWS は組織単位 (OU) を作成します。OU にはディレクトリのオブジェクトがすべて含まれています。この OU には、ディレクトリの作成時に入力した NetBIOS 名がドメインルートにあります。ドメインルートは AWS が所有し、管理します。

AWS Managed Microsoft AD ディレクトリに作成した管理者アカウントには、OU に関する以下の代表的な管理業務用のアクセス権限があります。
+ ユーザーを作成、更新、削除する 
+ ファイルやプリントサーバーなどのドメインにリソースを追加して、追加したリソースへのアクセス許可を OU のユーザーとグループに割り当てる 
+ 追加の OU やコンテナを作成する 
+ 権限を委譲する 
+ 削除されたオブジェクトを Active Directory のごみ箱から元に戻す 
+ Active Directory Web Service で AD と DNS Windows PowerShell モジュールを実行する 

管理者アカウントには、ドメイン全体に関する以下のアクティビティを実行する権限もあります。
+ DNS 設定 (レコード、ゾーン、フォワーダーの追加、削除、更新) を管理する 
+ DNS イベントログを参照する 
+ セキュリティイベントログを参照する 

AWS マネジメントコンソール、AWS CLI、Directory Service API を使用して、ディレクトリを作成します。ディレクトリが Oracle DB インスタンスと通信できるように、ディレクトリセキュリティグループで関連するアウトバウンドポートを必ず開いてください。

**AWS Managed Microsoft AD でディレクトリを作成するには**

1. AWS マネジメントコンソール にサインインし、Directory Service コンソール ([https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/))を開きます。

1. ナビゲーションペインで、[**Directories**]、[**Set up Directory**] の順に選択します。

1. [**AWS Managed Microsoft AD**] を選択します。現状では、AWS Managed Microsoft AD が Amazon RDS で使用できる唯一のオプションです。

1.  次の情報を入力します。  
**ディレクトリの DNS 名**  
ディレクトリの完全修飾名 (例: **corp.example.com**)。  
**ディレクトリの NetBIOS 名**  
ディレクトリの短縮名 (例: **CORP**)。  
**ディレクトリの説明**  
(オプション) ディレクトリの説明。  
**Admin パスワード**  
ディレクトリ管理者のパスワードです。ディレクトリの作成プロセスでは、ユーザー名「Admin」とこのパスワードを使用して管理者アカウントが作成されます。  
ディレクトリ管理者のパスワードに「admin」の単語を含めることはできません。パスワードは大文字と小文字を区別し、8-64 文字にします。また、以下の 4 つのカテゴリうち 3 つから少なくとも 1 文字を含める必要があります。  
   + 小文字 (a～z) 
   + 大文字 (A～Z) 
   + 数字 (0～9) 
   + アルファベット以外の文字 (\~\!@\#$%^&\*\_-\+=`\|\\(){}[]:;"'<>,.?/)   
**パスワードを確認**  
管理者のパスワードをもう一度入力します。

1. [**Next (次へ)**] を選択します。

1.  [**Networking** ] セクションに次の情報を入力し、[**Next**] を選択します。  
**VPC**  
ディレクトリ用の VPC。この同じ VPC 内に Oracle DB インスタンスを作成します。  
**Subnets**  
ディレクトリサーバーのサブネット。2 つのサブネットは、異なるアベイラビリティーゾーンに存在している必要があります。

1.  ディレクトリ情報を確認し、必要な変更を加えます。情報が正しい場合は、[**Create directory (ディレクトリの作成)**] を選択します。  
![作成中のディレクトリ詳細ページ](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

ディレクトリが作成されるまで、数分かかります。正常に作成されると、[**Status**] 値が [**Active**] に変わります。

ディレクトリに関する情報を表示するには、ディレクトリの一覧で、ディレクトリ名を選択します。[**Directory ID**] の値を書き留めます。この値は、Oracle DB インスタンスを作成または変更するときに必要になります。

![ディレクトリの詳細ページ](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## ステップ 2: 信頼関係を作成する
<a name="oracle-kerberos.setting-up.create-forest-trust"></a>

AWS Managed Microsoft AD のみを使用する予定の場合は、[ステップ 3: Amazon RDS の IAM のアクセス許可を設定する](#oracle-kerberos.setting-up.CreateIAMRole) に進みます。

セルフマネージド Active Directory を使用して Kerberos 認証を有効にするには、セルフマネージド Active Directory と前の手順で作成した AWS Managed Microsoft AD との間にフォレスト信頼関係を作成する必要があります。信頼は一方向で、AWS Managed Microsoft AD はセルフマネージド Active Directory を信頼します。信頼は、両方の Active Directory が相互に信頼する双方向にすることもできます。Directory Service を使用してフォレストの信頼関係を設定する方法の詳細については、*Directory Service 管理ガイド*の「[信頼関係を作成する場合](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html)」を参照してください。

## ステップ 3: Amazon RDS の IAM のアクセス許可を設定する
<a name="oracle-kerberos.setting-up.CreateIAMRole"></a>

Directory Service を呼び出すには、Amazon RDS にマネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する IAM ロールが必要です。このロールにより、Amazon RDS は Directory Service への呼び出しを行うことができます。

**注記**  
ロールによるアクセスを許可するには、AWS Security Token Service (AWS STS) エンドポイントを AWS アカウント の AWS リージョン でアクティベートする必要があります。AWS STS エンドポイントはすべての AWS リージョン でデフォルトでアクティブになっているため、他のアクションを実行せずに、エンドポイントを使用することができます。詳細については、「*IAM ユーザーガイド*」の「[AWS リージョン での AWS STS のアクティブ化と非アクティブ化](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate)」を参照してください。

### IAM ロールの作成
<a name="oracle-kerberos.setting-up.CreateIAMRole.create-role"></a>

AWS マネジメントコンソール を使用して DB インスタンスを作成し、コンソールユーザーが `iam:CreateRole` アクセス許可を持っている場合、コンソールは `rds-directoryservice-kerberos-access-role` を自動的に作成します。それ以外の場合は、IAM ロールを手動で作成する必要があります。IAM ロールを手動で作成する場合、[`Directory Service`] を選択し、それに AWS マネージドポリシー `AmazonRDSDirectoryServiceAccess` をアタッチします。

サービス用の IAM ロールを作成する方法の詳細については、*IAM ユーザーガイド*の「[AWS のサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

**注記**  
RDS for Microsoft SQL Server の RDS 用の Windows 認証に使用される IAM ロールは、Oracle 用の RDS には使用できません。

### IAM 信頼ポリシーを手動で作成する
<a name="oracle-kerberos.setting-up.CreateIAMRole.trust-policy"></a>

マネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する代わりに、必要なアクセス許可を使用してリソースポリシーを作成することもできます。プリンシパルとして `directoryservice.rds.amazonaws.com` と `rds.amazonaws.com` の両方を指定します。

特定のリソースへのアクセスについて、Amazon RDS が別のサービスに付与する許可を制限する場合は、リソースポリシー内で [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用することをお勧めします。混乱した代理問題から保護するための最も効果的な方法は、Amazon RDS リソースの完全な ARN を指定しながら、`aws:SourceArn` グローバル条件コンテキストキーを使用することです。詳細については、「[サービス間での混乱した代理問題の防止](cross-service-confused-deputy-prevention.md)」を参照してください。

次の例では、Amazon RDS で `aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、「混乱した代理」問題を回避する方法を示します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:{{us-east-1}}:{{123456789012}}:{{db:mydbinstance}}"
        },
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}"
        }
      }
    }
  ]
}
```

------

オプトインリージョンの場合は、リージョンのサービスプリンシパルを `directoryservice.rds.{{region_name}}.amazonaws.com` の形式で含める必要もあります。例えば、アフリカ (ケープタウン) リージョンの場合、次の信頼ポリシーを使用します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "directoryservice.rds.af-south-1.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:{{af-south-1}}:{{123456789012}}:{{db:mydbinstance}}"
        },
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}"
        }
      }
    }
  ]
}
```

------

また、ロールには、以下の IAM ポリシーも必要です。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

## ステップ 4: ユーザーを作成して設定する
<a name="oracle-kerberos.setting-up.create-users"></a>

 アクティブディレクトリドメインサービスおよびアクティブディレクトリライトウェイトディレクトリサービスのツールの一部である「アクティブディレクトリユーザーとコンピュータ」ツールを使用して、ユーザーを作成できます。この場合、*ユーザー*は、ディレクトリにアクセスできる個別の人またはエンティティを表します。

Directory Service ディレクトリにユーザーを作成するには、Directory Service ディレクトリのメンバーである Windows ベースの Amazon EC2 インスタンスに接続している必要があります。同時に、ユーザーを作成する権限を持つユーザーとしてログインしていなければなりません。Active Directory にユーザーを作成する方法の詳細については、 *AWS Managed Microsoft AD管理ガイド*の「[Directory Serviceでユーザーとグループを管理する](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html)」を参照してください。

## ステップ 5: ディレクトリと DB インスタンスの間のクロス VPC トラフィックを有効にする
<a name="oracle-kerberos.setting-up.vpc-peering"></a>

同じ VPC 内にディレクトリおよび DB インスタンスを配置する場合は、このステップをスキップして [ステップ 6: Oracle DB インスタンスを作成または変更する](#oracle-kerberos.setting-up.create-modify) に進みます。

ディレクトリと DB インスタンスを別の AWS アカウントまたは VPC に配置する場合は、VPC ピア接続または [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) を使用してクロス VPC トラフィックを設定します。次の手順では、VPC ピア接続を使用して VPC 間のトラフィックを有効にします。*Amazon Virtual Private Cloud ピアリング接続ガイド*の「[VPC ピア機能とは](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)」の手順に従います。

**VPC ピア接続を使用してクロス VPC トラフィックを有効にするには**

1. 適切な VPC ルーティングを設定し、ネットワークトラフィックが双方向にフローするようにします。

1. DB インスタンスのセキュリティグループが、ディレクトリのセキュリティグループからのインバウンドトラフィックを受信できることを確認します。詳細については、*AWS Managed Microsoft AD 管理ガイド*の「[Directory Service のベストプラクティス](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_best_practices.html)」を参照してください。

1. トラフィックをブロックするネットワークのアクセスコントロールリスト (ACL) ルールがないことを確認します。

別の AWS アカウントがディレクトリを所有している場合は、ディレクトリを共有する必要があります。

**AWS アカウント間でディレクトリを共有するには**

1. DB インスタンスを作成する AWS アカウントとの間でディレクトリの共有を開始するには、*AWS Managed Microsoft AD 管理ガイド*の「[チュートリアル: Directory Service ディレクトリを共有して、シームレスに EC2 ドメインを結合する](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html)」の手順を実行します。

1. DB インスタンスのアカウントを使用して、Directory Service コンソールにサインインし、続行する前にドメインが必ず `SHARED` ステータスであることを確認します。

1. DB インスタンスのアカウントを使用して Directory Service コンソールにサインインしている間に、[**ディレクトリ ID**] の値を書き留めておきます。このディレクトリ ID は、DB インスタンスをドメインに結合するために使用します。

## ステップ 6: Oracle DB インスタンスを作成または変更する
<a name="oracle-kerberos.setting-up.create-modify"></a>

ディレクトリで使用する Oracle DB インスタンスを作成または変更します。コンソール、CLI、RDS API を使用して DB インスタンスとディレクトリを関連付けることができます。これには以下の 2 つの方法があります。
+ コンソール、[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI コマンド、[CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API オペレーションを使用して新しい Oracle DB インスタンスを作成します。

  手順については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ コンソール、[modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI コマンド、[ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API オペレーションを使用して、既存の Oracle DB インスタンスを変更します。

  手順については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ コンソール、[restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) CLI コマンド、[RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) RDS API オペレーションを使用して、DB スナップショットから Oracle DB インスタンスを復元します。

  手順については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。
+ コンソール、[restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI コマンド、[RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) RDS API オペレーションを使用して、Oracle DB インスタンスをポイントインタイムに復元します。

  手順については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

Kerberos 認証は、VPC 内の Oracle DB インスタンスにのみサポートされています。DB インスタンスは、ディレクトリと同じ VPC または異なる VPC 内にあります。DB インスタンスの作成または変更時に、次の手順を行います。
+ ディレクトリの作成時に、生成されたドメイン識別子 (`d-*` 識別子) を指定します。
+ 作成した IAM ロール名を指定します。
+ DB インスタンスセキュリティグループがディレクトリセキュリティグループからインバウンドトラフィックを受信し、ディレクトリへのアウトバウンドトラフィックを送信できることを確認してください。

DB インスタンスを作成するためにコンソールを使用する場合は、**データベースの認証** セクションの [**パスワードと Kerberos 認証**] を選択します。[**ディレクトリの参照**] を選択してディレクトリを選択するか、[**新しいディレクトリの作成**] を選択します。

![DB インスタンスの作成時の Kerberos 認証設定](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/kerberos-authentication.png)


コンソールを使用して DB インスタンスを変更または復元する場合は、[**Kerberos 認証**] セクションでディレクトリを選択するか、[**Create a new directory (新しいディレクトリの作成)**] を選択します。

![DB インスタンスの変更または復元時の Kerberos 認証設定](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/kerberos-auth-modify-restore.png)


AWS CLI を使用する場合は、DB インスタンスが、作成したディレクトリを使用できるように、以下のパラメータが必要です。
+ `--domain` パラメータには、ディレクトリの作成時に生成されたドメイン識別子 ("d-\*" 識別子) を使用します。
+ `--domain-iam-role-name` パラメータには、マネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する作成済みのロールを使用します。

例えば、以下の CLI コマンドはディレクトリを使用するように DB インスタンスを変更します。

Linux、macOS、Unix の場合:

```
aws rds modify-db-instance \
    --db-instance-identifier {{mydbinstance}} \
    --domain d-{{ID}} \
    --domain-iam-role-name {{role-name}}
```

Windows の場合:

```
aws rds modify-db-instance ^
    --db-instance-identifier {{mydbinstance}} ^
    --domain d-{{ID}} ^
    --domain-iam-role-name {{role-name}}
```

**重要**  
Kerberos 認証を有効化するために DB インスタンスを変更する場合、変更後 DB インスタンスを再起動します。

**注記**  
{{MANAGED\_SERVICE\_USER}} は、RDS の Directory Service によってランダムに生成される名前を持つサービスアカウントです。Kerberos 認証のセットアップ時に、RDS for Oracle は同じ名前のユーザーを作成し、そのユーザーに `CREATE SESSION` 権限を割り当てます。Oracle DB ユーザーは、外部で {{MANAGED\_SERVICE\_USER@EXAMPLE.COM}} と識別されます。{{EXAMPLE.COM}} はドメインの名前です。RDS は定期的に、Directory Service によって提供される認証情報を使用して Oracle データベースにログインします。その後、RDS はすぐにチケットキャッシュを破棄します。

## ステップ 7: Kerberos 認証 Oracle ログインを作成する
<a name="oracle-kerberos.setting-up.create-logins"></a>

Amazon RDS マスターユーザーの認証情報を使用して、他の DB インスタンスと同様に Oracle DB インスタンスに接続します。DB インスタンスは、AWS Managed Microsoft AD ドメインに接続されています。このように、ドメインの Microsoft Active Directory ユーザーおよびから Oracle ログインおよびユーザーのプロビジョニングができます。標準の Oracle 権限をこれらのログインに付与したり、取り消したりしてデータベースの権限を管理します。

**Microsoft Active Directory のユーザーに Oracle 認証を許可するには**

1. Amazon RDS マスターユーザー認証情報を使用して、Oracle DB インスタンスに接続します。

1. 外部認証されたユーザーを Oracle データベース内に作成します。

   次の例では、`{{KRBUSER@CORP.EXAMPLE.COM}}` をユーザ名とドメイン名に置き換えます。

   ```
   CREATE USER "{{KRBUSER@CORP.EXAMPLE.COM}}" IDENTIFIED EXTERNALLY; 
   GRANT CREATE SESSION TO "{{KRBUSER@CORP.EXAMPLE.COM}}";
   ```

   これでドメインのユーザー (人とアプリケーションの両方) は、Kerberos 認証を使用してドメインに参加しているクライアントマシンから Oracle DB インスタンスに接続できます。

## ステップ 8: Oracle クライアントを設定する
<a name="oracle-kerberos.setting-up.configure-oracle-client"></a>

Oracle クライアントを構成するには、次の要件を満たす必要があります。
+ ドメインを指すように、krb5.conf (Linux) または krb5.ini (Windows) という名前の設定ファイルを作成します。この設定ファイルを使用する Oracle クライアントを設定します。
+ TCP/UDP の 53 番ポート (DNS)、Kerberos ポート(マネージド型 Directory Service 向けの 88 番および 464 番)、および TCP の389 番 LDAP ポートを介して、クライアントホストと Directory Service の間でトラフィックが流れているかを確認します。
+ データベースポートを介してクライアントホストと DB インスタンス間でトラフィックが流れることを確認します。

以下は、AWS Managed Microsoft AD のサンプルコンテンツです。

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
[domain_realm]
 .example.com = CORP.EXAMPLE.COM
 example.com = CORP.EXAMPLE.COM
```

以下は、オンプレミス Microsoft AD のサンプルコンテンツです。krb5.conf ファイルまたは krb5.ini ファイルで、{{on-prem-ad-server-name}} をオンプレミス AD サーバー名に置き換えます。

```
[libdefaults]
 default_realm = ONPREM.COM
[realms]
 AWSAD.COM = {
  kdc = awsad.com
  admin_server = awsad.com
 }
 ONPREM.COM = {
  kdc = {{on-prem-ad-server-name}}
  admin_server = {{on-prem-ad-server-name}}
 }
[domain_realm]
 .awsad.com = AWSAD.COM
 awsad.com= AWSAD.COM
 .onprem.com = ONPREM.COM
 onprem.com= ONPREM.COM
```

**注記**  
krb5.ini ファイル または krb5.conf ファイルを設定したら、サーバーを再起動することをお勧めします。

以下は、SQL\*Plus 構成向けの sqlnet.ora の内容のサンプルです。

```
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5)
SQLNET.KERBEROS5_CONF={{path_to_krb5.conf_file}}
```

SQL 開発者向け構成の例に関しては、Oracle サポートの「[ドキュメント 1609359.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1609359.1)」をご参照ください。