Open1

EC2 Instance ConnectでSSH接続できない

hotate29hotate29

AWSで遊んでみようということでEC2のインスタンスを生やしてみた。EC2 Instance Connectを使うとブラウザを使ってSSH接続することができるそうで、これが手っ取り早い。早速やってみようと思ったら接続がコケるコケる!

なんやかんやあって解決に至ったので、ここに屍を置いておく。

前提

  • 設定はほとんどデフォルト
  • セキュリティーグループの設定で家のIPからのインバウンド通信のみを受け付けるようにした

状況

EC2 Instance Connectを使って接続しようとしたが、エラーが出て接続できなかった。

原因

EC2 Instance Connectを使った接続も当然ながらインバウンド通信である。その発信元となるIPアドレスからの接続を許可していなかった。

対処

EC2 Instance Connectを使う時の発信元となるIPアドレスからのインバウンド通信を許可する。

セキュリティーグループの設定で使えるマネージドプレフィックスリストというものがあり、EC2 Instance Connectの発信元IPもこれに収録されている。このリストを使用して通信を許可すると、無事SSH接続する事ができた。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-connect-prerequisites.html

参考

この記事に書いてあることに素直に従うと、セキュリティーグループにIPアドレスをハードコードすることになる。前述のマネージドプレフィックスリストを使った方が無難そう。

https://dev.classmethod.jp/articles/tsnote-ec2connect-connecterror/

IP Rangesがいっぱい載ってるjson。当初はここからEC2_INSTANCE_CONNECTなエントリを探し出しハードコードしていた。

https://ip-ranges.amazonaws.com/ip-ranges.json