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) インスタンスに接続できます。NICE 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-Module ` -Name PSReadLine ` -Repository PSGallery `-MinimumVersion 2.2.2
  • 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 許可に加えて、コンソールへのアクセスに使用するユーザーまたはロールは、以下のアクションも許可している必要があります。

  • ssm-guiconnect:CancelConnection

  • ssm-guiconnect:GetConnection

  • ssm-guiconnect:StartConnection

以下は、リモートデスクトップとのさまざまなタイプの対話を許可するためにユーザーまたはロールにアタッチできる 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": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "ForAnyValue:StringEquals": { "aws:CalledVia": "ssm-guiconnect.amazonaws.com" } } }, { "Sid": "GuiConnect", "Effect": "Allow", "Action": [ "ssm-guiconnect:CancelConnection", "ssm-guiconnect:GetConnection", "ssm-guiconnect:StartConnection" ], "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": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "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" ], "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": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "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" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }, { "Sid": "GuiConnect", "Effect": "Allow", "Action": [ "ssm-guiconnect:CancelConnection", "ssm-guiconnect:GetConnection", "ssm-guiconnect:StartConnection" ], "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 アイデンティティセンターを使用して接続を認証すると、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

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