■ はじめに
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の設定など があるので 必要な場合は設定しておく(以下の公式サイトを参照)
操作手順
[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 S3 ~ AWS CLIでS3を操作する ~
https://dk521123.hatenablog.com/entry/2017/04/01/235355