AWS Managed Microsoft AD で RDS for SQL Server の Windows 認証に関する問題をトラブルシューティングするにはどうすればよいですか?

所要時間3分
0

AWS アカウント用に設定された Microsoft Active Directory 用の AWS Directory Service を利用しています。Microsoft SQL Server DB インスタンス用に Amazon Relational Database Service (Amazon RDS) を作成する際に問題が発生します。

簡単な説明

Amazon RDS for SQL Server DB インスタンスを作成する際に、次のいずれかの問題が発生する可能性があります。

  • Microsoft Managed AD が利用できない。
  • 「Failed to join a host to a domain」(ホストをドメインに参加させることができませんでした) というエラーが表示されるか、RDS コンソールの Directory Status に「Failed」(失敗) と表示される。
  • Windows 認証を使用して DB インスタンスにログインできない。

RDS for SQL Server DB インスタンスの Windows 認証は、複数の AWS アカウントと Amazon Virtual Private Cloud (Amazon VPC) でサポートされています。単一の AWS Managed Microsoft Active Directory を複数の AWS アカウントと VPC で共有し、ディレクトリ対応のデータベースワークロードを簡単に管理できます。ただし、これは、RDS for SQL Server DB インスタンスが AWS Managed Microsoft AD と同じ AWS リージョンにある場合にのみ当てはまります。

解決方法

注: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

DB インスタンスを作成する際に、AWS Managed Microsoft AD が一覧表示されないか、または使用できない

重要: Amazon RDS コンソールに AWS Managed Microsoft AD がリストされるには、マネージドドメインタイプが AWS Managed アクティブディレクトリである必要があります。

AWS Managed Microsoft AD がインスタンスとは異なるリージョンにある場合、DB インスタンスを作成または変更しても、そのディレクトリはリストされません。この問題を解決するには、DB インスタンスが Directory Service と同じ AWS リージョンにあることを確認してください。

RDS DB インスタンスと Directory Service が同じリージョンにあるかどうかを確認します。

1.    Amazon RDS コンソールを開き、ナビゲーションペインから [Databases] (データベース) を選択します。

2.    ディレクトリに接続したい DB インスタンスを選択します。

3.    [Summary] (概要) セクションで、DB インスタンスに関連付けられている [Region] (リージョン) を確認します。

4.    AWS Directory Service コンソールをチェックして、Directory Service が DB インスタンスと同じ AWS リージョンにあることを確認します。

AWS Managed Microsoft AD が DB インスタンスとは異なる AWS アカウントにある場合は、その Microsoft Managed AD を AWS アカウントと共有します。その後、DB インスタンスの作成または変更中に Directory Service をリストできます。

1.    DB インスタンスが作成される AWS アカウントとのディレクトリの共有を開始します。「AWS Directory Service 管理ガイド」の「シームレスな EC2 ドメイン結合のための AWS Managed Microsoft AD ディレクトリ共有」のステップに従います。

2.    DB インスタンスのアカウントを使用して AWS Directory Service コンソールにサインインします。続行する前に、ドメインのステータスが [SHARED] (共有) になっていることを検証します。

3.    Directory ID の値ではなく、DB インスタンスのアカウントを使用して AWS Directory Service コンソールにサインインします。このディレクトリ ID を使用して、DB インスタンスをドメインに参加させます。

RDS コンソールで DB インスタンスをドメインまたは Directory Status に参加させようとすると「Failed」(失敗) というエラーが表示される

DB インスタンスをドメインに参加させると、次のエラーメッセージが表示されることがあります。

「Failed to join a host to a domain.Domain membership status for instance XXXXXXX has been set to Failed.」(ホストをドメインに参加させることができませんでした。インスタンス XXXXXXX のドメインメンバーシップのステータスが「Failed」(失敗) に設定されています)

または、[Directory status] (ディレクトリのステータス) が [Failed] (失敗) と表示されることがあります。

1.    RDS for SQL Server インスタンスのセキュリティグループが、正しいアウトバウンドトラフィックを許可するように設定されていることを確認します。

  • TCP および UDP ポート 53
  • TCP および UDP ポート 88
  • TCP および UDP ポート 135
  • TCP および UDP ポート 389
  • TCP および UDP ポート 445
  • TCP および UDP ポート 445
  • TCP ポート 636
  • TCP ポート 3268
  • TCP ポート 3269
  • TCP ポート 9389
  • TCP ポート 49152~65535
  • UDP ポート 123
  • UDP ポート 138

