踏み台の代わりにSSM Session Manager
Contents
概要
- プライベートサブネットに配置したEC2 にsshログインする際は、これまで踏み台を利用しておりました。今更ですが、踏み台に SSMの Session Manager を利用することにしました。
Session Manager の前提条件
- Linux, macOS はサポートされているすべてのOS Version で利用可。Windows は、Windows Server 2012 から Windows Server 2019 までをサポートになります。
- SSM Agent がインストールされていること。Amazon Linux の場合は、デフォルトでインストールされています。なお、必要なバージョンは、2.3.68.0 以降となります。
- Session Manager ポート転送を利用する場合は、バージョン 2.3.672.0 以降がインストールされている必要があります。セッションでシェルプロファイルを使用するには、バージョン 3.0.161.0 以降がインストールされている必要があります。
- Amazon CloudWatch Logs を使用してセッションデータをストリーミングするには、バージョン 3.0.284.0 以降がインストールされている必要があります。
- AWS CLI を利用する場合は、CLI のバージョン 1.16.12 以降がインストールされている必要があります。
Session Manager の準備
SSM Agent のインストール
- Session Managerを利用する前に、対象のEC2 OS にSSM Agent がインストールされ、SSM Agent のサービスが開始していることを確認します。Amazon Linux はデフォルトでインストールされています。
$ systemctl status amazon-ssm-agent
● amazon-ssm-agent.service - amazon-ssm-agent
Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-28 10:55:25 UTC; 3min 22s ago
Main PID: 2972 (amazon-ssm-agen)
CGroup: /system.slice/amazon-ssm-agent.service
tq2972 /usr/bin/amazon-ssm-agent
mq3108 /usr/bin/ssm-agent-worker
- SSM Agent が未インストールの場合は、対象のEC2 OSに amazon-ssm-agent をインストールします。
$ sudo rpm -i amazon-ssm-agent.rpm
warning: amazon-ssm-agent.rpm: Header V4 RSA/SHA1 Signature, key ID 693eca21: NOKEY
Created symlink from /etc/systemd/system/multi-user.target.wants/amazon-ssm-agent.service to /etc/systemd/system/amazon-ssm-agent.service.
$ yum list installed amazon-ssm-agent
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Installed Packages
amazon-ssm-agent.x86_64 3.1.501.0-1 installed
IAM ロールのアタッチ
- 対象のEC2 OSに AmazonSSMManagedInstanceCore ポリシーを含むロールを作成し、EC2 にアタッチします。
Session Manager の開始
- インスタンスを選択し、「接続」を選択します。以下の画面が表示されるため、「接続」を押します。
- Session Manager のウィンドウが表れました。"sudo" も実行できます。
- SSM Agent が未インストール or IAMロールがアタッチされていない場合は、以下の画面となります。
- SSM Agent はインストールされていましたが、後からIAMロールをアタッチした場合、インスタンスに接続できませんでした。対象のEC2 OS でamazon-ssm-agent を再起動後にインスタンスに接続できました。状況に応じて、IAMロールをアタッチ後、amazon-ssm-agent を再起動して下さい。