はじめに
普段EC2に接続する際にセッションマネージャーやローカルでTera Termを使用していましたが、以前AWS CloudShellを利用してEC2に接続する際に、セキュリティグループのソース設定で困った時があったので備忘として残します。
CloudShellって何?
AWS CloudShellは、ブラウザーベースの事前認証済みシェルで、AWSマネージメントコンソール上から簡単にシェルを実行出来るサービスです。
シェル(Bash, PowerShell, Z Shell)やAWS CLIがインストールされているため、各コマンドラインツールが利用可能です。
詳細については、下記のユーザーガイドを参照してください。
・Web版
・PDF版
やってしまっていたこと
普段EC2接続を設定する際に、ローカルでTeratermやセッションマネージャーを使用していたので、セキュリティグループのインバウンドルールのソースをマイIPを設定していました。
しかし・・・CloudShellでEC2に接続しようとすると以下のように出てしまい接続できません!
[cloudshell-user@ip-10-0-XXX-XXX ~]$ ssh -i .ssh/XXXX-key.pem ec2-user@XX.XX.XX.X
ssh: connect to host XX.XX.XX.XX port 22: Connection timed out
原因は・・・
セキュリティグループのソースにCloudShellのグローバルIPを指定してないことが原因でした!!
そうです・・・CloudShellを使用するには、ローカルのグローバルIPではなく、Cloud ShellのグローバルIPをセキュリティグループに設定する必要がありました。
おバカでした・・・自分!!
再度やってみよう
てことで、気を取り直してCloudShellのグローバルIPを確認していきましょう!
以下コマンドでグローバルIPアドレスを確認します。
[cloudshell-user@ip-10-0-XXX-XXX ~]$ curl http://checkip.amazonaws.com/
XX.XX.XX.XX ←グローバルIP
上記で表示されたグローバルIPをセキュリティグループのソースに設定します。
これでセキュリティグループがうまく設定されて問題なくCloudShellを利用してSSH接続が可能になります!
さいごに
セキュリティグループのソース設定次第では不正アクセス等の原因となってしまいます。
重要な部分となりますので、理解を深めて必ず押さえておきたい部分ですね!