全部產品
Search
文件中心

Elastic Compute Service:會話操作記錄投遞

更新時間:Jun 19, 2024

您可以使用雲助手的會話操作記錄投遞功能,將會話管理(Session Manager)操作記錄投遞到您的Object Storage Service或Log ServiceSLS中,進行持久化儲存。本文介紹如何配置會話操作記錄投遞和查看已投遞的會話操作記錄。

背景資訊

如果您需要對會話管理(Session Manager)操作記錄進行查詢、分析、審計以及持久儲存等操作,或者您使用會話管理(Session Manager)用於安全性、合規性要求較高的情境,建議您使用會話操作記錄投遞功能,即將會話管理(Session Manager)操作記錄投遞到您指定的Object Storage Service或Log ServiceSLS中,進行持久化儲存。

說明

會話操作記錄投遞功能支援的地區,請參見支援的地區

計費說明

會話操作記錄投遞功能本身不收費,但使用該功能的過程中,您需要為如下內容付費:

  • 使用SLS儲存會話操作記錄或使用SLS的日誌索引等功能。

    具體計費資訊,請參見SLS計費概述

  • 使用OSS儲存會話操作記錄或使用OSS的檔案管理等功能。

    具體計費資訊,請參見OSS計費概述

步驟一:配置會話操作記錄投遞

您需要在ECS管理主控台上完成會話操作記錄投遞配置,指定儲存會話操作記錄的SLS專案(Project)和日誌庫(LogStore)、OSS儲存空間(Bucket),具體操作如下:

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇營運與監控 > 雲助手

  3. 在頂部功能表列左上方處,選擇地區。

    說明

    不支援跨地區投遞。如果您需要為不同地區投遞會話操作記錄,請分別在不同地區完成配置。

  4. ECS 雲助手頁面右上方,單擊設定

  5. 在彈出的雲助手設定對話方塊中,單擊會話管理設定頁簽,完成投遞配置。

    • 會話操作記錄投遞到Log ServiceSLS。

      1. 選中投遞到Log ServiceSLS

      2. 選擇已建立的SLS專案和日誌庫。

        • 如果還未建立SLS專案和日誌庫,請單擊右側的開啟SLS控制台管理日誌庫開始即時建立,建立完成後返回該對話方塊單擊重新整理表徵圖表徵圖,查看最新的列表。具體操作,請參見管理Project管理Logstore

        • 在SLS中查詢、分析日誌還需要提前開啟索引,具體操作,請參見建立索引

        • (可選)您還可以設定日誌庫的伺服器端加密方式,會話操作記錄投遞會繼承該加密方式。具體操作,請參見資料加密

    • 會話操作記錄投遞到Object Storage Service。

      1. 選中投遞到Object Storage Service

      2. 選擇已建立的OSS儲存空間,並填寫用於儲存會話操作記錄檔案的根目錄。

        如果還未建立OSS儲存空間,請單擊右側的開啟OSS控制台開始即時建立,建立完成後返回該對話方塊單擊重新整理表徵圖表徵圖,查看最新的列表。具體操作,請參見建立儲存空間

      3. (可選)單擊進階選項後的表徵圖.png表徵圖,設定伺服器端加密方式。

        說明

        OSS提供了伺服器端加密機制,提供待用資料保護,適合於對於檔案儲存體有高安全性或者合規性要求的應用情境。若您設定了伺服器端加密方式,將為會話操作記錄投遞檔案(Object)進行對應的加密。更多資訊,請參見伺服器端加密

  6. 單擊確定

    首次進行投遞配置時,系統自動授權雲助手擷取訪問SLS和OSS資源的許可權,即自動為您建立一個服務關聯角色,以便將會話操作記錄投遞到您指定的SLS日誌庫或OSS儲存空間中。如果已經存在,則不會重複建立。您可以手動管理授權,具體操作,請參見管理雲助手服務關聯角色

    111.png

步驟二:使用會話管理功能串連執行個體

使用會話管理功能串連執行個體後,會話操作記錄會自動投遞至您指定的SLS日誌庫或OSS儲存空間中。

通過會話管理串連執行個體的具體操作,請參見通過會話管理串連執行個體

步驟三:查看會話操作記錄

您可以前往SLS控制台或OSS控制台查看會話操作記錄,具體操作如下:

在SLS查看會話操作記錄

