会话管理(Session Manager)是由云助手提供的功能,相比SSH、VNC等方式,可以更便捷地远程连接ECS实例,且兼具安全性。

连接原理

会话管理涉及以下端:
  • 会话管理客户端:负责发起会话、接收用户输入并展示输出。
  • 云助手服务端:负责权限控制、管理会话状态。
  • ECS实例内部的云助手客户端:负责执行输入的命令。
会话管理建立连接的原理如下:
  1. 会话管理客户端发起会话。
  2. 云助手服务端进行鉴权,鉴权通过后会生成用于发起连接的WebSocket URL,以及一个10分钟内有效的token,返回给会话管理客户端。
  3. 会话管理客户端通过WebSocket URL、token与云助手服务端建立WebSocket连接。
  4. 云助手服务端通知ECS实例内部的云助手客户端建立WebSocket连接。
  5. 云助手客户端和云助手服务端建立WebSocket连接。
  6. 在建立WebSocket连接后,您可以在会话管理客户端输入命令,该命令会以流式传输的方式传输到ECS并执行,最终在会话管理客户端显示执行结果。
session-mgr-seq

安全性

会话管理客户端与云助手服务端、云助手服务端与云助手客户端之间通信时,会通过WSS(Web Socket Secure)协议建立WebSocket长连接,WSS使用SSL(Secure Socket Layer)加密WebSocket长连接,能够保障数据的安全。

使用会话管理功能远程连接实例时无需管理密码。不同于SSH、VNC等需要通过用户名密码进行鉴权,会话管理采用RAM进行鉴权。您可以登录阿里云账号开启或关闭会话管理功能,功能适用对象为账号下的全部实例。开启会话管理功能后,阿里云账号和RAM用户均可以通过该功能远程连接实例。

如果需要通过RAM用户使用会话管理功能,必须再为RAM用户授予调用StartTerminalSession的权限。通过RAM权限策略,您可以从地域、标签、ECS实例、源IP地址等维度实现权限控制,虽然远程连接实例时不需要密码,仍然能够通过RAM权限策略安全地管理实例。具体操作,请参见通过会话管理连接实例

由于云助手客户端与云助手服务端之间通过WebSocket连接,不需要通过SSH、VNC等方式登录ECS实例,所以不需要打开ECS实例的入方向端口,进一步提高了ECS实例的安全性。