タダです.
Session Manager のログ周りを触る機会があり,S3 と CloudWatch Logs へ Session Manager のログを出力できるのですが,それぞれの設定方法をまとめていこうと思います.
S3 に Session Manager のログを出力する場合
S3 にログを出力する場合は, セッションマネージャー > 設定
よりS3 logging
のセクションで設定していきます.今回は下記のように設定を行います.
Send session logs to S3
のEnable
チェックボックスをオンEnforce encryption
のAllow only encrypted S3 buckets
チェックボックスをオンリストからバケット名を選択します
から作成済みのオブジェクトの暗号化ができるバケットを選択
上記の設定を保存後,Session Manager でターミナル作業を終了したら S3 にログが格納されます.ユーザー名-乱数.log
というファイルになっており,中身はログの中身以下に記載のようなログとして記録されます.
ログの中身
Script started on 2022-01-25 06:49:24+0000 [?1034hsh-4.2$ [Ksh-4.2$ sh-4.2$
関連情報
CloudWatch Logs に Session Manager のログを出力する場合
CloudWatch Logs にログを出力する場合も セッションマネージャー > 設定
よりCloudWatch logging
のセクションで設定していきます.今回は下記のように設定を行います.
CloudWatch logging
のEnable
チェックボックスをオンChoose your preferred logging option
のStream session logs (Recommended)
を選択Enforce encryption
のAllow only encrypted CloudWatch log groups
チェックボックスをオンリストからロググループを選択する
から作成済みの暗号化済みのロググループを選択
上記の設定を保存後,Session Manager でターミナル作業中の操作が CloudWatch Logs にログが格納されます.ユーザー名-乱数
というストリームになっており,中身は以下に記載のような JSON ログとして記録されます.
ログの中身
{ "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$ " ] }
関連情報
まとめ
Session Manager のログ保存方法について2種類あり,設定方法とログの中身を確認したのでまとめました.こういったログは監査の際に必要になったりすると思いますが,保存方法,保存期間や閲覧など要件に応じた選択をしていきたいと思います.