Cloud Assistantが提供するセッションレコードの配信機能を使用して、セッションマネージャーのセッションレコードを永続的なストレージ用のSimple Log ServiceまたはObject Storage Service (OSS) に配信できます。 このトピックでは、セッションレコードの配信機能を設定し、配信されたセッションレコードを表示する方法について説明します。
背景情報
session Managerのセッションレコードを照会、分析、監査、および保持する場合、または高いセキュリティとコンプライアンスが必要なシナリオでSession Managerを使用する場合は、Session Record Delivery機能を使用して、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ページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[セッションマネージャーの設定] タブをクリックして配信設定を設定します。
セッションレコードをSimple Log Serviceに配信します。
[Log Serviceに配信] を選択します。
既存のSimple Log ServiceプロジェクトとLogstoreを選択します。
選択したリージョンにSimple Log ServiceプロジェクトまたはLogstoreがない場合は、Log ServiceコンソールまたはLogstoreをクリックして、Simple Log ServiceコンソールでプロジェクトまたはLogstoreを作成します。 プロジェクトまたはログストアを作成したら、ECSコンソールの [クラウドアシスタントの設定] ダイアログボックスに戻り、アイコンをクリックして、Simple Log Serviceプロジェクトまたはログストアの最新リストを取得します。 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を使用してインスタンスに接続すると、セッションレコードは指定されたSimple Log Service LogstoreまたはOSSバケットに自動的に配信されます。
詳細については、「Session Managerを使用したインスタンスへの接続」をご参照ください。
ステップ3: セッションレコードの表示
Simple Log ServiceコンソールまたはOSSコンソールに移動して、セッションレコードを表示できます。
Simple Log Serviceコンソールでのセッションレコードの表示
このセクションでは、ECSコンソールからLogstoreにアクセスして、Logstoreに配信されるセッションレコードのログを表示する方法について説明します。 または、Simple log ServiceコンソールにログインしてLogstoreにアクセスすることもできます。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部ナビゲーションバーの左上でリージョンを選択します。
ECS Cloud Assistantページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[セッションマネージャーの設定] タブをクリックし、[Log Serviceへの配信] を選択します。
Logstoreセクションの右側にあるLogstoreをクリックします。
ログの表示と分析方法については、「ログの照会と分析」をご参照ください。
次の表に、セッションレコードのログのパラメーターを示します。
パラメーター
説明
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ページの右上隅にある [設定] をクリックします。
[クラウドアシスタントの設定] ダイアログボックスで、[セッションマネージャーの設定] タブをクリックし、[OSSに配信] を選択します。
[バケット] セクションの右側で、[OSSコンソール] をクリックします。
特定のセッションレコードオブジェクトのディレクトリにアクセスします。
OSSコンソールに移動すると、配信設定の設定時に指定したルートディレクトリに移動します。 自動的に生成され、階層的に編成されたサブディレクトリ内のセッションレコードオブジェクトを表示できます。 サブディレクトリの形式は次のとおりです。
<ルートディレクトリ>/<インスタンスのリージョンID>/<セッション記録時間 (年-月)>/<セッション記録時間 (日)>/<インスタンスID>/<SessionId>/<ChannelId>
セッションレコードオブジェクトを分析します。
セッションレコードオブジェクトはYAML形式です。 分析と監査のためにオブジェクトをダウンロードできます。
次のサンプルJavaコードは、YAML形式のセッションレコードオブジェクトを示しています。
//The document parsing class of the YAML object. public static class Document { //The basic information about the session. private MetaData metaData; //The session records. private List<SessionData> sessionData; } //The basic information about the session. public static class MetaData { //The parsing version of the YAML object. private String version; //The username used to perform operations. private String loginUser; //The ID of the account used to perform operations. private Long callerUid; //The ID of the instance. private String instanceId; //The ID of the session. private String sessionId; //The ID of the channel. private String channelId; //The ID of the principal that actually performs operations after the instance is connected with an STS role by using Session Manager. private String stsTokenPrincipalId; } //The session records. public static class SessionData { //The time of the session record. private String time; //The command and corresponding output. In most cases, the command and the output are separated by closing angle brackets (>). private String content; } /** * Obtain the session records of Session Manager. * * @param deliveryFileName. The name of the YAML object. * @return. The session records. */ 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); //The basic information about the session. //MetaData metaData = document.getMetaData(); //The session records. //List<SessionData> sessionDataList = document.getSessionData(); return document; } catch (IOException exception) { // log.error(""); } return null; }