通过会话管理连接实例
会话管理是阿里云为您提供的免费的连接实例的工具,该工具基于云助手和WebSocket等技术实现,支持一键免密码、免跳板机连接到无公网实例。本文为您介绍会话管理的使用场景以及注意事项。
什么是会话管理?
会话管理本身不收费,但如果需要保存会话管理操作记录,需开启会话操作记录投递功能,这将产生数据存储费用,开启该功能的具体操作,请参见会话操作记录投递。
会话管理是阿里云为您提供的免费的连接实例的工具,该工具主要特点如下:
免密连接实例:在连接实例时无需输入实例密码。
支持连接无公网实例:使用该工具,无需您准备跳板机即可连接到无公网的实例。
在使用会话管理连接实例时,命令会经由阿里云的会话管理服务端转发到ECS实例。
多种客户端形态:
阿里云官网控制台:直接在浏览器上使用会话管理客户端连接实例(免安装)
本机命令行(安装ali-instance-cli):在您的个人计算机上通过会话管理客户端连接实例(需安装ali-instance-cli)
登录用户说明
通过会话管理连接实例时,Linux实例默认以ecs-assist-user
用户登录,Windows实例默认以system
用户登录,具体说明如下。
ecs-assist-user
:Linux系统的一个普通用户,没有系统级的权限,只能执行被授权的操作,但可以通过使用sudo
命令临时获得root权限执行操作。system
:Windows系统的一个本地系统账户,拥有系统最高权限。
使用限制&前提条件
仅支持连接到运行中状态的实例。
实例需安装云助手Agent:会话管理基于云助手的功能实现,需要在实例中安装云助手Agent。
2017年12月01日之后使用官方公共镜像创建的ECS实例,默认预装了云助手Agent。如果您的实例是2017年12月01日之前购买的或使用自行上传的自定义镜像创建的实例,若需要使用云助手相关功能,需自行安装云助手Agent,具体操作,请参见安装云助手Agent。
使用前请确保网络连通:由于云助手Agent会通过WebSocket协议与云助手服务端通讯,需要确保实例与云助手服务端的网络连通性,具体说明,请参见相关安全组设置。
更多功能&适用场景
通过端口转发访问无公网服务
使用会话管理客户端的端口转发功能,将实例的某个服务端口映射到您的本机,然后您可以直接通过访问本机的对应端口访问在ECS上的服务。比如访问内网部署的Web后端服务、通过SSH连接内网实例。具体操作,请参见通过会话管理CLI的端口转发访问无公网实例。
向实例添加临时SSH公钥
在您使用SSH连接实例时,您可以使用会话管理向实例内添加有效时间60s的临时公钥,然后通过密钥对的验证方式连接到实例。具体操作,请参见通过会话管理CLI注册临时公钥免密登录实例。
会话操作记录投递
如果您是多人使用场景,可以通过会话操作记录投递功能,查看某个人的操作记录,便于您在后续进行操作审计。开启会话操作记录投递功能,请参见会话操作记录投递。
会话管理工作原理
如图所示,在通过会话管理连接实例时,会话管理客户端和ECS实例将分别与云助手服务端建立WebSocket连接。一旦连接建立,您每次输入的命令都会经过云助手服务端转发至实例,由实例中的云助手Agent代为执行。
图中涉及的模块
细节说明
安全性
|
基本使用流程
在阿里云控制台通过会话管理连接实例。(浏览器中使用)
您可以直接在浏览器登录阿里云官网控制台,通过会话管理连接实例。具体连接操作,请参见直接在浏览器上使用会话管理客户端连接实例(免安装)。操作流程如图所示:
在您的个人计算机上通过会话管理客户端连接实例。(本机命令行中使用)
您可以在个人计算机上安装ali-instance-cli,直接使用本机命令行,通过会话管理连接实例。
具体操作,请参见在您的个人计算机上通过会话管理客户端连接实例(需安装ali-instance-cli)。操作流程如图所示:
相关权限管理
如果RAM用户需要通过会话管理连接实例,相关操作的权限及说明如下:
操作(Action)列对应RAM权限策略中的操作(Action)。
操作(Action) | 说明 |
| 通过会话管理功能连接到ECS实例。(必须) |
| 查询ECS实例是否安装云助手Agent,该权限用于控制台在连接前进行校验。 |
| 查询会话管理是否开启,该权限用于控制台在连接前进行校验。 |
| 开启或关闭会话管理,如果当前阿里云账号已经开启会话管理功能,无需分配该权限。 |
权限策略示例
示例一:在控制台使用会话管理
示例二:通过ali-instance-cli使用会话管理
相关安全组设置
通过会话管理连接ECS实例时,需要确保ECS中运行的云助手Agent与云助手服务端的网络连通性,即在安全组出方向设置以下规则:
与SSH、RDP等连接方式不同,由于会话管理是由云助手Agent主动与会话管理服务端建立WebSocket连接,因此仅需放行出方向的云助手服务端的WebSocket端口。关于会话管理的原理,请参见会话管理工作原理。
如果使用普通安全组(包括默认安全组),默认情况下会放行所有的出方向流量,无需配置。
如果使用企业安全组,默认情况下会禁用所有出方向的流量,需要配置以下规则。更多企业安全组的说明,请参见普通安全组与企业级安全组。
添加安全组规则的具体操作,请参见添加安全组规则。
授权策略 | 优先级 | 协议类型 | 端口范围 | 授权对象 | 描述 |
允许 | 1 | 自定义TCP | 443 |
| 用于访问云助手服务端。 |
允许 | 1 | 自定义TCP | 443 |
| 访问云助手Agent安装包所在服务器,用于安装或更新您的云助手Agent。 |
允许 | 1 | 自定义UDP | 53 |
| 用于解析域名。 |
此外,如果您计划仅通过会话管理连接实例,为了增加ECS实例的安全性,您可以取消放行安全组入方向上的SSH端口(默认22)或者RDP端口(默认3389)的规则。
在自己的应用中集成会话管理远程登录功能
通过会话管理远程连接到云服务器或托管实例的完整代码,请参考开源项目cloud-assistant-starter。本项目中AxtSession.tsx文件包含了调用APIStartTerminalSession - 开始终端会话获取WebSocketURL
并建立连接的示例代码,将这段代码移植到您自己的企业应用中,即可使用会话管理连接实例。