本步驟為從ECS控制台跳轉至指定日誌庫的方法,您也可以直接登入SLS控制台,自行尋找對應的日誌庫。

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇營運與監控 > 雲助手

  3. 在頂部功能表列左上方處,選擇地區。

  4. ECS 雲助手頁面右上方,單擊設定

  5. 在彈出的雲助手設定對話方塊中,單擊會話管理設定頁簽,然後選中投遞到Log ServiceSLS

  6. 單擊請選擇Log Service日誌庫地區右側的管理日誌庫

    • 查看和分析日誌的具體操作,請參見查詢和分析日誌

    • 會話操作記錄中,具體參數說明如下。

      參數

      描述

      LoginUser

      使用會話管理功能串連執行個體後,進行操作的使用者名稱稱。

      CallerUid

      使用會話管理功能串連執行個體後,進行操作的帳號ID。

      Content

      使用會話管理功能串連執行個體後,操作命令與對應的輸出。

      操作命令與輸出結果間一般以“=======”分隔。

      InstanceId

      使用會話管理功能串連到的執行個體ID。

      SessionId

      使用會話管理功能串連執行個體的會話ID。

      ChannelId

      使用會話管理功能串連執行個體的通道ID。

      TokenPrincipalId

      使用會話管理功能,通過STS角色扮演方式串連執行個體後,進行操作的實際委託人ID。

在OSS查看會話操作記錄

本步驟為從ECS控制台跳轉至指定儲存空間的方法,您也可以直接登入OSS控制台,自行尋找對應的儲存空間。

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇營運與監控 > 雲助手

  3. 在頂部功能表列左上方處,選擇地區。

  4. ECS 雲助手頁面右上方,單擊設定

  5. 在彈出的雲助手設定對話方塊中,單擊會話管理設定頁簽,然後選中投遞到Object Storage Service

  6. 單擊請選擇儲存空間地區右側的開啟OSS控制台

  7. 進入儲存某個會話操作記錄相關檔案的目錄。

    跳轉到OSS控制台後,系統會自動定位到您在配置會話操作記錄投遞時填寫的檔案根目錄,您可以逐級進入自動產生的子目錄,查看會話記錄投遞檔案,目錄格式如下:

    <檔案根目錄>/<執行個體所在地區ID>/<會話操作時間(年-月)>/<會話操作時間(日)>/<執行個體ID>/<SessionId>/<ChannelId>.yaml

  8. 分析會話操作記錄檔案。

    會話操作記錄檔案為YAML格式,您可以下載並解析YAML檔案,進行分析、審計等操作。

    以解析會話操作記錄YAML檔案的Java代碼為例,樣本如下:

    //會話操作記錄的YAML檔案解析類
    public static class Document {
        //會話基本資料
        private MetaData metaData;
        //會話操作記錄
        private List<SessionData> sessionData;
    }
    
    //會話基本資料
    public static class MetaData {
        //解析版本
        private String version;
        //使用會話管理功能串連執行個體後,進行操作的使用者名稱稱
        private String loginUser;
        //使用會話管理功能串連執行個體後,進行操作的帳號ID
        private Long callerUid;
        //使用會話管理功能串連到的執行個體ID
        private String instanceId;
        //使用會話管理功能串連執行個體的會話ID
        private String sessionId;
        //使用會話管理功能串連執行個體的通道ID
        private String channelId;
        //使用會話管理功能,通過STS角色扮演方式串連執行個體後,進行操作的實際委託人ID
        private String stsTokenPrincipalId;
    }
    
    //會話操作記錄
    public static class SessionData {
        //會話操作時間
        private String time;
        //操作命令與對應的輸出,操作命令與輸出結果間一般以“>>>>>>>>>>>>”分隔
        private String content;
    }
    
    /**
    * 擷取Session Manager會話記錄
    *
    * @param deliveryFileName Session Manager會話記錄投遞的yaml檔案
    * @return Session Manager會話記錄
    */
    public Document getSessionData(String deliveryFileName) {
        Yaml yaml = new Yaml(new Constructor(Document.class));
    	  File deliveryFile = new File(deliveryFileName);
    	  try (InputStream deliveryInputStream = new FileInputStream(deliveryFile)) {
            Document document = (Document) yaml.load(deliveryInputStream);
            //會話基本資料
            //MetaData metaData = document.getMetaData();
            //會話操作記錄
            //List<SessionData> sessionDataList = document.getSessionData();
            return document;
        } catch (IOException exception) {
            // log.error("");
        }
        return null;
    }