全部產品
Search
文件中心

Elastic Compute Service:通過會話管理串連執行個體

更新時間:Dec 18, 2024

會話管理是阿里雲為您提供的免費的串連執行個體的工具,該工具雲端式助手和WebSocket等技術實現,支援一鍵免密碼、免跳板機串連到無公網執行個體。本文為您介紹會話管理的使用情境以及注意事項。

什麼是會話管理

重要

會話管理本身不收費,但如果需要儲存會話管理操作記錄,需開啟會話操作記錄投遞功能,這將產生資料存放區費用,開啟該功能的具體操作,請參見會話操作記錄投遞

會話管理是阿里雲為您提供的免費的串連執行個體的工具,該工具主要特點如下:

登入使用者說明

通過會話管理串連執行個體時,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註冊臨時公開金鑰免密登入執行個體

  • 會話操作記錄投遞

    如果您是多人使用情境,可以通過會話操作記錄投遞功能,查看某個人的操作記錄,便於您在後續進行Action Trail。開啟會話操作記錄投遞功能,請參見會話操作記錄投遞

會話管理工作原理

如圖所示,在通過會話管理串連執行個體時,會話管理用戶端和ECS執行個體將分別與雲助手服務端建立WebSocket串連。一旦串連建立,您每次輸入的命令都會經過雲助手服務端轉寄至執行個體,由執行個體中的雲助手Agent代為執行。

圖中涉及的模組

  • 雲助手用戶端:指您實際操作的用戶端工具,如控制台上的會話管理、您原生ali-instance-cli、阿里雲用戶端等。

  • 雲助手服務端:會話管理雲端式助手實現,負責許可權管理、工作階段狀態管理。

  • ECS執行個體中的雲助手Agent:負責命令的執行。

細節說明

  • 會話管理用戶端雲助手服務端建立WebSocket串連時(對應步驟2~4),服務端會進行鑒權,判斷操作者有沒有通過會話管理串連到該執行個體的許可權。相關許可權說明,請參見相關許可權管理

  • ECS中的雲助手Agent雲助手服務端建立WebSocket串連時(對應步驟5~6),是由雲助手服務端通知Agent建立串連後,雲助手Agent主動和雲助手服務端建立串連。

    因此,無需關注ECS執行個體安全性群組入方向的規則,僅需關注出方向上可以訪問雲助手服務端的對應WebSocket串連連接埠。相關安全性群組配置說明,請參見相關安全性群組設定

安全性

  • 加密:會話管理用戶端與雲助手服務端、雲助手服務端與雲助手Agent之間通訊時,會通過WSS(Web Socket Secure)協議建立WebSocket長串連,WSS使用SSL(Secure Socket Layer)加密WebSocket長串連,能夠保障資料的安全。

  • 鑒權:僅使用會話管理功能遠端連線執行個體時無需管理密碼,無密碼泄露的風險。不同於SSH、VNC等需要通過使用者名稱密碼進行鑒權,會話管理採用RAM進行鑒權。相關許可權說明,請參見相關許可權管理

  • 網路:由於雲助手Agent與雲助手服務端之間通過WebSocket串連,不需要通過SSH、VNC等方式登入ECS執行個體,所以不需要開啟ECS執行個體的入方向連接埠,進一步提高了ECS執行個體的安全性。

基本使用流程

相關許可權管理

如果RAM使用者需要通過會話管理串連執行個體,相關操作的許可權及說明如下:

操作(Action)列對應RAM權限原則中的操作(Action)。

操作(Action)

說明

ecs:StartTerminalSession

通過會話管理功能串連到ECS執行個體。(必須)

ecs:DescribeCloudAssistantStatus

查詢ECS執行個體是否安裝雲助手Agent,該許可權用於控制台在串連前進行校正。

ecs:DescribeUserBusinessBehavior

查詢會話管理是否開啟,該許可權用於控制台在串連前進行校正。

ecs:ModifyCloudAssistantSettings

開啟或關閉會話管理,如果當前阿里雲帳號已經開啟會話管理功能,無需分配該許可權。

權限原則樣本

樣本一:在控制台使用會話管理

如果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使用者的AccessKeySTS Token。當通過會話管理操作串連執行個體時,系統會驗證此憑證對應的RAM使用者是否擁有ecs:StartTerminalSession許可權,這是允許通過會話管理建立與ECS執行個體串連的必要許可權。

此外,在自訂權限原則時,可以通過指定Resource欄位來限定RAM使用者能夠通過會話管理串連的具體ECS執行個體。權限原則樣本如下:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:StartTerminalSession",
      "Resource": "*"
    }
  ]
}

關於CredentialsURISTS Token的更多說明,請參見建立AccessKey什麼是STS

為RAM使用者授權,請參見為RAM使用者授權

相關安全性群組設定

通過會話管理串連ECS執行個體時,需要確保ECS中啟動並執行雲助手Agent與雲助手服務端的網路連通性,即在安全性群組出方向設定以下規則:

與SSH、RDP等串連方式不同,由於會話管理是由雲助手Agent主動與會話管理服務端建立WebSocket串連,因此僅需允許存取出方向的雲助手服務端的WebSocket連接埠。關於會話管理的原理,請參見會話管理工作原理
重要
  • 如果使用普通安全性群組(包括預設安全性群組),預設情況下會允許存取所有的出方向流量,無需配置

  • 如果使用企業安全性群組,預設情況下會禁用所有出方向的流量,需要配置以下規則。更多企業安全性群組的說明,請參見普通安全性群組與企業級安全性群組

添加安全性群組規則的具體操作,請參見添加安全性群組規則

授權策略

優先順序

協議類型

連接埠範圍

授權對象

描述

允許

1

自訂TCP

443

100.100.0.0/16

用於訪問雲助手服務端。

允許

1

自訂TCP

443

100.0.0.0/8

訪問雲助手Agent安裝包所在伺服器,用於安裝或更新您的雲助手Agent

允許

1

自訂UDP

53

0.0.0.0/0

用於解析網域名稱。

此外,如果您計劃僅通過會話管理串連執行個體,為了增加ECS執行個體的安全性,您可以取消允許存取安全性群組入方向上的SSH連接埠(預設22)或者RDP連接埠(預設3389)的規則。

在自己的應用中整合會話管理遠程登入功能

通過會話管理遠端連線到雲端服務器或受管理的執行個體的完整代碼,請參考開源專案cloud-assistant-starter。本專案中AxtSession.tsx檔案包含了調用APIStartTerminalSession - 開始終端會話擷取WebSocketURL並建立串連的範例程式碼,將這段代碼移植到您自己的公司專屬應用程式中,即可使用會話管理串連執行個體。