AWSの部屋

AWS学習者向けのブログです

スポンサーリンク

踏み台サーバーを経由してプライベートサブネットにある EC2 に SSH で接続する

はじめに

AWS 上にシステムを構築する際はセキュリティを高める上で踏み台サーバーの存在は欠かせないかと思います。本日は踏み台サーバーを経由してプライベートサブネットにある EC2 に SSH で接続してみようと思います。

踏み台サーバーとは

外部からの直接アクセスを許可しないサーバーやパソコンにアクセスするために設置される中継用のサーバーのことです。踏み台サーバーを導入することによって、機密情報を保管したサーバーへのアクセス元が1か所に限定されるため、外部からの侵入リスクが軽減されるなどのメリットがあります。

アーキテクチャ

①Web Server に SSH でアクセス(Web Server を踏み台サーバーとして使う)
②Web Server から DB Server に SSH でアクセス

実行環境

macOS 13.0.1

手順

  1. ネットワーク・サーバ構築
  2. 秘密鍵を Web Server にアップロード
  3. Web Server に SSH でアクセス
  4. Web Server から DB Server に SSH でアクセス

1. ネットワーク・サーバ構築

以下のようにサブネット、ルートテーブルなどを作成しネットワーク・サーバを構築します。

<ルートテーブル>

ルートテーブル名 設定
public-route-table 10.0.0.0/16, 0.0.0.0/0
private-route-table 10.0.0.0/16

<サブネット>

サブネット名 ルートテーブル
public-subnet public-route-table
private-subnet private-route-table

<セキュリティグループ>

セキュリティグループ名 インバウンドルール
public-security-group ポート22, 443を許可(SSH, HTTPSのポート)
private-security-group ポート22を許可(SSHのポート)

<EC2>

ホスト名 OS セキュリティグループ
web-server Amazon Linux 2 public-security-group
db-server Amazon Linux 2 private-security-group

2. 秘密鍵を Web Server にアップロード

EC2 にSSH でアクセスするには「秘密鍵」が必要ですので、秘密鍵を Web Server に格納します。サーバーにファイル転送をするには「SCP」というプロトコルを使います。

カレントディレクトリに置かれた my-secret-key.pem を転送先のホームディレクトリ(「~/」)に転送するには以下のようにします。

「scp -i 使用する秘密鍵 転送するファイル ユーザ@IPアドレス:コピー先」

scp -i my-secret-key.pem my-secret-key.pem ec2-user@ec2-54-249-215-42.ap-northeast-1.compute.amazonaws.com:~/

3. Web Server に SSH でアクセス

Web Server に割り当てたパブリックIPアドレスに対してアクセスします。

ssh -i my-secret-key.pem ec2-user@ec2-54-249-215-42.ap-northeast-1.compute.amazonaws.com

今回の目的を達成するにおいて必須ではありませんが、秘密鍵を誰でも使えるようにしておくのはセキュリティ上よろしくないので、自分しか使えないように秘密鍵パーミッションを変更します。

chmod 400 my-secret-key.pem

4. Web Server から DB Server に SSH でアクセス

DB Server に割り当てたプライベートIPアドレスに対してアクセスします。

ssh -i my-secret-key.pem ec2-user@10.0.0.177

さいごに

IT業界にいる方にとっては踏み台サーバーを使うことは当たり前かと思いますが、機密情報を保管したサーバーに直接アクセスできるような環境を使っている会社さんも多いのではないかと思います。興味のある方はぜひ本エントリーのように踏み台サーバーを使ってみてください。