Cloud Assistant が提供するセッションレコード配信機能を使用すると、Session Manager のセッションレコードを Simple Log Service または Object Storage Service (OSS) に配信して永続的に保存できます。このトピックでは、セッションレコード配信機能を構成し、配信されたセッションレコードを表示する方法について説明します。
背景情報
Session Manager のセッションレコードをクエリ、分析、監査、および永続化する場合、またはセキュリティとコンプライアンスの要件が高いシナリオで Session Manager を使用する場合は、セッションレコード配信機能を使用して Session Manager のセッションレコードを Simple Log Service Logstore または OSS バケットに配信して永続的に保存することをお勧めします。
課金
セッションレコード配信機能自体は無料です。ただし、この機能を使用すると、以下の項目に対して課金される場合があります。
配信されたレコードによって占有されるストレージ容量やログインデックストラフィックなど、Simple Log Service の課金対象項目。
詳細については、「課金概要」をご参照ください。
配信されたレコードによって占有されるストレージ容量や OSS のオブジェクト管理機能の使用時に発生するトラフィックなど、OSS の課金対象項目。
詳細については、「課金概要」をご参照ください。
手順 1: セッションレコード配信機能を構成する
セッションレコードを配信するには、Elastic Compute Service (ECS) コンソールで Simple Log Service プロジェクトと Logstore、または OSS バケットを指定します。次の操作を実行します。
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[ECS クラウドアシスタント] ページの右上隅にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[Session Manager の設定] タブをクリックして配信設定を構成します。
セッションレコードを Simple Log Service に配信する。
[Log Service に配信] を選択します。
既存の Simple Log Service プロジェクトと Logstore を選択します。
選択したリージョンに Simple Log Service プロジェクトまたは Logstore がない場合は、[Log Service コンソール] または [Logstores] をクリックして、Simple Log Service コンソールでプロジェクトまたは Logstore を作成します。プロジェクトまたは Logstore を作成したら、ECS コンソールの [Cloud Assistant の設定] ダイアログボックスに戻り、
アイコンをクリックして Simple Log Service プロジェクトまたは Logstore の最新リストを取得します。Simple Log Service プロジェクトの作成方法と Simple Log Service Logstore の作成方法については、「プロジェクトの管理」および「Logstore の管理」をご参照ください。Simple Log Service でログをクエリまたは分析するには、インデックス作成を有効にする必要があります。詳細については、「インデックスの作成」をご参照ください。
(オプション) Logstore のサーバ側暗号化方式を指定します。Logstore に配信されたセッションレコードは、この暗号化方式を使用して暗号化されます。詳細については、「データの暗号化」をご参照ください。
セッションレコードを OSS に配信する。
[OSS に配信] をクリックします。
既存の OSS バケットを選択し、セッションレコードを保存するルートディレクトリを入力します。
選択したリージョンに OSS バケットがない場合は、[OSS コンソール] をクリックして OSS コンソールでバケットを作成します。バケットを作成したら、ECS コンソールのダイアログボックスに戻り、
アイコンをクリックして OSS バケットの最新リストを取得します。OSS バケットの作成方法については、「バケットの作成」をご参照ください。(オプション)
[詳細オプション] の横にある アイコンをクリックして、サーバ側暗号化方式を指定します。説明OSS は、静的データを保護するためのサーバ側暗号化メカニズムを提供しています。このメカニズムは、セキュリティまたはコンプライアンスの要件が高いシナリオで使用できます。サーバ側暗号化方式を指定すると、セッションレコードを含むオブジェクトは、その方式を使用して暗号化されます。詳細については、「サーバ側暗号化」をご参照ください。
[OK] をクリックします。
配信設定を初めて構成すると、システムは Cloud Assistant に Simple Log Service リソースと OSS リソースへのアクセス権を付与するサービスロールを作成します。これにより、セッションレコードを特定の Simple Log Service Logstore または OSS バケットに配信できます。サービスロールが既に存在する場合は、システムはロールを再作成しません。ビジネス要件に基づいて Cloud Assistant のロールを管理できます。詳細については、「ECS Cloud Assistant のサービスロールの管理」をご参照ください。

