通過會話管理連接實例
會話管理是阿里云為您提供的免費的連接實例的工具,該工具基于云助手和WebSocket等技術實現(xiàn),支持一鍵免密碼、免跳板機連接到無公網實例。本文為您介紹會話管理的使用場景以及注意事項。
什么是會話管理?
會話管理本身不收費,但如果需要保存會話管理操作記錄,需開啟會話操作記錄投遞功能,這將產生數據存儲費用,開啟該功能的具體操作,請參見會話操作記錄投遞。
會話管理是阿里云為您提供的免費的連接實例的工具,該工具主要特點如下:
免密連接實例:在連接實例時無需輸入實例密碼。
支持連接無公網實例:使用該工具,無需您準備跳板機即可連接到無公網的實例。
在使用會話管理連接實例時,命令會經由阿里云的會話管理服務端轉發(fā)到ECS實例。
多種客戶端形態(tài):
阿里云官網控制臺:直接在瀏覽器上使用會話管理客戶端連接實例(免安裝)
本機命令行(安裝ali-instance-cli):在您的個人計算機上通過會話管理客戶端連接實例(需安裝ali-instance-cli)
登錄用戶說明
通過會話管理連接實例時,Linux實例默認以ecs-assist-user
用戶登錄,Windows實例默認以system
用戶登錄,具體說明如下。
ecs-assist-user
:Linux系統(tǒng)的一個普通用戶,沒有系統(tǒng)級的權限,只能執(zhí)行被授權的操作,但可以通過使用sudo
命令臨時獲得root權限執(zhí)行操作。system
:Windows系統(tǒng)的一個本地系統(tǒng)賬戶,擁有系統(tǒng)最高權限。
使用限制&前提條件
僅支持連接到運行中狀態(tài)的實例。
實例需安裝云助手Agent:會話管理基于云助手的功能實現(xiàn),需要在實例中安裝云助手Agent。
2017年12月01日之后使用官方公共鏡像創(chuàng)建的ECS實例,默認預裝了云助手Agent。如果您的實例是2017年12月01日之前購買的或使用自行上傳的自定義鏡像創(chuàng)建的實例,若需要使用云助手相關功能,需自行安裝云助手Agent,具體操作,請參見安裝云助手Agent。
使用前請確保網絡連通:由于云助手Agent會通過WebSocket協(xié)議與云助手服務端通訊,需要確保實例與云助手服務端的網絡連通性,具體說明,請參見相關安全組設置。
更多功能&適用場景
通過端口轉發(fā)訪問無公網服務
使用會話管理客戶端的端口轉發(fā)功能,將實例的某個服務端口映射到您的本機,然后您可以直接通過訪問本機的對應端口訪問在ECS上的服務。比如訪問內網部署的Web后端服務、通過SSH連接內網實例。具體操作,請參見通過會話管理CLI的端口轉發(fā)訪問無公網實例。
向實例添加臨時SSH公鑰
在您使用SSH連接實例時,您可以使用會話管理向實例內添加有效時間60s的臨時公鑰,然后通過密鑰對的驗證方式連接到實例。具體操作,請參見通過會話管理CLI注冊臨時公鑰免密登錄實例。
會話操作記錄投遞
如果您是多人使用場景,可以通過會話操作記錄投遞功能,查看某個人的操作記錄,便于您在后續(xù)進行操作審計。開啟會話操作記錄投遞功能,請參見會話操作記錄投遞。
會話管理工作原理
如圖所示,在通過會話管理連接實例時,會話管理客戶端和ECS實例將分別與云助手服務端建立WebSocket連接。一旦連接建立,您每次輸入的命令都會經過云助手服務端轉發(fā)至實例,由實例中的云助手Agent代為執(zhí)行。
圖中涉及的模塊
細節(jié)說明
安全性
|
基本使用流程
在阿里云控制臺通過會話管理連接實例。(瀏覽器中使用)
您可以直接在瀏覽器登錄阿里云官網控制臺,通過會話管理連接實例。具體連接操作,請參見直接在瀏覽器上使用會話管理客戶端連接實例(免安裝)。操作流程如圖所示:
在您的個人計算機上通過會話管理客戶端連接實例。(本機命令行中使用)
您可以在個人計算機上安裝ali-instance-cli,直接使用本機命令行,通過會話管理連接實例。
具體操作,請參見在您的個人計算機上通過會話管理客戶端連接實例(需安裝ali-instance-cli)。操作流程如圖所示:
相關權限管理
如果RAM用戶需要通過會話管理連接實例,相關操作的權限及說明如下:
操作(Action)列對應RAM權限策略中的操作(Action)。
操作(Action) | 說明 |
| 通過會話管理功能連接到ECS實例。(必須) |
| 查詢ECS實例是否安裝云助手Agent,該權限用于控制臺在連接前進行校驗。 |
| 查詢會話管理是否開啟,該權限用于控制臺在連接前進行校驗。 |
| 開啟或關閉會話管理,如果當前阿里云賬號已經開啟會話管理功能,無需分配該權限。 |
權限策略示例
示例一:在控制臺使用會話管理
如果RAM用戶需要在控制臺使用會話管理連接實例,根據最小授權原則,需要具有以下權限。
ecs:StartTerminalSession
:通過會話管理連接實例的權限,此外,可以通過Resource
字段,限制RAM用戶可連接(會話管理)的ECS實例。ecs:DescribeCloudAssistantStatus
:查詢ECS實例是否需要安裝云助手,該權限用于控制臺在連接前進行校驗。ecs:DescribeUserBusinessBehavior
:查詢會話管理功能是否已經開啟,該權限用于控制臺在連接前進行校驗。ecs:ModifyCloudAssistantSettings
(可選):打開或關閉會話管理的權限,如果當前阿里云賬號已經開通會話管理,無需分配該權限。
自定義權限策略示例如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:StartTerminalSession",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ecs:DescribeUserBusinessBehavior",
"ecs:DescribeCloudAssistantStatus",
"ecs:ModifyCloudAssistantSettings"
],
"Resource": "*"
}
]
}
為RAM用戶授權,請參見為RAM用戶授權。
示例二:通過ali-instance-cli使用會話管理
在使用 ali-instance-cli
工具時,配置階段要求設置RAM用戶的AccessKey、STS Token。當通過會話管理操作連接實例時,系統(tǒng)會驗證此憑證對應的RAM用戶是否擁有ecs:StartTerminalSession
權限,這是允許通過會話管理建立與ECS實例連接的必要權限。
此外,在自定義權限策略時,可以通過指定Resource
字段來限定RAM用戶能夠通過會話管理連接的具體ECS實例。權限策略示例如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:StartTerminalSession",
"Resource": "*"
}
]
}
關于CredentialsURI、STS Token的更多說明,請參見創(chuàng)建AccessKey、什么是STS。
為RAM用戶授權,請參見為RAM用戶授權。
相關安全組設置
通過會話管理連接ECS實例時,需要確保ECS中運行的云助手Agent與云助手服務端的網絡連通性,即在安全組出方向設置以下規(guī)則:
與SSH、RDP等連接方式不同,由于會話管理是由云助手Agent主動與會話管理服務端建立WebSocket連接,因此僅需放行出方向的云助手服務端的WebSocket端口。關于會話管理的原理,請參見會話管理工作原理。
如果使用普通安全組(包括默認安全組),默認情況下會放行所有的出方向流量,無需配置。
如果使用企業(yè)安全組,默認情況下會禁用所有出方向的流量,需要配置以下規(guī)則。更多企業(yè)安全組的說明,請參見普通安全組與企業(yè)級安全組。
添加安全組規(guī)則的具體操作,請參見添加安全組規(guī)則。
授權策略 | 優(yōu)先級 | 協(xié)議類型 | 端口范圍 | 授權對象 | 描述 |
允許 | 1 | 自定義TCP | 443 |
| 用于訪問云助手服務端。 |
允許 | 1 | 自定義TCP | 443 |
| 訪問云助手Agent安裝包所在服務器,用于安裝或更新您的云助手Agent。 |
允許 | 1 | 自定義UDP | 53 |
| 用于解析域名。 |
此外,如果您計劃僅通過會話管理連接實例,為了增加ECS實例的安全性,您可以取消放行安全組入方向上的SSH端口(默認22)或者RDP端口(默認3389)的規(guī)則。
在自己的應用中集成會話管理遠程登錄功能
通過會話管理遠程連接到云服務器或托管實例的完整代碼,請參考開源項目cloud-assistant-starter。本項目中AxtSession.tsx文件包含了調用APIStartTerminalSession - 開始終端會話獲取WebSocketURL
并建立連接的示例代碼,將這段代碼移植到您自己的企業(yè)應用中,即可使用會話管理連接實例。