2.    AWS Managed Microsoft AD セキュリティグループが正しいインバウンドトラフィックを許可するように設定されていることを確認します。セキュリティグループは、AWS Managed Microsoft AD を作成するときに作成されます。このセキュリティグループに追加されたインバウンドルールとアウトバウンドルールのリストについては、「AWS Directory Service 管理ガイド」の「作成される対象」を参照してください。

3.    DB インスタンスと AWS Managed Microsoft AD が異なる VPC または別のアカウントにある可能性があります。その場合は、DB インスタンスが AWS Managed Microsoft AD に到達するための正しいルートがあることを確認してください。また、Microsoft Managed AD が DB インスタンスに到達するための正しいルートがあることを確認してください。詳細については、「RDS Support for cross-account and cross-VPC domain joins」(クロスアカウントおよびクロス VPC ドメイン参加の RDS サポート) (動画) を参照してください。

ドメイン参加の失敗について、考えられる原因を特定して対処したら、次の操作を実行してドメインの参加を解除し、DB インスタンスに参加させます。

1.    Amazon RDS コンソールを開き、ナビゲーションペインから [Databases] (データベース) を選択します。

2.    ドメインへの参加に失敗した DB インスタンスを選択してから、[Modify] (変更) を選択します。

3.    Microsoft SQL Server Windows 認証セクションのディレクトリで、[なし] を選択します。

4.    [すぐに適用する] を選択します。変更が完了すると、DB インスタンスが自動的に再起動されます。

5.    ディレクトリに再度参加させるには、ナビゲーションペインから [Databases] (データベース) を選択します。

6.    DB インスタンスを選択し、[変更] を選択します。

7.    Microsoft SQL Server Windows 認証セクションのディレクトリで、リストから [ディレクトリ] を選択します。

8.    [すぐに適用する] を選択します。変更が完了すると、DB インスタンスがまた再起動されます。

ModifyDBInstance オペレーションを呼び出すときにエラーが発生しました (InvalidParameterCombination): 指定された IAM ロールが有効ではありません。ロールが存在し、正しいポリシーがあることを確認してください

AWS CLI を使用して DB インスタンスに Directory Service をアタッチする場合は、デフォルトの IAM ロールである rds-directoryservice-access-role を使用します。カスタムロールを使用する場合は、デフォルトポリシー AmazonRDSDirectoryServiceAccess をカスタムロールにアタッチします。これにより、「IAM role provided is not valid」(指定された IAM ロールが無効です) というエラーが解決されます。

Windows 認証を使用して DB インスタンスにログインできない

Windows 認証を使用してログインするには、AWS Managed Microsoft AD ユーザーまたはグループのインスタンスに SQL ログインする必要があります。SQL ログインは DB インスタンスのプライマリユーザー認証情報を使用します。オンプレミスの Microsoft Active Directory でグループまたはユーザーを使用している場合は、信頼関係を作成する必要があります。

1.    SQL Server Management Studio (SSMS) を使用して、プライマリユーザーとして DB インスタンスにログインします。

2.    T-SQL を使用して Windows 認証ログインを作成します。

CREATE LOGIN [Domain Name\user or group] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];

注: RDS for SQL Server インスタンスでの Windows 認証ログイン情報の作成は、T-SQL を使用する場合のみ、サポートされます。SQL Server Management Studio では、GUI を使用してログイン情報を作成することはできません。

3.    Windows 認証を使用して DB インスタンスに接続します。


関連情報

Amazon RDS for SQL Server DB インスタンスでの Windows 認証の使用

セキュリティグループによるアクセス制御

Amazon RDS DB インスタンスに接続できない

Joining your Amazon RDS DB Instances across accounts to a single shared domain (アカウント全体の Amazon RDS DB インスタンスを単一の共有ドメインに参加させる)

Migrating Microsoft SQL Server databases to the AWS Cloud

コメントはありません

関連するコンテンツ