[小ネタ] プライベートサブネットのインスタンスにAWS Systems Manager セッションマネージャーでSSHしてみたくなって
おはようございます、もきゅりんです。
発端はこちらの記事でした。
プライベートサブネットでやってみたいゾ、と思ったところ、思わぬところでコケたので、、万が一同じような方が現れた場合に備えて、まとめておきます。
コケた理由としては、下記記事タイトルのまんまなのですが、そういうことでした。
学習しました。。
もう理解した方は、大丈夫です、話は既に済んだも同然です!!
どゆこと??という方はお進み下さい。
目次
1 Systems Manager 用 VPC エンドポイントを作成する
VPCからエンドポイントを作成していきます。
Systems Manager 用 VPC エンドポイントを作成する
今回は以下4つを作成します。
- com.amazonaws.region.ssm
- com.amazonaws.region.ec2messages
- com.amazonaws.region.ssmmessages
- com.amazonaws.region.s3
とりあえず設定してみているけど、InterfaceとGatewayって何なんでしたっけ?って方(僕ですね)は、VPC EndpointのInterfaceとGatewayについて分かりやすく書かれている記事はこちら。
PrivateLinkがリリースし新たにEC2, Systems Manager, ELB, Kinesis, Service CatalogがVPCエンドポイントに対応しました
プライベートサブネットを選んで、APIへのアクセスで通常のエンドポイント名を使用するためEnable for this endpointにチェックを入れます。今回、セキュリティグループはデフォルトです。
S3のポリシーはとりあえずデフォルトで、プライベートサブネットのルートテーブルに追加します。
2 プライベートサブネットにインスタンスを起動する
東京のリージョンからssm-agentを最新にしたいので、下記コマンドをユーザーデータに入力します。IAMロールにはSSMに必要なロール(e.g. AmazonEC2RoleForSSMのポリシー)を付与します。
特定のリージョンから SSM エージェント をダウンロードする
#!/bin/bash sudo yum -y install http://s3-ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/linux_amd64/amazon-ssm-agent.rpm
最初は特に何も考えず、下記コマンドで対応していて最新バージョンにできず、しばらく面食らいました、というのが冒頭の話です。
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
ちゃんとSSMの画面からインスタンスが表示されています。
バージョンも最新(2019/7/22時点)だ!
3 クライアントの準備する
こちらは、冒頭の
AWS Systems Manager セッションマネージャーでSSH・SCPできるようになりました
の「クライアントの準備」をご参照下さいませ!
4. 接続してみる
$ ssh -i ~/path/to/.pem ec2-user@i-12345 ... __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| ... Run "sudo yum update" to apply all updates. [ec2-user@ip-10-0-10-152 ~]$
で、できた。。
踏み台もなく、プライベートサブネットのインスタンスにSSHすることができました。
ああ、巨人の肩に乗りっぱなしジャーマンです。
いつかは、肩を貸せるくらいにはなりたい年頃。
以上です、どなたかのお役に立てば幸いです。
参考
AWS Systems Manager セッションマネージャーでSSH・SCPできるようになりました
PrivateLinkがリリースし新たにEC2, Systems Manager, ELB, Kinesis, Service CatalogがVPCエンドポイントに対応しました
プライベートサブネットに配置したEC2にAWS Systems Manager Session Managerを使ってアクセスする