セッションマネージャー設定(ログ取得、OSユーザ指定、暗号化)

問題点~ログ取得ができていない、誰でもsudoできてしまう~

今後しばらくはセッションマネージャを使ってサーバにログインすることにする。
理由として、
・複数のローカルPCにrloginを設定していくのが面倒 ログ設定とか
・複数のローカルPCにログが散らばるのが面倒
・固定ipアドレスでない自宅IPをセキュリティグループに登録するのが面倒
・セッションマネージャの運用ノウハウを蓄積したい

こんなところだ。
不便なこともあるかもしれないがとりあえずはセッションマネージャに慣れていき、メリットデメリットを理解していく。

と思ったが、さっそくログはどうなるのか、と疑問に思った。
historyで確認すると、打ったコマンドは記録されているようだがそれだけではだめだ。
それと、デフォルトだとssm-userでセッション開始、してしまい、誰でもsudoできてしまうんだが・・・。
どうやらOSアカウントを使用してセッション開始するように変更できるようだ。
しかもiamユーザごとにOSアカウントを指定できるようだ。
これを利用しよう。

作業記録

ドキュメントを読みながら設定していこう。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-logging-auditing.html

CentOS7にscreenをインストールする

インストールいないとログデータが切り捨てられることがあります、とのこと。

sudo yum install screen

SSH許可をやめる

セキュリティグループで22ポート開放ルールを削除

セッションマネージャー設定(ログ取得、OSユーザ指定、暗号化)

System Manager → セッションマネージャー → 設定

項目設定解説
セッションのオペレーティングシステムユーザーを指定する[レ] Linux インスタンスの Run As サポートを有効にするssm-userではなくOS ユーザーでセッションを起動できる。
Enter operating system user name[ ]OS ユーザー名はIAMユーザにタグ付けで指定するのでここは空にしておく。
アクティブなセッションデータの KMS 暗号化を有効化する[ ] Key Management Service (KMS)EC2とローカルPCのデータやりとりに対し、デフォルトの TLS 1.2 暗号化に (AWS KMS) キー暗号化を追加できる。いったんはなしで。
Amazon S3 バケットにセッション出力を書き込む[レ] S3 バケットS3 バケットにセッションログデータを保存する。
ログデータを暗号化する[レ] ログデータを暗号化する暗号化を使用してログデータをS3に送信する。バケットも暗号化が有効になっている必要がある。
S3 バケット名[●] リストからバケット名を選択します ※任意のバケット名デフォルト暗号化済のバケットを指定
S3 のキープレフィックス - オプション[ ]サブフォルダに出力したい場合はサブフォルダ名を入力
CloudWatch Logs にセッション出力を送信する[ ] CloudWatch LogsCloudWatch Logsは今回使わない。

セッションマネージャーを使用するIAMユーザにタグをつける。

SSMSessionRunAs = <OSユーザ名>
※タグに登録するOSユーザはすでに作ってある前提です。
今回はsudo権限があるユーザですが、オペレータ向けのIAMユーザであればsudo権限のないOSユーザを指定するなどするなどできますね。

確認

①ssmでログインし、idコマンドを打つ。ユーザがssm-userでなくOSユーザになっていることを確認します

②s3にログが作成されていることを確認します。

ポイント

Enter operating system user nameは指定しないほうがよい。
※IAMユーザ、ロールごとに異なるOSユーザ名を指定することが推奨されているので。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-run-as.html

宿題

暗号化まわりは別途勉強しておこう。
https://qiita.com/leomaro7/items/ac2263f07a3635bd6359
https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-object-encrpytion-keys/
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/default-bucket-encryption.html