【VPC】踏み台経由でのログオン・ログイン

AWS運用自動化サービス「Cloud Automator」

前回 の続き、今回は踏み台サーバーを利用したログオン/ログインの方法について説明します。

ところが、このタイミングで同僚の山本よりこんな記事が。
AWS Systems Manager のポートフォワーディング機能がリリースされました
これからはこちらを使えばいいのか~、と思いつつも、
汎用性が高そうな表題の件、紹介します。
ちなみに山本はナイスガイなので、私の記事をつぶしにきているわけではないです、たぶん。

はじめに

本記事では広く使われており、入手も容易な「Tera Term」を使用しますが、
SSH ポートフォワード機能を使えるリモートログオンクライアントソフトなら同様の手順でログインできるはずです。

このログイン方法については多くの先達が既に記事にされており、二番煎じの感もありますが、
なるべく分かりやすく書いていきます。

構成図

前回のおさらいです。下図の構成で、外部からプライベートサブネットのインスタンスに対して、
 Windows:リモートデスクトップ
 Linux:コマンドライン
でOSを操作する状態を実現します。

手順

Windowsサーバーへのリモートデスクトップ接続

1.Tera Termを起動し、まずは踏み台サーバーへSSHログインします。
 EC2インスタンスなので、キーペアを使ってec2-userでログインできます。


ここで「そもそもログイン画面が出ないよ~」という方は、こちら をご参照ください。

2.Tera Termのメニューで、[設定]メニューから[SSH転送]を選択します。

3.[追加]をクリックして、設定を追加します。
 各項目は、下表を入力します。

項目 入力内容
ローカルのポート 既にPC上で使用しているポート(※)以外で任意のポート
リッスン 空欄で問題ありません
リモート側ホスト アクセスしたいインスタンスのIPアドレス
ポート アクセスしたいサービスのポート(ここではRDPなので3389)

※「既にPC上で使用しているポート」を調べるにはこちら

4.[OK]をクリックします。ポートフォワードが動作した状態です。

5.リモートデスクトップアプリを起動して、127.0.0.1:<設定した任意のポート>の形式で入力してアクセスします。
※ 127.0.0.1って何だ?という方は、こちら

6.ログオン画面が表示され、そのままリモートデスクトップで対象のインスタンスにログインできます。

LinuxサーバーへのSSH接続

1~4は同じです。3の手順で「ポート」に22(SSH)を入れます。

5.Tera Termをもう一つ起動して、127.0.0.1:<設定した任意のポート>の形式で入力してアクセスします。

6.ログイン画面が表示され、そのままTera Termで対象のインスタンスにログインできます。


「マイIP」機能

そもそもログイン画面が出ない場合は、前回の記事を元に、踏み台サーバーのセキュリティグループを見直してみてください。
今自分が操作しているPCの、つまり接続元となるグローバルIPアドレスが、「インバウンド」ルールで許可されている必要があります。

ここで豆知識を一つ、セキュリティグループを設定するために、今の自分の環境の「AWSから認識されているIPアドレス」(多くはグローバルIPアドレス)を知る方法があります。
それは、マネジメントコンソールから踏み台サーバーに紐づくセキュリティグループを開き、
ルールの編集画面で「マイIP」を選択することです。
今の自分の環境の、AWS環境から認識されているIPアドレス(この場合はグローバルIPアドレス)が自動で入力されます。
自動で入力された値で設定を保存することにより、確実に接続元のグローバルIPアドレスが許可設定できます。

「既にPC上で使用しているポート」を調べるには

「netstat」コマンドを使用します。(Windows PCの場合)
使用しているポートの一覧を確認できます。
参考:https://www.atmarkit.co.jp/ait/articles/0207/20/news003.html

オプションによっていろいろな表示のさせ方が可能ですが、私は「netstat -nao」(なお)で覚えてしまっています。

使用しているポート番号を確認の後、一覧に表示されていない「使用していないポート番号」を選ぶのですが、
大体は手順図の通り、通信先ポート番号が3389だったら13389、22だったら10022と、10000を足しておけば問題なく、分かりやすいかと思います。

127.0.0.1 とは

ループバックアドレスの一つです。ループバックアドレスの詳細については別途調べていただくとして、
ここでは「自分自身を表すIPアドレス」ととらえていただければ問題ありません。

Tera Termの機能で、自分自身のPCであたかもサーバーのように機能してポートを開けて、
そのポートとSSHポートフォワーディングを連携させて、対象のインスタンスのポートへアクセスさせています。
図にするとこんな感じです。

AWS運用自動化サービス「Cloud Automator」