Session Managerのログ保存
前回、「Session Managerを使用したEC2接続」をご紹介しましたが、この機能を使ってコマンドログを取ることができます。
前回の記事の設定を流用します。
Session ManagerでコマンドログをS3に保存する
バケットを作成
ログ保存用のバケットを作成します。
暗号化は「Amazon S3 マネージドキー (SSE-S3)」を選択し、その他の設定はデフォルトのままにします。
IAMロールを設定
S3にログを保存するためのインラインポリシーをロールに追加します。
S3保存と暗号化に必要な権限を付与します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::sessionmanager-log-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" } ] }
ポリシー作成は公式ドキュメントが参考になります。
S3エンドポイントを作成
インターネットを経由しない閉じた環境でS3に接続するため、S3エンドポイントをGateway型で作成します。
インスタンスが配置されているVPCと、サブネットで指定しているルートテーブルを選択します。
Session Managerのログ設定を有効化
System Managerの画面からSession Managerのログ設定を有効化します。
S3へのログ転送と暗号化を有効化し、転送先のバケットを指定します。
Session Managerで接続
EC2の画面から、Session Managerで接続します。
適当なコマンドを入力し、終了します。
Session Managerの画面で、セッション履歴が確認できます。
バケットにログファイルが格納されています。
まとめ
Session Managerでコマンドログを取る方法を紹介しました。
今回はEC2と同一アカウントのS3に保存しましたが、ログを保存するアカウントを別途用意するとより安心です。
さらに、権限を正しく設定することで、ログの改ざんを防ぐことも重要になります。