使用 Remote Desktop 連線至 Windows Server 受管執行個體 - AWS Systems Manager

使用 Remote Desktop 連線至 Windows Server 受管執行個體

您可以使用 Remote Desktop Protocol (RDP) 透過 AWS Systems Manager 的一項功能 Fleet Manager 連線至 Windows Server Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。Fleet Manager由 Amazon DCV 提供支援的遠端桌面,可讓您直接從 Systems Manager 主控台安全連線至 Windows Server 執行個體。在單一瀏覽器視窗中,您最多可同時建立四條連線。

目前您只能在執行 Windows Server 2012 RTM 或更新版本的執行個體上使用遠端桌面。遠端桌面僅支援英文語言輸入。

注意

Fleet Manager 遠端桌面是僅限主控台的服務,不支援與受管執行個體的命令列連線。若要透過 shell 連線至 Windows Server 受管執行個體,可以使用 Session Manager (AWS Systems Manager 的另一個功能)。如需詳細資訊,請參閱AWS Systems Manager Session Manager

如需有關設定 AWS Identity and Access Management (IAM) 許可以讓執行個體能够與 Systems Manager 互動的詳細資訊,請參閱設定 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 Resource Name (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 key pairs and Windows instances

或者,如果您已使用 AWS IAM Identity Center 向 AWS Management Console 驗證身分,您可以直接連接至執行個體,而無需提供額外憑證。如需允許使用 IAM Identity Center 進行遠端連線身份驗證的政策範例,請參閱 為遠端桌面設定 IAM 許可

開始之前

開始使用遠端桌面連線之前,請留意下列使用 IAM Identity Center 驗證的條件。

  • 遠端桌面支援在您啟用 IAM Identity Center 所在 AWS 區域 的節點的 IAM Identity Center 身分驗證。

  • 遠端桌面支援最多 16 個字元的 IAM Identity Center 使用者名稱。

  • 遠端桌面支援的 IAM Identity Center 使用者名稱可包含英數字元和下列特殊字元:.-_

    重要

    使用包含下列字元的 IAM Identity Center 使用者名稱無法成功連線:+ = ,

    IAM Identity Center 的使用者名稱支援這些字元,但 Fleet Manager RDP 連線則不支援。

    此外,如果 IAM Identity Center 使用者名稱包含一個或多個 @ 符號,Fleet Manager 會忽略第一個 @ 符號及其後面的所有字元,無論 @ 是否引入電子郵件地址的網域部分。例如,對於 IAM Identity Center 使用者名稱 diego_ramirez@example.com@example.com 部分將被忽略,且 Fleet Manager 的使用者名稱會變成 diego_ramirez。對於 diego_r@mirez@example.com,Fleet Manager 會忽略 @mirez@example.com,且 Fleet Manager 的使用者名稱會變成 diego_r

  • 使用 IAM Identity Center 驗證連線時,遠端桌面會在執行個體的 Local Administrators 群組中建立一個本機 Windows 使用者。遠端連線結束後,此使用者仍將存在。

  • 遠端桌面不允許屬於 Microsoft Active Directory 網域控制站的節點使用 IAM Identity Center 驗證。

  • 雖然遠端桌面允許您針對已加入 Active Directory 網域的節點使用 IAM Identity Center 驗證,但我們不建議您這樣做。此驗證方法會將系統管理許可授予使用者,從而導致使用者可能會覆寫網域授予的更嚴格許可。

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. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 Fleet Manager

  3. 選擇您要連線到的節點。您可以選取核取方塊或節點名稱。

  4. 節點動作選單中,選擇使用遠端桌面連線

  5. 選擇您偏好的 Authentication type (身分驗證類型)。如果您選擇使用者憑證,請在連線的節點上輸入 Windows 使用者帳戶的使用者名稱和密碼。如果選擇金鑰對,您可以使用以下其中一種方法提供身份驗證憑證:

    1. 如果要從本機檔案系統選取與執行個體相關聯的 PEM 金鑰,請選擇瀏覽本機電腦

      - 或 -

    2. 如果您要複製 PEM 檔案的內容並將其貼到提供的欄位中,請選擇貼上金鑰對內容

  6. 選取連線

  7. 若要選擇您偏好的顯示解析度,請在動作選單中選擇解析度,然後從下列選項中選取:

    • 自動調整

    • 1920 x 1080

    • 1400 x 900

    • 1366 x 768

    • 800 x 600

    自動調整選項會根據偵測到的螢幕大小自動設定解析度。

檢視有關目前和已完成連線的資訊

您可以使用 Systems Manager 主控台的 Fleet Manager 區段來檢視帳戶中已進行 RDP 連線的相關資訊。可以使用一組篩選條件,將顯示的連線清單限制為時間範圍、特定執行個體、建立連線的使用者,以及特定狀態的連線。主控台也提供索引標籤,顯示有關所有目前作用中連線和所有過去連線的資訊。

檢視有關目前和已完成連線的資訊
  1. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 Fleet Manager

  3. 選擇帳戶管理、與遠端桌面連線

  4. 選擇下列其中一個索引標籤:

    • 作用中連線

    • 連線歷史記錄

  5. 若要進一步縮小顯示的連線結果清單範圍,請在搜尋 ( The Search icon ) 方塊中指定一個或多個篩選條件。也可以輸入任意文字搜尋詞彙。