Windows
AWS

WindowsからでもSession Manager for Shell Access

https://dev.classmethod.jp/cloud/ssm-session-manager-from-mac-to-linux-ec2/

AWSでこんなことができるようになったらしいです。
キーペア作って22開けてSSH接続とか不要とのこと。AWSすげー。

Windowsでもできるのかなってやってみました。

セットアップ

ここに書かれてる必要なものを入れます。

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

まず古いAWSCLIを消して最新のものを入れました。

https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi

image.png

aws-cli/1.16.13が入りました。

c:\work\AWS>aws --version
aws-cli/1.16.13 Python/3.6.0 Windows/10 botocore/1.12.3

c:\work\AWS>

接続クライアント側にもSSMマネージャーのプラグインが必要になるので入れました。

https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe

image.png

SSMマネージャーのプラグイン、1.0.0が入りました。

c:\work\AWS>session-manager-plugin --version
1.0.0.0

c:\work\AWS>

EC2に接続

EC2につなげてみたいと思います。
UbuntuのEC2を作成して、AmazonEC2RoleforSSMのIAMロールを割り当てておきます。

image.png

Ubuntuに入っていたSSMエージェントのVersionが古かったのでいったんSSHで接続して入れ直しました。

ubuntu@ip-172-31-20-135:~$ sudo snap list amazon-ssm-agent
Name              Version    Rev  Tracking  Publisher  Notes
amazon-ssm-agent  2.2.619.0  295  stable/…  aws        classic
ubuntu@ip-172-31-20-135:~$ sudo snap remove amazon-ssm-agent
amazon-ssm-agent removed
ubuntu@ip-172-31-20-135:~$

インストールします。

ubuntu@ip-172-31-20-135:~$ wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb
--2018-09-13 13:22:37--  https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb
Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.225.19
Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.225.19|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17471702 (17M) [binary/octet-stream]
Saving to: ‘amazon-ssm-agent.deb’

amazon-ssm-agent.deb   100%[=========================>]  16.66M  4.70MB/s    in 4.8s

2018-09-13 13:22:43 (3.45 MB/s) - ‘amazon-ssm-agent.deb’ saved [17471702/17471702]

ubuntu@ip-172-31-20-135:~$ sudo dpkg -i amazon-ssm-agent.deb
Selecting previously unselected package amazon-ssm-agent.
(Reading database ... 51281 files and directories currently installed.)
Preparing to unpack amazon-ssm-agent.deb ...
Preparing for install
-> Systemd detected
active
Failed to stop amazon-ssm-agent.service: Unit amazon-ssm-agent.service not loaded.
Unpacking amazon-ssm-agent (2.3.50.0-1) ...
Setting up amazon-ssm-agent (2.3.50.0-1) ...
Starting agent
Created symlink from /etc/systemd/system/network-online.target.wants/amazon-ssm-agent.service to /lib/systemd/system/amazon-ssm-agent.service.
Processing triggers for ureadahead (0.100.0-19) ...
ubuntu@ip-172-31-20-135:~$ sudo systemctl status amazon-ssm-agent
● amazon-ssm-agent.service - amazon-ssm-agent
   Loaded: loaded (/lib/systemd/system/amazon-ssm-agent.service; enabled; vendor preset:
   Active: active (running) since Thu 2018-09-13 13:23:11 UTC; 28s ago
 Main PID: 2078 (amazon-ssm-agen)
   CGroup: /system.slice/amazon-ssm-agent.service
           mq2078 /usr/bin/amazon-ssm-agent

Sep 13 13:23:14 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Startu
Sep 13 13:23:14 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Startu
Sep 13 13:23:14 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Startu
Sep 13 13:23:15 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Messag
Sep 13 13:23:15 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Messag
Sep 13 13:23:15 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Messag
Sep 13 13:23:15 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Messag
Sep 13 13:23:15 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:12 INFO [Messag
Sep 13 13:23:22 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:22 INFO [Messag
Sep 13 13:23:37 ip-172-31-20-135 amazon-ssm-agent[2078]: 2018-09-13 13:23:37 INFO [Health
ubuntu@ip-172-31-20-135:~$

つないでみます。

c:\work\AWS>aws --profile tokyo ssm start-session --target i-0904327474a9224fe


Starting session with SessionId: xxxxxx-0889f97c50da4cba8

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"
$ uname -a
Linux ip-172-31-20-135 4.4.0-1065-aws #75-Ubuntu SMP Fri Aug 10 11:14:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ w
 13:32:00 up 52 min,  0 users,  load average: 0.00, 0.02, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
$

つながりました。
セキュリティグループを空にしてもそのまま接続できてました。

image.png

セキュリティグループ設定したりキーペア作成して管理したりが不要になるのでいいですね!