

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 使用 Remote Desktop 连接到 Windows Server 托管式实例
<a name="fleet-manager-remote-desktop-connections"></a>

您可以使用 Fleet Manager（Amazon Systems Manager 中的一项工具），通过 Remote Desktop Protocol（RDP）连接到自己的 Windows Server Amazon Elastic Compute Cloud（Amazon EC2）实例。Fleet Manager远程桌面由 [Amazon DCV](https://docs.amazonaws.cn/dcv/latest/adminguide/what-is-dcv.html) 提供支持，可让您直接从 Systems Manager 控制台安全连接到 Windows Server 实例。在一个浏览器窗口中最多可以同时连接四个连接。

Fleet Manager 远程桌面 API 被命名为 Amazon Systems Manager GUI Connect。有关 Systems Manager GUI Connect API 的使用信息，请参阅 *[Amazon Systems Manager GUI ConnectAPI 参考](https://docs.amazonaws.cn/ssm-guiconnect/latest/APIReference)*。

目前，您只能对运行 Windows Server 2012 RTM 或更高版本的实例使用远程桌面。远程桌面仅支持英语输入。

Fleet Manager Remote Desktop 是一项仅适用于控制台的服务，不支持通过命令行连接到托管式实例。要通过 Shell 连接到 Windows Server 托管式实例，可以使用 Session Manager（Amazon Systems Manager 中的另一项工具）。有关更多信息，请参阅 [Amazon Systems Manager Session Manager](session-manager.md)。

**注意**  
RDP 连接的持续时间并不是由 Amazon Identity and Access Management（IAM）凭证的持续时间决定的。相反，连接会持续存在，直到达到最大连接持续时间或空闲时间限制为止（以先到者为准）。有关更多信息，请参阅 [远程连接持续时间和并发](#rdp-duration-concurrency)。

有关配置 Amazon Identity and Access Management（IAM）权限以允许实例与 Systems Manager 交互的信息，请参阅[为 Systems Manager 配置实例权限](setup-instance-permissions.md)。

**Topics**
+ [设置环境](#rdp-prerequisites)
+ [为远程桌面配置 IAM 权限](#rdp-iam-policy-examples)
+ [验证远程桌面连接](#rdp-authentication)
+ [远程连接持续时间和并发](#rdp-duration-concurrency)
+ [Systems Manager GUI Connect 对 Amazon IAM Identity Center 属性的处理](#iam-identity-center-attribute-handling)
+ [使用远程桌面连接到托管式节点](#rdp-connect-to-node)
+ [查看有关当前和已完成连接的信息](#list-connections)

## 设置环境
<a name="rdp-prerequisites"></a>

在使用远程桌面之前，请确保环境满足以下要求：
+ **托管式节点配置**

  确保在 Systems Manager 中将您的 Amazon EC2 实例配置为[托管式节点](fleet-manager-managed-nodes.md)。
+ **最低 SSM Agent 版本**

  验证节点运行的 SSM Agent 版本是否为 3.0.222.0 或更高版本。有关如何检查节点上正在运行哪个代理版本的信息，请参阅 [正在检查 SSM Agent 版本号](ssm-agent-get-version.md)。有关安装或更新 SSM Agent 的信息，请参阅 [使用 SSM Agent](ssm-agent.md)。
+ **RDP 端口配置**

  要接受远程连接，Windows Server 节点上的 Remote Desktop Services 服务必须使用默认 RDP 端口 3389。这是 Amazon 提供的 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
  ```
+ **会话管理器配置**

  使用远程桌面之前，您必须先完成会话管理器设置的先决条件。当您使用远程桌面连接到实例时，将应用为 Amazon Web Services 账户 和 Amazon Web Services 区域 定义的所有会话首选项。有关更多信息，请参阅 [设置 Session Manager](session-manager-getting-started.md)。
**注意**  
如果您使用 Amazon Simple Storage Service（Amazon S3）记录会话管理器活动，则远程桌面连接将在 `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 权限
<a name="rdp-iam-policy-examples"></a>

除了 Systems Manager 和 Session Manager 所需的 IAM 权限外，您使用的用户或角色还必须拥有启动连接的权限。

**启动连接的权限**  
要在控制台中与 EC2 实例建立 RDP 连接，需要以下权限：
+ `ssm-guiconnect:CancelConnection`
+ `ssm-guiconnect:GetConnection`
+ `ssm-guiconnect:StartConnection`

**列出连接的权限**  
要在控制台中查看连接列表，需要以下权限：

`ssm-guiconnect:ListConnections`

以下是 IAM policy 示例，您可以将这些策略附加到用户或角色以允许与远程桌面进行不同类型的交互。将每个*示例资源占位符*替换为您自己的信息。

### 用于连接到 EC2 实例的标准策略
<a name="standard-policy"></a>

------
#### [ JSON ]

****  

```
{
    "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:*:111122223333:instance/*",
                "arn:aws:ssm:*:111122223333:managed-instance/*",
                "arn:aws:ssm:*::document/AWS-StartPortForwardingSession"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": "ssm-guiconnect.amazonaws.com"
                }
            }
        },
        {
            "Sid": "SSMMessages",
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:session/*"
            ],
            "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": "*"
        }
    ]
}
```

------

### 用于连接到具有特定标签的 EC2 实例的策略
<a name="tag-policy"></a>

**注意**  
在以下 IAM 策略中，`SSMStartSession` 部分需要 `ssm:StartSession` 操作的 Amazon 资源名称（ARN）。如图所示，您指定的 ARN *不*需要 Amazon Web Services 账户 ID。如果您指定账户 ID，则 Fleet Manager 会返回 `AccessDeniedException`。  
位于示例策略下方的 `AccessTaggedInstances` 部分也要求提供 `ssm:StartSession` 的 ARN。对于这些 ARN，您需要指定 Amazon Web Services 账户 ID。

------
#### [ JSON ]

****  

```
{
    "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:*:111122223333:instance/*",
                "arn:aws:ssm:*:111122223333:managed-instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/tag key": [
                        "tag value"
                    ]
                }
            }
        },
        {
            "Sid": "SSMMessages",
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:session/*"
            ],
            "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": "*"
        }
    ]
}
```

------

### 用于 Amazon IAM Identity Center 用户连接到 EC2 实例的策略
<a name="sso-policy"></a>

------
#### [ JSON ]

****  

```
{
    "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": "SSMMessages",
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:session/*"
            ],
            "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": "*"
        }
    ]
}
```

------

## 验证远程桌面连接
<a name="rdp-authentication"></a>

建立远程连接时，您可以使用 Windows 凭证或与实例关联的 Amazon EC2 密钥对（`.pem` 文件）进行身份验证。有关使用密钥对的信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EC2 密钥对和 Windows 实例](https://docs.amazonaws.cn/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html)。

或者，如果您已使用 Amazon IAM Identity Center 对 Amazon Web Services 管理控制台 进行身份验证，您可以在不提供额外凭证的情况下连接到实例。有关允许使用 IAM Identity Center 进行远程连接身份验证的策略示例，请参阅 [为远程桌面配置 IAM 权限](#rdp-iam-policy-examples)。

使用 IAM Identity Center 身份验证的远程桌面连接可在所有支持 IAM Identity Center 的 Amazon Web Services 区域中使用。

**开始前的准备工作**  
在开始使用远程桌面进行连接之前，请注意以下有关使用 IAM Identity Center 身份验证的条件。
+ 远程桌面支持您启用 IAM Identity Center 的同一 Amazon Web Services 区域 中的节点的 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 对连接进行身份验证后，远程桌面会在实例的本地管理员组中创建一个本地 Windows 用户。远程连接结束后，此用户仍然存在。
+ 远程桌面不允许对作为 Microsoft Active Directory 域控制器的节点进行 IAM Identity Center 身份验证。
+ 尽管远程桌面允许您对*已加入* Active Directory 域的节点使用 IAM Identity Center 身份验证，但我们不建议这样做。此身份验证方法向用户授予管理权限，这些权限可能会覆盖域授予的更严格的权限。

## 远程连接持续时间和并发
<a name="rdp-duration-concurrency"></a>

以下条件适用于活动的远程桌面连接：
+ **连接持续时间**

  默认情况下，远程桌面连接会在 60 分钟后断开。为防止连接断开，您可以选择在断开连接之前**续订会话**以重置持续时间计时器。
+ **连接超时**

  远程桌面连接在闲置超过 10 分钟后会断开连接。
+ **连接持久性**

  使用远程桌面连接 Windows Server 后，连接会继续，直到达到最大连接持续时间（60 分钟）或空闲超时限制（10 分钟）。连接持续时间并不取决于 Amazon Identity and Access Management（IAM）凭证的持续时间。即使 IAM 凭证到期，只要未达到连接持续时间限制，连接仍将继续。使用远程桌面时，如果 IAM 凭证到期，则应立即退出浏览器页面以终止连接。
+ **并发连接**

  默认情况下，对于相同的 Amazon Web Services 账户 和 Amazon Web Services 区域，您同一时间最多可以有 5 个处于活动状态的远程桌面连接。要请求将服务配额增加到最多 50 个并发连接，请参阅《Service Quotas User Guide》**中的 [Requesting a quota increase](https://docs.amazonaws.cn/servicequotas/latest/userguide/request-quota-increase.html)。
**注意**  
Windows Server 的标准许可证允许两个并发 RDP 连接。要支持更多连接，必须从 Microsoft 购买额外的客户端访问许可证（CAL），或从 Amazon 购买 Microsoft 远程桌面服务许可证。有关补充许可证的更多信息，请参阅以下主题：  
Microsoft 网站上的 [Client Access Licenses and Management Licenses](https://www.microsoft.com/en-us/licensing/product-licensing/client-access-license)
《License Manager User Guide》**中的 [Use License Manager user-based subscriptions for supported software products](https://docs.amazonaws.cn/license-manager/latest/userguide/user-based-subscriptions.html)

## Systems Manager GUI Connect 对 Amazon IAM Identity Center 属性的处理
<a name="iam-identity-center-attribute-handling"></a>

Systems Manager GUI Connect 是支持使用 RDP 将 Fleet Manager 连接到 EC2 实例的 API。关闭连接后，将保留以下 IAM Identity Center 用户数据：
+ `username`

默认情况下，Systems Manager GUI Connect 使用 Amazon 托管式密钥静态加密此身份属性。在 Systems Manager GUI Connect 中不支持使用客户托管密钥加密此属性。如果您删除 IAM Identity Center 实例中的用户，Systems Manager GUI Connect 将继续保留与该用户关联的 `username` 属性 7 年，之后删除该属性。保留这些数据是为了支持审计事件，例如列出 Systems Manager GUI Connect 连接历史记录。该数据无法手动删除。

## 使用远程桌面连接到托管式节点
<a name="rdp-connect-to-node"></a>

**浏览器对文本的复制/粘贴支持**  
若使用 Google Chrome 和 Microsoft Edge 浏览器，可以将托管式节点中的文本复制并粘贴到本地计算机，也可以将本地计算机中的文本复制并粘贴到所连接的托管式节点。

若使用 Mozilla Firefox 浏览器，则只能将托管式节点中的文本复制并粘贴到本地计算机，不能将本地计算机中的文本复制到托管式节点。

**使用 Fleet Manager 远程桌面连接到托管式节点**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择您想要连接到的节点。您可以选择复选框或节点名称。

1. 在**节点操作**菜单中，选择**连接远程桌面**。

1. 选择首选的 **Authentication type**（身份验证类型）。如果您选择**用户凭据**，请输入您要连接的节点上的 Windows 用户账户的用户名和密码。如果您选择**密钥对**，您可以使用以下方法之一提供身份验证：

   1. 如果您想从本地文件系统中选择与您的实例关联的 PEM 密钥，请选择**浏览本地计算机**。

      –或者–

   1. 如果要复制 PEM 文件的内容并将其粘贴到提供的字段中，请选择**粘贴密钥对内容**。

1. 选择 **Connect**（连接）。

1. 要选择首选的显示分辨率，请在**操作**菜单中选择**分辨率**，然后从以下选项中进行选择：
   + **自动适应**
   + **1920 x 1080**
   + **1400 x 900**
   + **1366 x 768**
   + **800 x 600**

   **自动适应**选项根据检测到的屏幕尺寸设置分辨率。

## 查看有关当前和已完成连接的信息
<a name="list-connections"></a>

您可以使用 Systems Manager 控制台中的 Fleet Manager 部分来查看有关在您的账户中建立的 RDP 连接的信息。通过一组筛选条件，您可以按照时间范围、特定实例、建立连接的用户和特定状态的连接来缩小所显示的连接列表的范围。控制台还提供选项卡，显示有关所有当前活动连接和所有过去连接的信息。

**要查看有关当前和已完成连接的信息**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择**账户管理，连接远程桌面**。

1. 选择以下选项卡之一：
   + **活动连接**
   + **连接历史记录**

1. 要进一步缩小所显示的连接结果列表的范围，请在搜索 (![\[\]](http://docs.amazonaws.cn/systems-manager/latest/userguide/images/search-icon.png)) 框中指定一个或多个筛选条件 您也可以输入自由文本搜索词。