RDP を使用して EC2 Windows インスタンスに接続する際の認証エラーをトラブルシューティングするにはどうすればよいですか?

最終更新日: 2021 年 06 月 29 日

リモートデスクトッププロトコル (RDP) を使用して Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスにログインできません。次のいずれかの認証エラーメッセージを受信しています:

  • 「認証エラーが発生しました。ローカルセキュリティ機関に連絡できません。」
  • 「接続しようとしているリモートコンピュータにはネットワークレベル認証 (NLA) が必要ですが、Windows ドメインコントローラーに接続して NLA を実行することはできません。リモートコンピュータの管理者である場合、[システムプロパティ] ダイアログボックスの リモート タブのオプションを使用して NLA を無効にできます。」

簡単な説明

上記のエラーは、次の二つのシナリオで発生する可能性があります。

  • サーバーでネットワークレイヤー認証 (NLA) が有効になっています。
  • RDP ログイン中に、ドメインと EC2 インスタンスがこのドメインに参加している間の信頼関係が失われる

解決方法

サーバー上で NLA が有効になっている

NLA エラーは、ドメイン認証情報が認証されていないためにインスタンスがドメインコントローラーへの接続を失った場合に良く発生します。この問題を修正するには、AWS Systems Manager の AWSSupport-TroubleshootRDP オートメーションドキュメントを使用するかまたは、インスタンスで NLA を無効にする

AWSSupport-TroubleshootRDP のオートメーションドキュメント

AWSSupport-TroubleshootRDP オートメーションドキュメントでは、一般な設定を変更でき、Amazon EC2Windows インスタンス(例えばRDPポート、ネットワークレイヤー認証(NLA)、および Windows ファイアウォールプロファイル)RDP の接続に影響する可能性がある。AWSSupport-TroubleshootRDP ドキュメントを使用したトラブルシューティングの手順については、AWSSupport-TroubleshootRDP を参照してください。

インスタンスで NLA を無効にする

次の一つ方法を使用して、到達不能インスタンスの NLA を無効にすることができます。

  • システムマネージャ AWS-runPowerShellScript ドキュメントを使用して NLA を無効にします。
  • 手動でレジストリの変更をオフラインで行います。

注意: NLA を無効するには、レジストリの変更が必要です。開始する前に、インスタンスから Amazon マシンイメージ (AMI) を作成します。これにより、レジストリに変更を加える前にバックアップが作成されます。

システムマネージャを使用して NLA を無効にする AWS-RunPowerShellScript ドキュメント

AWS Systems Manager の AWS-RunPowerShellScript Run Command を使用してレジストリキーを追加するには、以下のステップを実行します。

注意: インスタンスには AWS Systems Manager SSM Agent がインストールされている必要があります。インスタンスには、システムマネージャに対するアクセス権限を持つ AWS ID およびアクセス管理 (IAM) ロール (Amazonec2RoleForSSM) があり、システムマネージャのダッシュボードで「オンライン」を表示している必要があります。詳細については、Systems Manager の前提条件を参照してください。

1.    AWS Systems Manager コンソールを開きます。

2.    ナビゲーションペインの [インスタンスとノード] セクションで、[コマンドの実行] を選択します。

3.    [コマンドドキュメント] で、[AWS-RunPowerShellScript] を選択してください。

4.    [コマンドのパラメータ] に、次のコマンドを入力してください。

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal
Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f
reg add
"HKLM\SYSTEM\CurrentControlSet\Control\Terminal
Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal
Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD
/d 0 /f

5.    [ターゲット] で、[手動でインスタンスを選択するため] を選択してください。

6.    インスタンスを選択してください。

7.    [<t1>Run</t1>] (実行) を選択します。

8.    [全体的なステータス] が [成功] に変わるまで待ちます。2 分後にページを更新してください。

9.    インスタンスを再起動します。

10.    RDP を使用してインスタンスにログインします。

