

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

# 启动会话
<a name="session-manager-working-with-sessions-start"></a>

您可以使用 AWS Systems Manager 控制台、Amazon Elastic Compute Cloud (Amazon EC2) 控制台、AWS Command Line Interface (AWS CLI) 或 SSH 启动会话。

**Topics**
+ [启动会话（Systems Manager 控制台）](#start-sys-console)
+ [开启会话（Amazon EC2 控制台）](#start-ec2-console)
+ [启动会话 (AWS CLI)](#sessions-start-cli)
+ [启动会话 (SSH)](#sessions-start-ssh)
+ [启动会话（端口转发）](#sessions-start-port-forwarding)
+ [启动会话（至远程主机的端口转发）](#sessions-remote-port-forwarding)
+ [启动会话（交互式和非交互式命令）](#sessions-start-interactive-commands)

## 启动会话（Systems Manager 控制台）
<a name="start-sys-console"></a>

您可以使用 AWS Systems Manager 控制台启动与账户中的托管式节点进行的会话。

**注意**  
在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。

**启动会话（Systems Manager 控制台）**

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

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

1. 选择 **Start session (启动会话)**。

1. （可选）在**会话原因**字段中输入会话描述。

1. 对于**目标实例**，选择要连接的托管式节点左侧的选项按钮。

   如果您需要节点不在列表中，或者如果您选择了节点并收到配置错误，请参阅 [托管式节点不可用或未为 Session Manager 配置托管式节点](session-manager-troubleshooting.md#session-manager-troubleshooting-instances)，以了解故障排除步骤。

1. 选择**启动会话**立即启动会话。

   –或者–

   选择**下一步**查看会话选项。

1. （可选）对于**会话文档**，选择要在会话启动时运行的文档。如果您的文档支持运行时参数，则可以在每个参数字段中输入一个或多个逗号分隔的值。

1. 选择**下一步**。

1. 选择 **Start session (启动会话)**。

建立连接后，您可以像运行任何其他连接类型一样运行 Bash 命令（Linux 和 macOS）或 PowerShell 命令（Windows）。

**重要**  
如果要允许用户在会话管理器控制台中启动会话时指定文档，请注意以下几点：  
您必须在用户的 IAM policy 中向其授予 `ssm:GetDocument` 和 `ssm:ListDocuments` 权限。有关更多信息，请参阅 [在控制台中授予对自定义会话文档的访问权限](getting-started-restrict-access-examples.md#grant-access-documents-console-example)。
控制台仅支持将 `sessionType` 定义为 `Standard_Stream` 的会话文档。有关更多信息，请参阅 [会话文档架构](session-manager-schema.md)。

## 开启会话（Amazon EC2 控制台）
<a name="start-ec2-console"></a>

您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 控制台来启动与账户中的实例的会话。

**注意**  
如果您收到一个错误，提示您无权执行一项或多项 Systems Manager 操作 (`ssm:command-name`)，则必须联系您的管理员寻求帮助。管理员是向您提供登录凭证的人。让其帮助您更新您的策略，以允许您从 Amazon EC2 控制台启动会话。如果您是管理员，请参阅 [Session Manager 的 IAM policy 示例](getting-started-restrict-access-quickstart.md) 了解更多信息。

**要启动会话（Amazon EC2 控制台），请执行以下步骤：**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**实例**。

1. 选择实例，然后选择**连接**。

1. 对于 **Connection method (连接方法)**，选择 **Session Manager**。

1. 选择**连接**。

建立连接后，您可以像运行任何其他连接类型一样运行 Bash 命令（Linux 和 macOS）或 PowerShell 命令（Windows）。

## 启动会话 (AWS CLI)
<a name="sessions-start-cli"></a>

安装并配置 AWS Command Line Interface（AWS CLI）（如果尚未执行该操作）。

有关信息，请参阅[安装或更新 AWS CLI 的最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。

要使用 AWS CLI 运行会话命令，还必须在本地计算机上安装 Session Manager 插件。有关信息，请参阅[为 AWS CLI 安装 Session Manager 插件](session-manager-working-with-install-plugin.md)。

要使用 AWS CLI 开启会话，请运行以下命令，将 *instance-id* 替换为您自己的信息。

```
aws ssm start-session \
    --target instance-id
```

有关可以与 **start-session** 命令结合使用的其他选项的信息，请参阅《AWS CLI Command Reference》中 AWS Systems Manager 部分中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html)。

## 启动会话 (SSH)
<a name="sessions-start-ssh"></a>

要启动 Session Manager SSH 会话，托管式节点上必须安装 2.3.672.0 版本或更高版本的 SSM Agent。

**SSH 连接要求**  
对于通过Session Manager使用 SSH 的会话连接，请注意以下要求和限制：
+ 必须将目标托管式节点配置为支持 SSH 连接。有关更多信息，请参阅[（可选）通过 Session Manager 允许和控制 SSH 连接的权限](session-manager-getting-started-enable-ssh-connections.md)。
+ 您必须使用与 Privacy Enhanced Mail (PEM) 证书关联的托管式节点账户进行连接，而不是用于其他类型的会话连接的 `ssm-user` 账户。例如，在适用于 Linux 和 macOS 的 EC2 实例上，默认用户为 `ec2-user`。有关确定每种实例类型的默认用户的信息，请参阅《Amazon EC2 用户指南》**中的[获取有关您的实例的信息](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connection-prereqs.html#connection-prereqs-get-info-about-instance)。
+ 日志记录不可用于通过端口转发或 SSH 连接的 Session Manager 会话。这是因为 SSH 会对 AWS CLI 和 Session Manager 端点之间建立的安全 TLS 连接中的所有会话数据进行加密，而 Session Manager 仅用作 SSH 连接的隧道。

**注意**  
在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。

要使用 SSH 启动会话，请运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

```
ssh -i /path/my-key-pair.pem username@instance-id
```

**提示**  
当您使用 SSH 启动会话时，您可以使用以下命令格式将本地文件复制到目标托管式节点。  

```
scp -i /path/my-key-pair.pem /path/ExampleFile.txt username@instance-id:~
```

有关可以与 **start-session** 命令结合使用的其他选项的信息，请参阅《AWS CLI Command Reference》中 AWS Systems Manager 部分中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html)。

## 启动会话（端口转发）
<a name="sessions-start-port-forwarding"></a>

要启动 Session Manager 端口转发会话，必须在托管式节点上安装 2.3.672.0 版本或更高版本的 SSM Agent。

**注意**  
在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。  
要使用 AWS CLI 运行会话命令，必须在本地计算机上安装 Session Manager 插件。有关信息，请参阅[为 AWS CLI 安装 Session Manager 插件](session-manager-working-with-install-plugin.md)。  
根据您的操作系统和命令行工具，放置引号的位置可能会有所不同，并可能需要转义字符。

要启动端口转发会话，请从 CLI 中运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name AWS-StartPortForwardingSession \
    --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name AWS-StartPortForwardingSession ^
    --parameters portNumber="3389",localPortNumber="56789"
```

------

`portNumber` 是托管式节点上您希望将会话流量重定向到的远程端口。例如，您可以指定端口 `3389`，用于使用远程桌面协议（RDP）连接到 Windows 节点。如果您未指定 `portNumber` 参数，Session Manager 会将 `80` 用作默认值。

`localPortNumber` 是本地计算机上流量启动的端口，例如 `56789`。此值是您在使用客户端连接到托管式节点时输入的值。例如 **localhost:56789**。

有关可以与 **start-session** 命令结合使用的其他选项的信息，请参阅《AWS CLI Command Reference》中 AWS Systems Manager 部分中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html)。

有关端口转发会话的更多信息，请参阅 *AWS 新闻博客*中的 [Port Forwarding Using AWS Systems ManagerSession Manager](https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/)。

## 启动会话（至远程主机的端口转发）
<a name="sessions-remote-port-forwarding"></a>

要启动至远程主机的 Session Manager 端口转发会话，必须在托管式节点上安装 3.1.1374.0 版本或更高版本的 SSM Agent。远程主机不需要由 Systems Manager 进行管理。

**注意**  
在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。  
要使用 AWS CLI 运行会话命令，必须在本地计算机上安装 Session Manager 插件。有关信息，请参阅[为 AWS CLI 安装 Session Manager 插件](session-manager-working-with-install-plugin.md)。  
根据您的操作系统和命令行工具，放置引号的位置可能会有所不同，并可能需要转义字符。

要启动端口转发会话，请从 AWS CLI 中运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name AWS-StartPortForwardingSessionToRemoteHost \
    --parameters '{"host":["mydb.example.us-east-2.rds.amazonaws.com"],"portNumber":["3306"], "localPortNumber":["3306"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name AWS-StartPortForwardingSessionToRemoteHost ^
    --parameters host="mydb.example.us-east-2.rds.amazonaws.com",portNumber="3306",localPortNumber="3306"
```

------

`host` 值表示要连接到的远程主机的主机名或 IP 地址。托管式节点和远程主机之间的常规连接和名称解析要求仍然适用。

`portNumber` 是托管式节点上您希望将会话流量重定向到的远程端口。例如，您可以指定端口 `3389`，用于使用远程桌面协议（RDP）连接到 Windows 节点。如果您未指定 `portNumber` 参数，Session Manager 会将 `80` 用作默认值。

`localPortNumber` 是本地计算机上流量启动的端口，例如 `56789`。此值是您在使用客户端连接到托管式节点时输入的值。例如 **localhost:56789**。

有关可以与 **start-session** 命令结合使用的其他选项的信息，请参阅《AWS CLI Command Reference》中 AWS Systems Manager 部分中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html)。

### 通过 Amazon ECS 任务启动会话
<a name="sessions-remote-port-forwarding-ecs-task"></a>

Session Manager 支持通过 Amazon Elastic Container Service（Amazon ECS）集群中的任务启动端口转发会话。为此，请启用 ECS Exec。有关更多信息，请参阅《Amazon Elastic Container Service 开发人员指南》**中的[使用 ECS Exec 监控 Amazon Elastic Container Service 容器](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html)。

您还必须更新 IAM 中的任务角色，以包含以下权限：

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}
```

------

要通过 Amazon ECS 任务启动端口转发会话，请从 AWS CLI 中运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

**注意**  
从 `target` 参数中移除 < 和 > 符号。这些符号仅供读者澄清之用。

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target ecs:<ECS_cluster_name>_<ECS_container_ID>_<container_runtime_ID> \
    --document-name AWS-StartPortForwardingSessionToRemoteHost \
    --parameters '{"host":["URL"],"portNumber":["port_number"], "localPortNumber":["port_number"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target ecs:<ECS_cluster_name>_<ECS_container_ID>_<container_runtime_ID> ^
    --document-name AWS-StartPortForwardingSessionToRemoteHost ^
    --parameters host="URL",portNumber="port_number",localPortNumber="port_number"
```

------

## 启动会话（交互式和非交互式命令）
<a name="sessions-start-interactive-commands"></a>

在启动会话之前，确保您已经完成 Session Manager 的设置步骤。有关信息，请参阅[设置 Session Manager](session-manager-getting-started.md)。

要使用 AWS CLI 运行会话命令，还必须在本地计算机上安装 Session Manager 插件。有关信息，请参阅[为 AWS CLI 安装 Session Manager 插件](session-manager-working-with-install-plugin.md)。

要启动交互式命令会话，请运行以下命令：将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name CustomCommandSessionDocument \
    --parameters '{"logpath":["/var/log/amazon/ssm/amazon-ssm-agent.log"]}'
```

------
#### [ Windows ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name CustomCommandSessionDocument ^
    --parameters logpath="/var/log/amazon/ssm/amazon-ssm-agent.log"
```

------

有关可以与 **start-session** 命令结合使用的其他选项的信息，请参阅《AWS CLI Command Reference》中 AWS Systems Manager 部分中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html)。

 **更多信息**   
+  [在 AWS Systems Manager Session Manager 中使用端口转发连接到远程主机](https://aws.amazon.com/blogs/mt/use-port-forwarding-in-aws-systems-manager-session-manager-to-connect-to-remote-hosts/) 
+  [通过 AWS Systems Manager 实现 Amazon EC2 实例端口转发](https://aws.amazon.com/blogs/mt/amazon-ec2-instance-port-forwarding-with-aws-systems-manager/) 
+  [通过 Session Manager 端口转发管理 AWS 托管的 Microsoft AD 资源](https://aws.amazon.com/blogs/mt/manage-aws-managed-microsoft-ad-resources-with-session-manager-port-forwarding/) 
+ *AWS 新闻博客*上的 [Port Forwarding Using AWS Systems ManagerSession Manager](https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/)。