セッションレコードはリージョンをまたいで配信することはできません。別のリージョンにセッションレコードを配信するには、リージョンを選択してから続行してください。
手順 2: Session Manager を使用してインスタンスに接続する
Session Manager を使用してインスタンスに接続すると、セッションレコードは指定された Simple Log Service Logstore または OSS バケットに自動的に配信されます。
詳細については、「ECS コンソールで Session Manager を使用してインスタンスに接続する」をご参照ください。
手順 3: セッションレコードを表示する
Simple Log Service コンソールまたは OSS コンソールに移動して、セッションレコードを表示できます。
Simple Log Service コンソールでセッションレコードを表示する
このセクションでは、ECS コンソールから Logstore にアクセスして、Logstore に配信されたセッションレコードのログを表示する方法について説明します。または、Simple Log Service コンソール にログインして Logstore にアクセスすることもできます。
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[ECS クラウドアシスタント] ページの右上隅にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[Session Manager の設定] タブをクリックし、[Log Service に配信] を選択します。
[Logstore] セクションの右側にある [Logstores] をクリックします。
ログの表示方法と分析方法については、「ログのクエリと分析」をご参照ください。
次の表は、セッションレコードのログのパラメーターについて説明しています。
パラメーター
説明
LoginUser
操作を実行するために使用されたユーザー名。
CallerUid
操作を実行するために使用されたアカウントの ID。
Content
コマンドとコマンド出力。
コマンドと出力は等号 (=) で区切られます。
InstanceId
インスタンスの ID。
SessionId
セッションの ID。
ChannelId
チャネルの ID。
TokenPrincipalId
Session Manager を使用してインスタンスが Security Token Service (STS) ロールに接続された後、実際に操作を実行するプリンシパルの ID。
OSS コンソールでセッションレコードを表示する
このセクションでは、ECS コンソールから OSS バケットにアクセスして、バケットに配信されたセッションレコードのオブジェクトを表示する方法について説明します。または、OSS コンソール にログインしてバケットにアクセスすることもできます。
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[ECS クラウドアシスタンス] ページの右上にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[セッション管理の設定] タブをクリックし、[OSS に配信] を選択します。
[バケット] セクションの右側にある [OSS コンソール] をクリックします。
特定のセッションレコードオブジェクトのディレクトリにアクセスします。
OSS コンソールに移動すると、配信設定の構成時に指定したルートディレクトリに移動します。階層的に自動生成および編成されたサブディレクトリ内のセッションレコードオブジェクトを表示できます。サブディレクトリは次の形式です。
<ルートディレクトリ>/<インスタンスのリージョン ID>/<セッションレコード日時 (年-月)>/<セッションレコード日時 (日)>/<インスタンス ID>/<SessionId>/<ChannelId>セッションレコードオブジェクトを分析します。
セッションレコードオブジェクトは YAML 形式です。オブジェクトをダウンロードして分析および監査できます。
次の Java コードサンプルは、YAML 形式のセッションレコードオブジェクトを示しています。
//YAML オブジェクトのドキュメント解析クラス。 public static class Document { //セッションの基本情報。 private MetaData metaData; //セッションレコード。 private List<SessionData> sessionData; } //セッションの基本情報。 public static class MetaData { //YAML オブジェクトの解析バージョン。 private String version; //操作を実行するために使用されたユーザー名。 private String loginUser; //操作を実行するために使用されたアカウントの ID。 private Long callerUid; //インスタンスの ID。 private String instanceId; //セッションの ID。 private String sessionId; //チャネルの ID。 private String channelId; //Session Manager を使用してインスタンスが STS ロールに接続された後、実際に操作を実行するプリンシパルの ID。 private String stsTokenPrincipalId; } //セッションレコード。 public static class SessionData { //セッションレコードの時刻。 private String time; //コマンドと対応する出力。ほとんどの場合、コマンドと出力は閉じ山かっこ (>) で区切られます。 private String content; } /** * Session Manager のセッションレコードを取得します。 * * @param deliveryFileName YAML オブジェクトの名前。 * @return セッションレコード。 */ 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; }
関連情報
DescribeTerminalSessions: Session Manager のセッションレコードをクエリします。
ModifyCloudAssistantSettings: Cloud Assistant 機能の構成を変更します。
DescribeCloudAssistantSettings: Cloud Assistant 機能の構成をクエリします。