Remote Desktop を使用して Windows Server マネージドインスタンスに接続する - AWS Systems Manager

Remote Desktop を使用して Windows Server マネージドインスタンスに接続する

AWS Systems Manager の一機能 Fleet Manager を使用して、Windows Server (RDP) を使用した Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続できます。Amazon DCV を利用したリモートデスクトップでは、Systems Manager コンソールから直接 Windows Server インスタンスに安全に接続できます。1 つのブラウザウィンドウで最大 4 つまで同時に接続できます。

現在、リモートデスクトップは、Windows Server 2012 RTM 以降を実行しているインスタンスのみで使用できます。リモートデスクトップは言語入力として英語のみをサポートしています。

注記

Fleet Manager リモートデスクトップはコンソール専用サービスで、マネージドインスタンスへのコマンドライン接続はサポートしていません。シェルを介して Windows Server マネージドインスタンスに接続するには、AWS Systems Manager の別の機能である Session Manager を使用できます。詳細については、「AWS Systems Manager Session Manager」を参照してください。

インスタンスが Systems Manager とやり取りできるように AWS Identity and Access Management (IAM) アクセス許可を設定する方法については、「Systems Manager にインスタンスのアクセス許可を設定する」を参照してください。

環境のセットアップ

リモートデスクトップを使用する前に、環境が以下の要件を満たしていることを確認します。

  • マネージドノードの設定

    Amazon EC2 インスタンスが Systems Manager のマネージドノードとして設定されていることを確認してください。

  • SSM Agent の最小バージョン

    ノードが SSM Agent バージョン 3.0.222.0 以降を実行していることを確認します。ノードで実行されているエージェントのバージョンの確認についての詳細は、「SSM Agent バージョン番号の確認」を参照してください。SSM Agent のインストールまたは更新については、「SSM Agent の使用」を参照してください。

  • RDP ポート設定

    リモート接続を受け入れるには、Windows Server ノード上の Remote Desktop Services サービスがデフォルトの RDP ポート 3389 を使用する必要があります。これは、AWS によって提供される Amazon Machine Images (AMIs) のデフォルト設定です。リモートデスクトップを使用するためにインバウンドポートを開く必要は明示的にありません。

  • キーボード機能用 PSReadLine モジュールバージョン

    PowerShell でキーボードが正しく機能することを確認するには、Windows Server 2022 を実行しているノードに PSReadLine モジュールバージョン 2.2.2 以降がインストールされていることを確認してください。古いバージョンを使用している場合は、以下のコマンドを使用して、必要なバージョンをインストールできます。

    Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

    NuGet パッケージプロバイダーがインストールされたら、次のコマンドを実行します。

    Install-Module ` -Name PSReadLine ` -Repository PSGallery ` -MinimumVersion 2.2.2 -Force
  • Session Manager の設定

    リモートデスクトップを使用する前に、Session Manager のセットアップの前提条件を完了する必要があります。リモートデスクトップを使用してインスタンスに接続すると、AWS アカウント および AWS リージョン に定義されているすべてのセッション設定が適用されます。詳細については、「Session Manager を設定する」を参照してください。

    注記

    Amazon Simple Storage Service (Amazon S3) を使用して、Session Manager アクティビティをログに記録すると、リモートデスクトップ接続によって bucket_name/Port/stderr で次のエラーが発生します。このエラーは正常な動作であり、無視してもかまいません。

    Setting up data channel with id SESSION_ID failed: failed to create websocket for datachannel with error: CreateDataChannel failed with no output or error: createDataChannel request failed: unexpected response from the service <BadRequest>
    <ClientErrorMessage>Session is already terminated</ClientErrorMessage>
    </BadRequest>

リモートデスクトップの IAM 許可の設定

Systems Manager と Session Manager に必要な IAM アクセス許可に加えて、使用するユーザーまたはロールには、接続を開始するためのアクセス許可が必要です。

接続を開始するためのアクセス許可

コンソールで EC2 インスタンスへの RDP 接続を作成するには、次のアクセス許可が必要です。

  • ssm-guiconnect:CancelConnection

  • ssm-guiconnect:GetConnection

  • ssm-guiconnect:StartConnection

接続を一覧表示するためのアクセス許可

コンソールで接続の一覧を表示するには、次のアクセス許可が必要です。

ssm-guiconnect:ListConnections

以下は、リモートデスクトップとのさまざまなタイプの対話を許可するためにユーザーまたはロールにアタッチできる IAM ポリシーの例です。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EC2", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:GetPasswordData" ], "Resource": "*" }, { "Sid": "SSM", "Effect": "Allow", "Action": [ "ssm:DescribeInstanceProperties", "ssm:GetCommandInvocation", "ssm:GetInventorySchema" ], "Resource": "*" }, { "Sid": "TerminateSession", "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}" ] } } }, { "Sid": "SSMStartSession", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:account-id:instance/*", "arn:aws:ssm:*:account-id:managed-instance/*", "arn:aws:ssm:*::document/AWS-StartPortForwardingSession" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "ssm-guiconnect.amazonaws.com" } } }, { "Sid": "GuiConnect", "Effect": "Allow", "Action": [ "ssm-guiconnect:CancelConnection", "ssm-guiconnect:GetConnection", "ssm-guiconnect:StartConnection", "ssm-guiconnect:ListConnections" ], "Resource": "*" } ] }
注記

次の IAM ポリシーでは、SSMStartSession セクションで ssm:StartSession アクションの Amazon リソースネーム (ARN) が必要になります。図に示すように、指定した ARN には AWS アカウント ID は必要ありません。アカウント ID を指定すると、Fleet Manager は AccessDeniedException を返します。

ポリシーの例の下部にある AccessTaggedInstances セクションでは ssm:StartSession の ARN も必要です。これらの ARN には AWS アカウント ID を指定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EC2", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:GetPasswordData" ], "Resource": "*" }, { "Sid": "SSM", "Effect": "Allow", "Action": [ "ssm:DescribeInstanceProperties", "ssm:GetCommandInvocation", "ssm:GetInventorySchema" ], "Resource": "*" }, { "Sid": "SSMStartSession", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*::document/AWS-StartPortForwardingSession" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "ssm-guiconnect.amazonaws.com" } } }, { "Sid": "AccessTaggedInstances", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:account-id:instance/*", "arn:aws:ssm:*:account-id:managed-instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag key": [ "tag value" ] } } }, { "Sid": "GuiConnect", "Effect": "Allow", "Action": [ "ssm-guiconnect:CancelConnection", "ssm-guiconnect:GetConnection", "ssm-guiconnect:StartConnection", "ssm-guiconnect:ListConnections" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SSO", "Effect": "Allow", "Action": [ "sso:ListDirectoryAssociations*", "identitystore:DescribeUser" ], "Resource": "*" }, { "Sid": "EC2", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:GetPasswordData" ], "Resource": "*" }, { "Sid": "SSM", "Effect": "Allow", "Action": [ "ssm:DescribeInstanceProperties", "ssm:GetCommandInvocation", "ssm:GetInventorySchema" ], "Resource": "*" }, { "Sid": "TerminateSession", "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userName}" ] } } }, { "Sid": "SSMStartSession", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ssm:*:*:managed-instance/*", "arn:aws:ssm:*:*:document/AWS-StartPortForwardingSession" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "ssm-guiconnect.amazonaws.com" } } }, { "Sid": "SSMSendCommand", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ssm:*:*:managed-instance/*", "arn:aws:ssm:*:*:document/AWSSSO-CreateSSOUser" ] }, { "Sid": "GuiConnect", "Effect": "Allow", "Action": [ "ssm-guiconnect:CancelConnection", "ssm-guiconnect:GetConnection", "ssm-guiconnect:StartConnection", "ssm-guiconnect:ListConnections" ], "Resource": "*" } ] }

リモートデスクトップ接続の認証

リモート接続を確立するときは、Windows 認証情報、またはインスタンスに関連付けられている Amazon EC2 キーペア (.pem ファイル) を使用して、認証を行えます。キーペアの詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 キーペアおよび Windows インスタンス」を参照してください。

または、AWS IAM Identity Center を使用して AWS Management Console に認証されている場合は、追加の認証情報を指定せずにインスタンスに接続できます。IAM アイデンティティセンターを使用したリモート接続認証を許可するポリシーの例については、「リモートデスクトップの IAM 許可の設定」を参照してください。

開始する前に

リモートデスクトップを使用して接続を開始する前に、IAM Identity Center 認証を使用する際には、以下の条件に注意してください。

  • リモートデスクトップは、IAM アイデンティティセンターを有効にしたのと同じ AWS リージョン のノードの IAM アイデンティティセンター認証をサポートします。

  • リモートデスクトップは、最大 16 文字の IAM アイデンティティセンターのユーザー名をサポートします。

  • リモートデスクトップは、英数字と特殊文字 . - _ で構成される IAM アイデンティティセンターユーザー名をサポートします。

    重要

    + = , の文字が含まれる IAM アイデンティティセンターユーザー名では、接続が失敗します。

    IAM アイデンティティセンターはユーザー名でこれらの文字をサポートしていますが、Fleet Manager RDP 接続ではサポートされていません。

    さらに、IAM アイデンティティセンターユーザー名に 1 つ、または複数の @ 記号が含まれている場合、Fleet Manager は、@ が E メールアドレスのドメイン部分の先頭に使用されているかどうかにかかわらず、最初の @ 記号とその後に続くすべての文字を無視します。例えば、diego_ramirez@example.com という IAM アイデンティティセンターユーザー名の場合は @example.com 部分が無視され、Fleet Manager のユーザー名は diego_ramirez になります。diego_r@mirez@example.com の場合は、Fleet Manager が @mirez@example.com を無視し、Fleet Manager のユーザー名は diego_r になります。

  • IAM アイデンティティセンターを使用して接続を認証すると、Windows リモートデスクトップはインスタンスのローカル管理者グループにローカルユーザーを作成します。このユーザーは、リモート接続が終了した後も存続します。

  • リモートデスクトップでは、Microsoft Active Directory ドメインコントローラーであるノードの IAM アイデンティティセンターの認証は許可されません。

  • リモートデスクトップでは、Active Directory ドメインに参加しているノードに IAM アイデンティティセンターの認証を使用できますが、お勧めしません。この認証方法ではユーザーに管理者許可を付与しますが、ドメインによって付与されるより制限の厳しい許可よりも優先される可能性があります。

IAM Identity Center 認証のサポート対象リージョン

IAM Identity Center 認証を使用する Remote Desktop 接続は、次の AWS リージョン でサポートされています。

  • 米国東部 (オハイオ) (us-east-2)

  • 米国東部 (バージニア北部) (us-east-1)

  • 米国西部 (北カリフォルニア) (us-west-1)

  • 米国西部 (オレゴン) (us-west-2)

  • アフリカ (ケープタウン) (af-south-1)

  • アジアパシフィック (香港) (ap-east-1)

  • アジアパシフィック (ムンバイ) (ap-south-1)

  • アジアパシフィック (東京) (ap-northeast-1)

  • アジアパシフィック (ソウル) (ap-northeast-2)

  • アジアパシフィック (大阪) (ap-northeast-3)

  • アジアパシフィック (シンガポール) (ap-southeast-1)

  • アジアパシフィック (シドニー) (ap-southeast-2)

  • アジアパシフィック (ジャカルタ) (ap-southeast-3)

  • カナダ (中部) (ca-central-1)

  • ヨーロッパ (フランクフルト) (eu-central-1)

  • 欧州 (ストックホルム) (eu-north-1)

  • 欧州 (アイルランド) (eu-west-1)

  • ヨーロッパ (ロンドン) (eu-west-2)

  • 欧州 (パリ) (eu-west-3)

  • イスラエル (テルアビブ) (il-central-1)

  • 南米 (サンパウロ) (sa-east-1)

  • 欧州 (ミラノ) (eu-south-1)

  • 中東 (バーレーン) (me-south-1)

  • AWS GovCloud (米国東部) (us-gov-east-1)

  • AWS GovCloud (米国西部) (us-gov-west-1)

リモート接続時間と同時実行

アクティブなリモートデスクトップ接続には、次の条件が適用されます。

  • 接続時間

    デフォルトでは、リモートデスクトップ接続は 60 分後に切断されます。接続が切断されないようにするには、切断される前に [セッションを更新] を選択して、継続時間タイマーをリセットできます。

  • 接続タイムアウト

    リモートデスクトップ接続は、10 分以上アイドル状態になると切断されます。

  • 同時接続

    デフォルトでは、同じ AWS アカウント と AWS リージョン で最大 5 つのアクティブなリモートデスクトップ接続を設定できます。最大 25 の同時接続のサービスクォータの引き上げをリクエストするには、「Service Quotas ユーザーガイド」の「クォータ引き上げのリクエスト」を参照してください。

リモートデスクトップを使用してマネージドノードへ接続する

ブラウザによるテキストのコピー/貼り付けサポート

Google Chrome と Microsoft Edge ブラウザを使用すると、マネージドノードからローカルマシンに、および、ローカルマシンから接続しているマネージドノードに、テキストをコピーして貼り付けることができます。

Mozilla Firefox ブラウザでは、マネージドノードからローカルマシンにのみテキストをコピーして貼り付けることができます。ローカルマシンからマネージドノードへのコピーはサポートされていません。

Fleet Manager リモートデスクトップを使用してマネージドノードに接続するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Fleet Manager] を選択します。

  3. 接続するノードを選択します。チェックボックスまたはノード名を選択できます。

  4. [ノードアクション] メニューで、[リモートデスクトップとの接続] を選択します。

  5. 必要な [Authentication type] (認証タイプ) を選択します。[ユーザー認証情報] を選択した場合は、接続するノード上の Windows ユーザーアカウントのユーザー名とパスワードを入力します。[キーペア] を選択した場合は、次のいずれかの方法を使用して認証を行うことができます。

    1. インスタンスに関連付けられた PEM キーをローカルファイルシステムから選択する場合は、[ローカルマシンを検索] を選択します。

      ~ または ~

    2. PEM ファイルの内容をコピーして指定されたフィールドに貼り付ける場合は、[キーペアの内容を貼り付け] を選択します。

  6. [Connect] (接続) を選択します。

  7. 希望のディスプレイ解像度を選択するには、[アクション] メニューで [レゾリューション] を選択し、次の中から選択します。

    • 自動的に適応

    • 1920 x 1080

    • 1400 x 900

    • 1366 x 768

    • 800 x 600

    [自動的に適応] オプションは検出された画面サイズに基づいて最適な解像度を決定します。

現在および完了した接続に関する情報の表示

Systems Manager コンソールの [Fleet Manager] セクションを使用して、アカウントで作成された RDP 接続に関する情報を表示できます。フィルターのセットを使用して、表示される接続のリストを時間範囲、特定のインスタンス、接続を作成したユーザー、特定のステータスの接続に制限することができます。コンソールには、現在アクティブなすべての接続と過去のすべての接続に関する情報を示すタブも用意されています。

現在の接続と完了した接続に関する情報を表示するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Fleet Manager] を選択します。

  3. [アカウント] > [リモートデスクトップ (RDP) との接続] の順に選択します。

  4. 次のいずれかのタブを選択します。

    • アクティブな接続

    • 接続履歴

  5. 表示される接続結果のリストをさらに絞り込むには、検索 ( The Search icon ) ボックスに 1 つまたは複数のフィルターを指定します。フリーテキスト検索用語を入力することもできます。