プライベートサブネットからインターネットを使いたい【AWS】

EC2アイキャッチ画像

・プライベートサブネットからインターネットを使用したい
・プライベートサブネット上からインターネット上のEC2に踏み台経由でSSHしたい

プライベートサブネット上のEC2から、パブリックサブネット上のEC2にポートフォワードして
インターネット経由でSSH接続を行ってみようと思います。

前提条件

・サブネットは作成済み
・EC2作成済み
・パブリクサブネット⇄プライベートサブネットは疎通確認済み
・パブリックサブネット→IGWは関連付け済み
・接続先のEC2のSG設定済み(全てのIPからのSSH接続許可)

プライベートサブネットのSGを修正

パブリックにあるEC2には8443のポートを使用してポートフォワードを行うため、8443ポートのインバウンドを許可します。

パブリックサブネットのEC2のSGを修正して22ポートのSSHを許可します。

ポートフォワード準備

最終的に下記コマンドよりポートフォワードの確認を行います。

ssh -L 8443:[SSH接続したいEC2のIP]:22 -i C:\path\to\key.pem ec2-user@10.1.1.68

※パーミッションのエラーが出た場合は、権限からUsersを削除してください。

keyファイルを右クリックし「Property」をクリックし、Advancedをクリック

下記画面でUsersにクリックした状態で「Enable inheritance」をクリック

Convert inherited~をクリック

Usersを選択しながら「Remove」をクリックしUsersが消えたらApplyをクリック

まずSSH接続をできることを確認します。

ssh -i ~/path/to/key.pem ec2-user@[接続先EC2のIP]

hostsファイルの編集

次にポートフォワードでlocalhostを使用できるようにhostsファイルを編集します。

C:\Windows\System32\drivers\etc

下記のようにhostsファイルに追加

繋ぎたいEC2のグローバルIP localhost

SSH接続確認

hostsファイルを修正し準備が整いましたので、もう一度ポートフォワード接続からやり直してみます。

ssh -L 8443:[接続したいEC2のGIP]:22 -i C:\path\to\key.pem\flowlog-test2.pem ec2-user@[ポートフォワード先EC2]

次に接続したいEC2にSSH接続を行います。

ssh -p 8443 -i [接続するEC2の鍵] ec2-user@localhost

接続したいEC2に無事接続できました。
以上です。誰かの参考になれば幸いです。