SSH ポートフォワーディングを使用した EC2 Windows インスタンスへの安全な接続

SSH ポートフォワーディングを使用した EC2 Windows インスタンスへの安全な接続

岩佐 孝浩
岩佐 孝浩
4 min read
EC2

はじめに

SSH ポートフォワーディング を使用することで、パブリックサブネット内の踏み台ホストを介してプライベートサブネット内の EC2 Windows インスタンスに安全にアクセスできます。この方法では、ローカルマシンと踏み台ホスト間の通信を暗号化し、安全性を高めます。

アーキテクチャ図

プライベートサブネットの作成

VPC 内に プライベートサブネット を作成します。既にある場合は、このステップをスキップできます。

プライベートサブネット

ルートテーブルの設定

  1. ルートテーブル を作成し、それをプライベートサブネットに関連付けます。

ルートテーブルの設定

  1. このルートテーブルから インターネットゲートウェイ を削除し、サブネットのプライバシーを保護します。

NAT ゲートウェイのセットアップ(オプション)

EC2 Windows インスタンスがインターネットアクセスを必要とする場合は、パブリックサブネットに NAT ゲートウェイ を作成し、ルートテーブルにアタッチします。

NAT ゲートウェイ

SSH 踏み台ホストのデプロイ

  1. パブリックサブネットに EC2 インスタンス を起動し、Bastion Host として使用します。
  2. セキュリティグループを設定し、ポート 22 (SSH) および 3389 (RDP) での受信トラフィックを許可します。

EC2 Windows インスタンスの作成

  1. プライベートサブネットに EC2 Windows インスタンス を起動します。
  2. EC2 ダッシュボードの Get Windows Password オプションを使用してリモートデスクトップの資格情報を取得します。
  3. セキュリティグループのアクセスを制限し、ポート 22 および 3389 への受信トラフィックを踏み台ホストのみ許可します。

EC2 Windows セキュリティグループ

接続のテスト

プライベートサブネット内の EC2 Windows インスタンスに安全に接続するには、ターミナルから次のコマンドを実行します。

ssh -i <YOUR_PRIVATE_KEY> -L 13389:<YOUR_EC2_WINDOWS_IP>:3389 ec2-user@<YOUR_SSH_BASTION_IP>

このコマンドは、ローカルポート 13389 からプライベートサブネット内の EC2 Windows インスタンスに踏み台ホストを介してトラフィックを転送します。

次に、localhost:13389 を使用してリモートデスクトップセッションを開始します。

リモートデスクトップ接続

まとめ

SSH ポートフォワーディング を利用することで、AWS ユーザーはプライベートサブネット内の EC2 Windows インスタンスに安全に接続しながら、パブリックアクセスを最小限に抑えることができます。この方法により、AWS 環境内で安全性を確保しつつ、効率的かつコスト効果の高いアクセス手段を実現できます。

Happy Coding! 🚀

岩佐 孝浩

岩佐 孝浩

Software Developer at KAKEHASHI Inc.
AWS を活用したクラウドネイティブ・アプリケーションの要件定義・設計・開発に従事。 株式会社カケハシで、処方箋データ収集の新たな基盤の構築に携わっています。 Japan AWS Top Engineers 2020-2023