AWS アカウントで Microsoft Active Directory 用の AWS Directory Service を設定しました。Microsoft SQL Server DB インスタンス用の Amazon Relational Database Service (Amazon RDS) を作成する際に問題が発生します。
簡単な説明
SQL Server 用 Amazon RDS DB インスタンスを作成する際、次のいずれかの問題が発生する可能性があります。
- Microsoft Managed AD を使用できない。
- Failed to join a host to a domain というエラーメッセージが表示されたり、Amazon RDS コンソールでディレクトリのステータスが Failed と表示されたりする。
- Windows 認証を使用して DB インスタンスにログインできない。
Amazon RDS for SQL Server DB インスタンスでは、Windows 認証を複数の AWS アカウントと Amazon 仮想プライベートクラウド (Amazon VPC) で使用できます。AWS Managed Microsoft AD ディレクトリを複数のアカウントと VPC で共有して、ディレクトリ対応のデータベースワークロードを管理することもできます。ただし、RDS for SQL Server DB インスタンスは、AWS Managed Microsoft AD ディレクトリと同じ AWS リージョンに配置する必要があります。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
DB インスタンスを作成する際、AWS Managed Microsoft AD が表示されないか、使用できない
重要: AWS Managed Microsoft AD を Amazon RDS コンソールに表示させるには、マネージドドメインのタイプは AWS Managed Active Directory である必要があります。
AWS Managed Microsoft AD が DB インスタンスとは異なるリージョンに置かれている場合、DB インスタンスを作成または変更する際、そのディレクトリは表示されません。この問題を解決するには、DB インスタンスがディレクトリサービスと同じリージョンにあることを確認してください。
次の手順を実行します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択します。
- DB インスタンスを選択します。
- [概要] セクションに表示される、DB インスタンスが属するリージョンを書き留めます。
- AWS Directory Service コンソールを使用して、ディレクトリサービスが DB インスタンスと同じリージョンにあることを確認します。
AWS Managed Microsoft AD が DB インスタンスとは異なるアカウントにある場合は、Microsoft Managed AD を AWS アカウントと共有してください。次に、DB インスタンスを作成または変更するときに、ディレクトリサービスを一覧表示します。
次の手順を実行します。
- DB インスタンスの作成先となる AWS アカウントとディレクトリを共有します。「AWS Directory Service 管理ガイド」の「AWS Managed Microsoft AD を共有し、シームレスな EC2 ドメイン結合を行う」に記載された手順を実行します。
- DB インスタンス用のアカウントを使用して AWS Directory Service コンソールを開きます。
- ドメインのステータスが SHARED であることを確認します。
- ディレクトリ ID 値を使用して DB インスタンスをドメインに結合します。
DB インスタンスをドメインに結合する際、エラーが発生したり、ディレクトリステータスが「Failed」と表示されたりする
DB インスタンスをドメインに結合する際、次のエラーメッセージが表示される場合があります。 「Failed to join a host to a domain.Domain membership status for instance XXXXXXX has been set to Failed」 または、ディレクトリのステータスが Failed と表示されることがあります。
ドメインを結合できない場合のトラブルシューティングには、次の手順を実行します。
- RDS for SQL Server インスタンスのセキュリティグループが次のアウトバウンドトラフィックを許可するように設定されていることを確認します。
TCP、UDP ポート 53
TCP、UDP ポート 88
TCP、UDP ポート 135
TCP、UDP ポート 389
TCP、UDP ポート 445
TCP、UDP ポート 464
TCP ポート 636
TCP ポート 3268
TCP ポート 3269
TCP ポート 9389
TCP ポート 49152 ~ 65535
UDP ポート 123
UDP ポート 138
- AWS Managed Microsoft AD セキュリティグループの設定が、正しいインバウンドトラフィックを許可していることを確認します。
注: AWS Directory Service は、AWS Managed Microsoft AD の作成時にセキュリティグループを作成します。セキュリティグループに追加されたインバウンドルールとアウトバウンドルールのリストについては、「AWS Managed Microsoft AD で作成されるもの」を参照してください。
- DB インスタンスと AWS Managed Microsoft AD が異なる VPC またはアカウントに置かれていないか確認します。
注: 異なる場合は、DB インスタンスを AWS Managed Microsoft AD に接続するための正しいルートがあることを確認してください。Microsoft Managed AD が DB インスタンスに到達するための正しいルートがあることも確認してください。詳細については、「クロスアカウントおよびクロス VPC ドメイン結合用の RDS サポート」を参照してください。
ドメインの結合に失敗する潜在的な原因を特定して対処した後、次の手順を実行してドメインを DB インスタンスに再度結合します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択します。
- ドメインの結合に失敗した DB インスタンスを選択し、[変更] を選択します。
- [Microsoft SQL Server Windows 認証] セクションの [ディレクトリ] で、None を選択します。
- [すぐに適用] を選択します。
注: 変更が完了すると、DB インスタンスは自動的に再起動します。
- ナビゲーションペインで [データベース] を選択します。
- 該当する DB インスタンスを選択し、**[変更]**を選択します。
- [Microsoft SQL Server Windows 認証] セクションの [ディレクトリ] で該当するディレクトリを選択します。
- [すぐに適用] を選択します。
注: 変更が完了すると、DB インスタンスは再び再起動します。
ModifyDBInstance 操作の呼び出し時に、InvalidParameterCombination エラーが発生する
次のエラーメッセージが表示される場合は、下記の手順を実行します。 「IAM role provided is not valid, check that the role exists and has the correct policies」
- AWS CLI を使用して DB インスタンスにディレクトリサービスをアタッチする際、デフォルトの AWS Identity and Access Management (IAM) ロールである rds-directoryservice-access-role を使用します。
- カスタムロールを使用する場合は、デフォルトポリシー AmazonRDSDirectoryServiceAccess をカスタムロールにアタッチします。
Windows 認証を使用して DB インスタンスにログインできない
Windows 認証には、AWS Managed Microsoft AD ユーザーまたはグループのインスタンスへの SQL ログインが必要です。SQL ログインは、DB インスタンスのプライマリユーザー認証情報を使用します。オンプレミスの Microsoft Active Directory でグループまたはユーザーを使用する場合は、信頼関係を作成する必要があります。
信頼関係を作成するには、次の手順を実行します。
- プライマリユーザーとして、SQL Server Management Studio (SSMS) を使用して DB インスタンスにログインします。
- 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 を使用する必要があります。GUI を使用して SQL SSMS のログインを作成することはできません。
- Windows 認証を使用して DB インスタンスに接続します。
関連情報
RDS for SQL Server で AWS Managed Active Directory を使用する
セキュリティグループによるアクセス制御
Amazon RDS DB インスタンスに接続できない
複数アカウントの Amazon RDS DB インスタンスを 1 つの共有ドメインに結合する
Microsoft SQL Server データベースを AWS クラウドに移行する