踏み台の代わりにSSM Session Manager

12月 2, 2021AWS,EC2

概要

  • プライベートサブネットに配置した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 を再起動して下さい。

 

 

参考資料

AWS,EC2

Posted by takaaki