EC2 Windows インスタンスを AWS Managed Microsoft AD ディレクトリにシームレスに結合できないのはなぜですか?
Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスを Microsoft Active Directory 用 AWS Directory Service にシームレスに結合させることができません。
解決策
EC2 Windows インスタンスを AWS Managed Microsoft AD ディレクトリにシームレスに結合させることができない理由を解決するには、次のステップを実行してください。
**注:**AWS Systems Manager の Amazon Virtual Private Cloud (Amazon VPC) インターフェイスエンドポイントでは、Windows Server インスタンスをドメインに結合させるリクエストに制限があります。詳細については、「VPC エンドポイントの制約と制限」を参照してください。
OS とマシンタイプを確認する
AWS Systems Manager がお使いのオペレーティングシステム (OS) とマシンタイプをサポートしていることを確認してください。
IAM ロールポリシーを確認する
AWS Identity and Access Management (IAM) ロールに正しい管理ポリシーがアタッチされていることを確認するには、次の手順を実行します。
- IAM コンソールを開きます。
- ナビゲーションペインで、[ロール] を選択します。
- インスタンスに関連付けられている IAM ロールの [ロール名] を選択し、[概要] ページを開きます。
- [アクセス許可] タブの [アクセス許可ポリシー許可] で、AmazonSSMDirectoryServiceAccess および AmazonSSMManagedInstanceCore ポリシーがアタッチされていることを確認します。
- アクセス許可ポリシーが見つからない場合は、[アクセス許可を追加]、[ポリシーをアタッチ] の順に選択します。ポリシー名を検索し、検索結果から正しいポリシーを選択して、[アクセス許可を追加] を選択します。
必要なポートが開いていることを確認する
ディレクトリのセキュリティグループでポート 53、88、389 が開いていることを確認します。ディレクトリのセキュリティグループを見つけて確認するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインで [セキュリティグループ] を選択します。
- セキュリティグループリストをセキュリティグループ名でソートして、directoryid がご自身のディレクトリ ID である directoryid_controllers を探します。たとえば、d-1234567891_controllers などです。
- ディレクトリコントローラーのセキュリティグループのセキュリティグループ ID を選択します。
- [インバウンドルール] タブと [アウトバウンドルール] タブを開いて、ポート情報を確認します。
**注:**Microsoft の PortQry コマンドラインツールを使用して、必要なポートへのドメインの接続をテストします。
インスタンスの DNS サーバーがディレクトリの DNS サーバーを指していることを確認します。
インスタンスのネットワークアダプタ設定を表示するには、次の AWS コマンドラインインターフェイス (AWS CLI) コマンドを実行します。
**注:**AWS CLI コマンドを実行する際にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
ipconfig /all
ディレクトリの DNS サーバーを検索するには、次の手順を実行します。
- Directory Service コンソールを開きます。
- ナビゲーションペインで、[ディレクトリ]を選択します。
- [ディレクトリ ID] を選択し、[ディレクトリ詳細] ページを開きます。
- DNS アドレスを確認してください。
インスタンスからドメイン名を解決できることを確認します
インスタンスからドメイン名を解決できることを確認するには、以下のコマンドのいずれかを実行します。
**注:**コマンドで、domainname を自分のドメイン名に置き換えてください。
PowerShell を使用する:
Resolve-DnsName domainname
コマンドプロンプトを使用する:
nslookup domainname
DNS サーバーの設定を確認する
インスタンスの DNS サーバーが正しく設定されていること、およびインスタンスが DNS サーバーにアクセスできることを確認するには、次の Nltest Window のコマンドを実行します。
**注:**コマンドでは、domainnameを NetBIOS 名ではなく DNS 名に置き換えてください。たとえば、ドメインが example.com の場合、DNS 名は example.com で、NetBIOS 名は example です。
nltest /dsgetdc:domainname /force
インスタンスがマネージドインスタンスであることを確認する
インスタンスがマネージドインスタンスであることを確認するには、次の手順を実行します。
- Systems Manager コンソールを開きます。
- ナビゲーションペインで、[フリートマネージャー] を選択します。
- [フリートマネージャー] ページで、[マネージドノード] タブを選択します。
- インスタンスがリストに表示され、オンラインであることを確認します。
インスタンスに State Manager が関連付けられていることを確認する
awsconfig_Domain_directoryid_domainname というドキュメントに、インスタンス用に作成された State Manager の関連付けがあることを確認するには、次の手順を実行します。
**注:**ドキュメント名の directoryid はディレクトリ ID で、domainname はドメイン名です。
- Systems Manager コンソールを開きます。
- ナビゲーションペインで、[ステートマネージャー] を選択します。
- 検索バーで [インスタンス ID] と [等しい] を選択し、インスタンス ID を入力します。
- アソシエーション ID を選択します。
- ステータスが「成功」であることを確認し、[実行履歴] を選択して関連付けの実行を確認します。
- ステータスが「失敗」の場合は、[実行 ID]、[出力] を選択して出力の詳細を確認し、問題の原因を特定します。
- 「ステータス」 が「保留中」の場合は、これまでのトラブルシューティング手順をすべて実行したことを確認してください。次に、EC2 インスタンスのログでエラーメッセージがないか確認して、問題の原因を特定します。手順については、「ログを確認してエラーメッセージを検索する」セクションを参照してください。
インスタンスをドメインに手動で結合できることを確認します。
アカウントに、コンピュータオブジェクトをドメインに追加するために必要なアクセス許可があることを確認します。詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。
**注:**新しい EC2 Windows インスタンスを作成するには、Microsoft のツール Sysprep を使用して標準化された Amazon マシンイメージ (AMI) を作成します。
シームレスなドメイン結合が成功したことを確認する
トラブルシューティングの手順で問題が解決したことを確認するには、ドメインに再結合してみます。
- Systems Manager コンソールを開きます。
- ナビゲーションペインで、[ステートマネージャー] を選択します。
- ドメインに結合するために作成した関連付けを選択し、[関連付けを今すぐ適用] を選択します。
- ステータスが 「成功」であることを確認します。
ログを確認してエラーメッセージを見つけてください
それでもドメインに結合できない場合は、インスタンスの次のログでエラーメッセージを検索してください。
SSM エージェントログを使用する:
AWS Systems Manager Agent (SSM Agent) のログを確認するには、%PROGRAMDATA%\Amazon\SSM\Logs\ にアクセスしてください。
Netsetup.log ファイルを使用する:
ログファイルを開くには、コマンドプロンプトで次のコマンドを実行します。
%windir%\debug\netsetup.log
NetSetup.log 出力の各ポートで予想されるエラーコードと動作
TCP 88 - Kerberos 認証:
NetUseAdd to \\serverDC1.example.com\IPC$ returned 64 NetpJoinDomainOnDs: status of connecting to dc '\\serverDC1.example.com':0x40 NetpJoinDomainOnDs: Function exits with status of: 0x40 NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'example.com' returned 0x0 NetpJoinDomainOnDs: NetpResetIDNEncoding on 'example.com': 0x0 NetpDoDomainJoin: status: 0x40
TCP 389 — LDAP:
NetpLdapBind: ldap_bind failed on serverDC1.example.com: 81: Server Down NetpJoinCreatePackagePart: status:0x3a. NetpJoinDomainOnDs: Function exits with status of: 0x3a NetpJoinDomainOnDs: status of disconnecting from '\\serverDC1.example.com': 0x0 NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'example.com' returned 0x0 NetpJoinDomainOnDs: NetpResetIDNEncoding on 'example.com': 0x0 NetpDoDomainJoin: status: 0x3a
UDP 389 — LDAP:
NetpCheckDomainNameIsValid [ Exists ] for 'example.com' returned 0x54b NetpJoinDomainOnDs: Domain name is invalid, NetpValidateName returned: 0x54b NetpJoinDomainOnDs: Function exits with status of: 0x54b NetpJoinDomainOnDs: NetpResetIDNEncoding on '(null)': 0x0 NetpDoDomainJoin: status: 0x54b
UDP 53 — DNS:
UDP DNS トラフィックが許可されていない場合、ドメインへの結合ワークフローは NetSetup.log ファイルに出力を作成しません。DNS サーバーをテストするには、次の PowerShell コマンドを実行します。
**注:**コマンドで、YourIPAddress を DNS サーバーの IP アドレスに置き換えます。
Test-DnsServer -IPAddress YourIPAddress
NetSetup.log エラーコードの詳細については、「Windows ベースのコンピューターをドメインに参加させるときに発生するエラーのトラブルシューティング方法 」を参照してください。
イベントビューアーログを使用する:
- Windows タスクバーで、[検索] を選択し、「イベントビューアー」と入力し、[イベントビューアー]を選択してツールを開きます。
- ナビゲーションペインで、[Windows ログ]を展開し、[システム] を選択します。
- [日付と時刻] 列を確認して、ドメインへの結合操作中に発生したイベントを特定します。
関連情報
関連するコンテンツ
- 質問済み 2ヶ月前lg...