【簡単】AWS Systems Manager Session Manager での実行ログをS3に吐き出してみた

2021.07.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

テクニカルサポートチームの丸屋 正志(Maruya Masashi)です。

そもそも AWS Systems Manager Session Manager(SSM) とは?!

セッションマネージャーは、対話型のワンクリックブラウザーベースのシェルまたは、 AWS CLI を介して Amazon EC2 インスタンスを管理出来る、完全に管理された AWS System Manager の機能です。セッションマネージャーは、インバウンドポートを開いたり、踏み台ホストを維持したり、SSHキーを管理したりすることなく、安全で監査可能なインスタンス管理を提供してくれます。

引用元 : AWS Systems Manager Session Manager

IAM ロール編

ここでは、EC2にアタッチする際のロールを作成していきます。
なお、ポリシー(AmazonS3FullAccess)を利用していますが、許可したいサービスだけに絞っていただいても構いません。

IAM ロールコンソールにアクセスし、右上の【ロールを作成】を選択します。

Image from Gyazo

ステップ 1 にて

下記を選択の上、【次のステップ : アクセス権限】を選択します。

  • 信頼されたエンティティの種類を選択 : 【AWS サービス】
  • ユースケースの選択 : 【EC2】

Image from Gyazo

ステップ 2 にて

下記2種類のポリシーを選択してアタッチします。

  • AmazonSSMManagedInstanceCore
  • AmazonS3FullAccess

Image from Gyazo

ステップ 3 にて

タグなどは、任意となっております。

ステップ 4 にて

ロール名を任意の名前して頂いて、アタッチされているポリシーが合っているかを確認します。

  • ロール名 : 【EC2-SSM】

Image from Gyazo

EC2 インスタンス編

『IAM ロール編』で作成しましたロール名を、この章で使用致します。

EC2 インスタンスコンソールにアクセスし、右上の【インスタンスを起動】を選択します。

『ステップ 3: インスタンスの詳細の設定』のIAMロール部分だけは選択していただき、他は任意で構いません。

  • IAM ロール : 【EC2-SSM】

Image from Gyazo

System Manager編

ここでは、ログの出力場所を指定します。

AWS System Manager セッションマネージャーコンソールにアクセスし、【設定】タブを選択後に【編集】を選択します。

Image from Gyazo

編集画面に移りましたら、下にスクロールし『S3 Logging』の所で【Enable】にチェックを入れます。

  • Choose S3 bucket : プルダウンメニューから、出力したいS3バケット名を選択

Image from Gyazo

実際に接続してみる

セッションの開始コンソールにアクセスし、ターゲットのインスタンスを選択し、【セッションを開始する】を選択します。

Image from Gyazo

開始しますと、別タブが開き下記の様に表示されます。
(右上の【終了】もしくは、exit→exitでセッションを終了するとS3に書き出されます)

Image from Gyazo

S3 編

バケット内のを確認してみると...実際にログが書き出されているのが確認出来ます!

Image from Gyazo

各種参考資料