手動でレジストリの変更をオフラインで行う

  1. 接続できないインスタンスを停止し、なおルートボリュームをデタッチします
  2. 停止元のインスタンスと同じアベイラビリティーゾーンで、新しい インスタンスを起動します。これがレスキューインスタンスになります。接続できないインスタンスとは異なる Windows バージョンを起動するのがベストプラクティスです。これにより、ディスク署名の問題が回避されます。
  3. デタッチされたボリュームを /dev/xvdf としてレスキューインスタンスにアタッチします
  4. RDP を使用してレスキューインスタンスに接続し ディスク管理 でアタッチしたボリュームをオンラインにします。
  5. regedit.exe を実行して、レジストリエディタを開きます。
  6. HKEY_LOCAL_MACHINE を選択し、次にファイル選択しHive*をロード
  7. 添付されたボリュームの Windows フォルダに移動し、 SYSTEM ファイルを選択します。デフォルトのPAT*は D:\Windows\System32\config です。
  8. SYSTEM ファイルに名前を入力します。たとえば、 badsys
  9. HKEY_LOCAL_MACHINE の下に badsys が表示されるようになりました。badsys の下で、 ControlSet001コントロールターミナルサーバー Winstations RDP-TCP に移動します。
  10. SecurityLayer をダブルクリックし、その値データを 0 に設定します。次に、[UserAuthentication] を選択し、その値データを 0 に設定します。
  11. 上にスクロールして、 badsysファイル Hive のアンロードを選択します
  12. Hive をアンロード後、ディスクマネージャを開き、ディスクをオフラインにします。
  13. レスキューインスタンスからボリュームをデタッチし、ルートボリューム (/dev/sda1) として接続できないインスタンスにアタッチします。
  14. インスタンスを起動し、RDP をテストします。

RDP ログイン中に、ドメインと EC2 インスタンスがこのドメインに参加している間の信頼関係が失われる

キャッシュされたユーザー認証情報を使用して、接続できなインスタンスにログインできます。

前提条件

  • EC2 インスタンスに対して正常に認証できるローカルアカウント。
  • (オプション) インスタンスがドメインコントローラーと正常に通信できた場合は、少なくとも 1 つのドメインアカウントがログインしている必要があります。 ドメインアカウントが機能するには、ドメインアカウントの認証情報をサーバーにキャッシュする必要があります。したがって、ローカルアカウントの使用を常にお勧めします。
  • インタラクティブログオンを使用するには、キャッシュする以前のログオンの数 (ドメインコントローラーが使用できない場合) を少なくとも 1 に設定してください。または、ポリシーをデフォルト値の 10 に設定できます。デフォルトでは、このポリシーは GPO で定義されてない、サーバーのローカルポリシーが使用されます。

キャッシュされたユーザー認証情報を使用してログインするには、次の手順を仕様してください。

  1. Amazon EC2 コンソールを開き、セキュリティグループを選択します。
  2. セキュリティグループの作成 を選択し、名前と説明を追加してください。
  3. セキュリティグループのルール下 で、インバウンド-ルールの追加 を選択してください。
  4. RDP に入力します。
  5. 出典フィールドに、RDP の送信元の IP アドレスを入力します。
  6. アウトバウンドルール で、すべてのアウトバウンドアクセスを削除し、作成 を選択します。
  7. 接続できないインスタンスを選択し、アクションネットワークセキュリティグループの変更 の順に選択してください。既存のセキュリティグループをすべて削除し、作成したセキュリティグループのみを割り当てください。
  8. 通常のドメインアカウントを使用して EC2 インスタンスへの RDP。すべてのアウトバウンドアクセスが EC2 から削除されるため、RDP はサーバー内に格納されているキャッシュされた認証情報を使用します。

注意:最初に、ドメインコントローラに対して認証が試行されます。ただし、EC2 からのアウトバウンドアクセスがないため、認証は最終的にサーバー内のキャッシュされた認証情報をチェックします。キャッシュされたクレデンシャルを使用して、認証の再試行とログインは成功します。ログイン後、セキュリティグループ設定を元の状態に戻して、ドメインに関する問題の修正を続行できます。

追加のトラブルシューティング


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?