継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Session Manager のログ出力形式をまとめる

タダです.

Session Manager のログ周りを触る機会があり,S3 と CloudWatch Logs へ Session Manager のログを出力できるのですが,それぞれの設定方法をまとめていこうと思います.

S3 に Session Manager のログを出力する場合

S3 にログを出力する場合は, セッションマネージャー > 設定よりS3 logging のセクションで設定していきます.今回は下記のように設定を行います.

f:id:sadayoshi_tada:20220126062750p:plain

上記の設定を保存後,Session Manager でターミナル作業を終了したら S3 にログが格納されます.ユーザー名-乱数.logというファイルになっており,中身はログの中身以下に記載のようなログとして記録されます.

f:id:sadayoshi_tada:20220126063133p:plain

ログの中身

Script started on 2022-01-25 06:49:24+0000
[?1034hsh-4.2$ 
[Ksh-4.2$ 
sh-4.2$ 

関連情報

docs.aws.amazon.com

CloudWatch Logs に Session Manager のログを出力する場合

CloudWatch Logs にログを出力する場合も セッションマネージャー > 設定よりCloudWatch logging のセクションで設定していきます.今回は下記のように設定を行います.

  • CloudWatch loggingEnable チェックボックスをオン
  • Choose your preferred logging optionStream session logs (Recommended) を選択
  • Enforce encryptionAllow only encrypted CloudWatch log groups チェックボックスをオン
  • リストからロググループを選択する から作成済みの暗号化済みのロググループを選択

f:id:sadayoshi_tada:20220126092931p:plain

上記の設定を保存後,Session Manager でターミナル作業中の操作が CloudWatch Logs にログが格納されます.ユーザー名-乱数というストリームになっており,中身は以下に記載のような JSON ログとして記録されます.

f:id:sadayoshi_tada:20220126093332p:plain

ログの中身

{
    "eventVersion": "1.0",
    "eventTime": "2022-01-25T12:08:12Z",
    "awsRegion": "ap-northeast-1",
    "target": {
        "id": "i-123456789101112"
    },
    "userIdentity": {
        "arn": "arn:aws:iam::123456789101112:user/ssm-test"
    },
    "runAsUser": "ssm-user",
    "sessionId": "ssm-test-123456789101112",
    "sessionData": [
        "sh-4.2$ sh-4.2$ "
    ]
}

関連情報

docs.aws.amazon.com

まとめ

Session Manager のログ保存方法について2種類あり,設定方法とログの中身を確認したのでまとめました.こういったログは監査の際に必要になったりすると思いますが,保存方法,保存期間や閲覧など要件に応じた選択をしていきたいと思います.