12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リンクアンドモチベーションAdvent Calendar 2024

Day 13

【AWS】踏み台サーバー経由でプライベートサブネットのEC2にSSH接続する2つの方法まとめ

Last updated at Posted at 2024-12-12

本記事はリンクアンドモチベーションAdventCalendar2024の13日目の記事です。

はじめに

こんにちは!リンクアンドモチベーションでSREをしている井川と申します。
本記事は、AWSのプライベートサブネットのEC2にSSH接続を試した際の学びをまとめたものです。

今回は「プライベートサブネットのEC2にSSH接続する」という具体的なGoalを設定しながら、それに必要な設定や手順を整理していきます。
また、複数の方法を試し、それぞれのメリット・デメリットについても触れるので、ぜひ最後までご覧ください。

プライベートサブネットのEC2へのSSH接続イメージ

image.png
プライベートサブネットは、インターネットから直接アクセスできないため、一度踏み台サーバーを経由する必要があります。
踏み台サーバーとは、パブリックサブネットに置く中継用のサーバーで、この踏み台サーバーにSSH接続をしてそこから改めて目的のサーバーにSSH接続をします。

ちなみに、NATゲートウェイは使わないのかという疑問を持たれるかもしれませんが、NATゲートウェイでは外部から接続できません。
というのも、NATゲートウェイはパブリックサブネットのリソースからインターネットにアクセスするためのもので、外部からのアクセスを許可していないためです。

プライベートサブネットのEC2へのSSH接続手順

手順は以下の通りです。

  1. インターネットからSSH接続できるEC2をパブリックサブネットに作成する

  2. 踏み台サーバーからのSSH接続を許可するセキュリティグループを作成する
    image (78).png
    (パブリックサブネットに作成したEC2のプライベートipを指定する)

  3. 上記セキュリティグループを紐付けたEC2をプライベートサブネットに作成する

しかし、上記設定では、踏み台サーバーから目的サーバーにSSH接続する際に、キーペアが見つからず接続できません。
image (86).png

その問題を解決する方法が2種類あります。
キーペアを踏み台サーバーに保存する方法SSH Agent Forwardingを利用する方法です。
それぞれ方法を解説していきます。

キーペアを踏み台サーバーに保存する方法

この考え方はシンプルです。
ローカルに保存したキーペアを参照できない場合、踏み台サーバーにそのキーペアをコピーすれば良いというものです。

scpというコマンドを用いて、ローカルに保存したキーペアを踏み台サーバーにコピーします。

scp -i 踏み台サーバー用のキーペア 送信したいファイル(目的サーバー用のキーペア) ec2-user@踏み台サーバーのIPアドレス:~/.ssh

image.png

これにより、下記の通りプライベートサブネットのEC2にSSH接続できます。
まず、ローカルにあるキーペアを使って踏み台サーバーにSSH接続します。

ssh -i キーペア ec2-user@踏み台サーバーのIPアドレス

image.png

そして、踏み台サーバーにあるキーペアを使って目的サーバーへSSH接続します。

ssh -i ~/.ssh/キーペア ec2-user@目的サーバーのIPアドレス

image (81).png

ただし、この接続方法だと、パブリックサブネットのEC2にキーペアを保存することになるため、設定ミスや攻撃により漏洩するリスクがあります。
そのため、パブリックサブネットのEC2にキーペアを保存せずプライベートサブネットのEC2にSSH接続をする方法でも試してみます。

SSH Agent Forwardingを利用する方法

ssh-agentという秘密鍵の管理を効率化するプログラムを利用します。

まずは、今回使っているキーペアを登録します。

ssh-add xxxx.pem

image (84).png

そして、踏み台サーバーにSSH接続する際に-Aオプションをつけることで踏み台サーバーでssh-agentに登録されたキーペアを利用できます。

ssh -A ec2-user@踏み台サーバーのIPアドレス

image.png

その上で、踏み台サーバーから目的サーバーへSSH接続します。
オプションをつける必要はありません。

ssh ec2-user@目的サーバーのIPアドレス

image (83).png

まとめ

今回、踏み台サーバーを用いてプライベートサブネットのEC2にSSH接続する中で、認証のための方法が2種類あることをまとめました。
2つを比較すると、キーペアを踏み台サーバーに保存する方法が簡単ですが、セキュリティのリスクがあるため、SSH Agent Forwardingを利用する方法の方が安全に思えます。

しかし、現在はSession Managerを使った、踏み台サーバーを用いない接続方法もあるため、そちらも学んで今後の実業務に活かしていきたいと思います。

12
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?