【AWS】AWS Systems Manager ~ Session Manager ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/10/05/121119

の続き。

 今回は、SSH経由ではなく、
AWS Systems Manager (SSM) の Session Manager (セッションマネージャ)
を使って、EC2にアクセスする方法を記す。(はまりポイントもメモ)

目次

【1】Session Manager とは?
【2】Session Manager の 利点
【3】Session ManagerでEC2にアクセスする
 1)EC2一覧からアクセスする
【4】使用上の注意
 1)SSM Agent
 2)IAMロール
【5】EC2 にアクセスできるように設定する
 1)設定環境
 2)IAM
 3)VPC
 4)Session Manager
【6】Tips
 1)ユーザを切り替える

【1】Session Manager とは?

* EC2インスタンスにブラウザ上から CLI操作 ができる機能
 => Session ManagerでEC2にアクセスできる

【2】Session Manager の 利点

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html

より抜粋
~~~~~~~
1)IAM ポリシーを使用したインスタンスへの一元的なアクセス制御

2)インバウンドポートを開いたり、踏み台ホストや SSH キーを
  管理したりする必要はありません

3)コンソールと CLI からインスタンスへのワンクリックアクセス

4)ポート転送

5)Windows と Linux の両方でクロスプラットフォームをサポート

6)ログ記録と監査のセッションアクティビティ
~~~~~~~

個人的な意見

* SSH(ポートも空けなくていい)、秘密鍵、踏み台サーバを使わずに、
 AWSマネジメントコンソール上で、
 極力セキュアにEC2を操作できる点がうれしい

【3】Session ManagerでEC2にアクセスする

1)EC2一覧からアクセスする

* AWS Management ConsoleのEC2一覧から対象EC2を右クリックし
 [Connect]-[Session Manager]を選択し、「Connect」ボタン押下

【4】使用上の注意

1)SSM Agent

* SSMを利用するためには、
「SSMエージェント」を操作対象のEC2インスタンスへインストールする必要がある
 => 事前にインストールされているAmazon Linux 2はいいが、
  それ以外のEC2では、SSHなどで入ってインストールする必要がある

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ssm-agent.html

より、要約して抜粋
~~~~
AWS Systems Manager エージェント (SSM Agent) は、
Amazon EC2インスタンスなどで実行される Amazon のソフトウェアです。
SSM Agent を使用すると、Systems Manager でこれらのリソースを更新、管理、設定できるようになります。
~~~~

「SSMエージェント」が動いているの確認方法
https://dev.classmethod.jp/articles/tsnote-ssm-agent-preinstalled-check-status-01/

# Amazon Linux    
sudo status amazon-ssm-agent

# Amazon Linux 2   
sudo systemctl status amazon-ssm-agent
=>amazon-ssm-agent start/runningと表示されればOK

2)IAMロール

EC2に割り当てるIAMロール

セッションマネージャーを利用してEC2インスタンスにアクセスするために
「AmazonSSMManagedInstanceCore」をアタッチする

【5】EC2 にアクセスできるように設定する

1)設定環境

EC2 : Amazon Linux 2 を想定して手順を記載する

※ Amazon Linux 2 の場合、
 デフォルトで ssm-agentをインストールされているので楽

2)IAM

[1] EC2に付与されているIAMロールに、AmazonEC2RoleforSSMポリシーを付与する

3)VPC

[1] EC2インスタンスにアクセスができるように、
 VPCエンドポイントにSSMエンドポイントを追加する

4)Session Manager

Session Manager を使って EC2 にアクセスする

設定(初回の1回のみ。※1)

[1] [Systems Manager]-[セッションマネージャ]-[設定]-[編集]を選択

[2] Linux インスタンスの Run As サポートを有効するために
 「Enable Run As support for Linux instances」にチェックを入れる

[3] [Enter an operating system user name for starting sessions] に、
 セッションの開始に使用するターゲットインスタンスの
 オペレーティングシステムユーザーアカウントの名前を入力
(ここでは「ec2-user」を入力)

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-run-as.html
※1

これをやらなかったことにより、
セッションを開始しても真っ黒画面のままで操作できなかった
★ここではまった★

※2

他にも、KMSの設定 や CloudWatch Logsの設定など があるので
必要な場合は設定しておく(以下の公式サイトを参照)

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started-configure-preferences.html

操作手順

[1] [Systems Manager]-[セッションマネージャ]-[セッションの開始]を選択する

[2] 対象インスタンスを選択し、「セッションの開始」を押下

【6】Tips

1)ユーザを切り替える

* 「sudo su」や「sudo su --login」で root にもなれる。
* 「sudo su --login <UserName>」で別ユーザに切替

参考文献

https://qiita.com/WisteriaWave/items/674996391c1de0552c06
https://dev.classmethod.jp/articles/201907-ssm-session-manager-with-your-own-os-user-account/
https://qiita.com/comefigo/items/b705325d082018ab2348
https://tech-note-meeting.com/2021/10/27/post-1239/
https://baresupport.jp/blog/2022/03/14/82/

関連記事

AWS Systems Manager ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/05/121119
Amazon S3AWS CLIでS3を操作する ~
https://dk521123.hatenablog.com/entry/2017/04/01/235355