会话管理(Session Manager)是由云助手提供的功能,相比SSH、VNC等方式,可以更便捷地远程连接ECS实例,且兼具安全性。本文介绍会话管理功能支持的地域、工作原理和安全性。
计费说明
会话管理功能本身不收取费用。
会话管理操作记录默认不保存,如果您需要对会话管理操作记录进行查询、分析、审计以及持久保存等操作,建议您将会话管理操作记录投递到您指定的对象存储OSS或日志服务SLS中,进行持久化存储。具体操作,请参见会话操作记录投递。关于SLS和OSS的计费说明,请参见SLS计费概述和OSS计费概述。
支持的地域
会话管理功能支持的地域:华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华东1(杭州)、华东2(上海)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、中国(香港)、日本(东京)、韩国(首尔)、新加坡、澳大利亚(悉尼)关停中、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)、阿联酋(迪拜)、沙特(利雅得)。
使用限制
通过会话连接实例时,下载或上传文件速度限制为20 KB/s。
工作原理
会话管理涉及以下模块:
会话管理客户端:负责发起会话、接收用户输入并展示输出。
云助手服务端:负责权限控制、管理会话状态。
ECS实例内部的云助手Agent:负责执行输入的命令。
会话管理建立连接的原理如下:
会话管理客户端发起会话。
云助手服务端进行鉴权,鉴权通过后会生成用于发起连接的WebSocket URL,以及一个10分钟内有效的token,返回给会话管理客户端。
会话管理客户端通过WebSocket URL、token与云助手服务端建立WebSocket连接。
云助手服务端通知ECS实例内部的云助手Agent建立WebSocket连接。
云助手Agent和云助手服务端建立WebSocket连接。
在建立WebSocket连接后,您可以在会话管理客户端输入命令,该命令会以流式传输的方式传输到ECS并执行,最终在会话管理客户端显示执行结果。
安全性
会话管理客户端与云助手服务端、云助手服务端与云助手Agent之间通信时,会通过WSS(Web Socket Secure)协议建立WebSocket长连接,WSS使用SSL(Secure Socket Layer)加密WebSocket长连接,能够保障数据的安全。
使用会话管理功能远程连接实例时无需管理密码,无密码泄露的风险。不同于SSH、VNC等需要通过用户名密码进行鉴权,会话管理采用RAM进行鉴权。您可以登录阿里云账号开启或关闭会话管理功能,功能适用对象为账号下的全部实例。开启会话管理功能后,阿里云账号和RAM用户均可以通过该功能远程连接实例。
RAM用户权限策略可以提升管理ECS实例的安全性。如果需要通过RAM用户使用会话管理功能,必须为RAM用户授予调用StartTerminalSession的权限。通过RAM权限策略,您可以从地域、标签、ECS实例、源IP地址等维度实现权限控制,虽然远程连接实例时不需要密码,仍然能够通过RAM权限策略安全地管理实例。具体操作,请参见通过会话管理连接实例。
由于云助手Agent与云助手服务端之间通过WebSocket连接,不需要通过SSH、VNC等方式登录ECS实例,所以不需要打开ECS实例的入方向端口,进一步提高了ECS实例的安全性。
如何在自己的应用中集成会话管理远程登录功能?
在开源项目cloud-assistant-starter中,包含了使用会话管理功能,远程连接到云服务器或托管实例的完整代码。项目中的AxtSession.tsx包含了连接与使用StartTerminalSession所返回的WebSocketURL的完整代码,将这段代码移植到您自己的企业应用中,即可实现免密码、免公网远程登录功能的会话管理。