Querier

AWSで踏み台サーバーを構築する方法 | 踏み台サーバーの必要性、Session Managerとの違いまで解説

2023.07.12に公開 | 2023.07.12に更新

Querier運営

@querier_io@querierinc

「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。

管理画面の構築もWeb上で完結
エンジニアのためのローコードツール

Querierについて詳しく見る

AWS(Amazon Web Services)を利用する際、セキュリティの観点からアクセスを制限する必要があります。

そのため、多くの場合、踏み台サーバーを導入してSSH(Secure Shell)接続を行います。

本記事では、踏み台サーバーの必要性や構築方法、さらにはAWSの新機能であるSession Managerの活用法について解説します。

踏み台サーバーとは、必要性

踏み台サーバーは、セキュリティ上の理由から、パブリックなインターネットから直接アクセスできないプライベートなサブネットに配置されたサーバーです。

主な目的は、プライベートなサブネット内のインスタンスに安全にアクセスすることです。

以下では、踏み台サーバーの必要性とその利点について詳しく解説します。

1. セキュリティの確保

踏み台サーバーは、インターネット上からの直接アクセスを制限することで、プライベートなサブネット内のインスタンスを保護します。

プライベートなサブネットには重要なデータやシステムが配置されている場合があり、不正アクセスや攻撃から守るために踏み台サーバーが必要です。

2. ログの管理

踏み台サーバーを介してアクセスが行われるため、アクセスログを集約・管理しやすくなります。踏み台サーバー上でのアクセスログは、セキュリティインシデントの追跡や監査に役立ちます。

ログの分析や監査ポリシーの設定を行うことで、セキュリティの向上とコンプライアンスの確保が可能です。

3. インスタンスの隔離

踏み台サーバーを介してアクセスすることで、プライベートなサブネット内のインスタンスが外部との接触を最小限に抑えられます。プライベートなサブネットに配置されたインスタンスは、インターネットから直接アクセスされるリスクを低減することができます。

このような隔離は、セキュリティ上のベストプラクティスとして推奨されています。

4. ネットワークの管理

踏み台サーバーは、ネットワーク上のトラフィックを監視・制御するための役割も果たします。アクセス制御リスト(ACL)やセキュリティグループを使用して、踏み台サーバーを通過するトラフィックの制御を行うことができます。

また、踏み台サーバー上でプロキシサーバーやファイアウォールを設定することも可能です。

5. リモートアクセスの便利さ

踏み台サーバーを経由してリモートアクセスすることで、遠隔地からのアクセスやチームメンバーとの共同作業が容易になります。特に複数のサブネットやリージョンにまたがる環境では、踏み台サーバーを利用することで一元的なアクセスポイントを提供することができます。

以上が踏み台サーバーの必要性と利点の概要です。セキュリティ強化やアクセス管理、ネットワークの制御といった側面から見ると、踏み台サーバーはAWS環境で重要な役割を果たすことがわかります。

AWSで踏み台サーバーを構築する方法

AWSで踏み台サーバーを構築するためには、以下の手順を実行します。AWS Management Console内での操作も詳細に解説します。

1. パブリックなサブネットとプライベートなサブネットの作成

  1. AWS Management Consoleにログインし、[VPC (Virtual Private Cloud)] メニューに移動します。
  2. [サブネット] タブを選択し、[サブネットの作成] ボタンをクリックします。
  3. パブリックなサブネット用に必要な情報(VPCの選択、IPアドレス範囲、アベイラビリティーゾーンなど)を入力し、[作成] ボタンをクリックします。
  4. 同様に、プライベートなサブネットも作成します。

2. EC2インスタンスの作成

  1. [インスタンス] タブを選択し、[インスタンスの作成] ボタンをクリックします。
  2. Amazon Machine Image(AMI)の選択画面で、適切なAMIを選択します。通常、最新のAmazon LinuxやUbuntuなどの公式AMIを使用します。
  3. インスタンスタイプを選択します。踏み台サーバーは一般的に小規模なリソースで構成されるため、t2.microなどの低コストなインスタンスタイプを選択することが多いです。
  4. インスタンスの詳細設定を行い、パブリックなサブネットとセキュリティグループの設定を選択します。パブリックなサブネットを選択し、適切なセキュリティグループを関連付けます。
  5. ストレージの設定やタグの追加など、必要に応じて追加の設定を行います。
  6. SSHキーペアの選択または作成を行い、[インスタンスの作成] ボタンをクリックします。

3. プライベートなサブネットに踏み台サーバーとなるEC2インスタンスを作成

  1. 同様に、踏み台サーバーとなるEC2インスタンスを作成しますが、この場合はプライベートなサブネットを選択します。詳細設定では、セキュリティグループを適切に設定し、必要なポートのみを開放します。

4. セキュリティグループの設定

  1. [セキュリティグループ] タブを選択し、踏み台サーバーのセキュリティグループを選択します。
  2. [インバウンドルールの編集] ボタンをクリックし、必要なポート(通常はSSHのポート22)を指定して開放します。

これで踏み台サーバーを構築し、AWS上のプライベートなサブネット内のインスタンスに安全にアクセスすることができます。

必要に応じてセキュリティグループの設定やログの管理なども行ってください。

詳細な手順は公式ドキュメントも参照してください。

踏み台サーバーを経由してSSH接続する方法

踏み台サーバーを経由してSSH接続を行うためには、以下の手順を実行します。SSHクライアントを使用してアクセスする方法を詳細に解説します。

1. 踏み台サーバーにSSH接続する

  1. SSHクライアント(例: Terminal、PuTTY)を開きます。
  2. SSH接続のコマンドを使用して、踏み台サーバーに接続します。コマンド例は以下の通りです(具体的なコマンドは使用しているSSHクライアントによって異なります)
  3. 下記のコマンドでSSH接続が成功すると、踏み台サーバーにログインできます。ログインに使用するSSHキーペアのパスを適切に指定してください。
ssh -i /path/to/keypair.pem ec2-user@<踏み台サーバーのパブリックIPアドレス>

2. 踏み台サーバー内でプライベートなサブネット内のインスタンスにSSH接続する

  1. 踏み台サーバーにログインした状態で、プライベートなサブネット内のインスタンスに対してSSH接続を行います。
  2. SSH接続のコマンドを使用して、プライベートなサブネット内のインスタンスに接続します。コマンド例は以下の通りです(具体的なコマンドは使用しているSSHクライアントによって異なります)
  3. 下記のコマンドでSSH接続が成功すると、プライベートなサブネット内のインスタンスにログインできます。ログインに使用するSSHキーペアのパスを適切に指定してください。
ssh -i /path/to/keypair.pem ec2-user@<プライベートなサブネット内のインスタンスのプライベートIPアドレス>

注意事項

  • SSH接続の際には、踏み台サーバーのSSHキーペアとプライベートなサブネット内のインスタンスのSSHキーペアをそれぞれ指定する必要があります。
  • 踏み台サーバーを介してプライベートなサブネット内のインスタンスにアクセスする場合、セキュリティグループの設定やネットワークアクセス制御リスト(NACL)の設定に注意してください。必要に応じて適切な設定を行ってください。
  • SSH接続時にエラーが発生した場合は、キーペアのパスやアドレスの正確さを確認し、セキュリティグループやNACLの設定を確認してください。

これで踏み台サーバーを経由して、プライベートなサブネット内のインスタンスにSSH接続することができます。踏み台サーバーを使用することで、セキュリティを確保しながらプライベートなサブネットへのアクセスを行うことができます。

Session Managerを使えば踏み台サーバーは不要?

AWSでは、Session Managerという新しい機能が提供されており、踏み台サーバーを使用せずに直接インスタンスにアクセスすることができます。

以下では、Session Managerの特徴や利点、使い方について詳しく解説します。

Session Managerとは

Session Managerは、AWS Systems Managerの一部として提供されるサービスであり、インスタンスに対するセキュアなリモートアクセスを提供します。

通常のSSH接続やリモートデスクトップ(RDP)接続を使用せずに、AWS Management ConsoleやAWS CLIからインスタンスに直接アクセスできます。

踏み台サーバーとの違い

踏み台サーバーは、パブリックなインターネットからアクセスできないプライベートなサブネットに配置されたサーバーですが、Session Managerはインスタンスに直接アクセスするため、踏み台サーバーの必要性を取り除きます。

Session Managerのメリット

  1. セキュリティの向上: Session Managerは、セキュリティグループやIAMロールなどのAWSのネイティブセキュリティ機能と統合されており、セキュリティを強化します。セキュリティグループを使用してアクセスを制御することができます。
  2. インターネットへの直接アクセス不要: Session Managerを使用するためには、インターネット上からの直接アクセスが不要です。したがって、パブリックなIPアドレスやパブリックサブネットが不要になります。
  3. 管理の簡素化: Session ManagerはAWS Management ConsoleやAWS CLIから直接アクセスできるため、SSHクライアントの設定や管理が不要です。また、インスタンスに対するアクセス制御やログの管理も簡単に行えます。

Session Managerの使い方

  1. AWS Management Consoleにログインし、AWS Systems Managerのコンソールに移動します。
  2. [セッションマネージャー] を選択し、[セッションを開始する] ボタンをクリックします。
  3. セッションを開始したいインスタンスを選択し、[開始] ボタンをクリックします。
  4. セッションが開始されると、ターミナルウィンドウが表示され、インスタンスに対してコマンドを実行したり、ファイルを転送したりすることができます。

注意事項

  • Session Managerを使用するには、EC2インスタンスに適切なIAMロールが割り当てられている必要があります。IAMロールにはAmazonSSMManagedInstanceCoreポリシーが必要です。
  • セッションの開始や終了、アクセス権限の管理などは、AWS Identity and Access Management(IAM)を使用して設定することができます。
  • セッションの開始や終了、アクセス権限の管理などは、AWS Identity and Access Management(IAM)を使用して設定することができます。

Session Managerは、踏み台サーバーを利用せずにセキュアなリモートアクセスを実現する便利なツールです。

セキュリティの向上と管理の簡素化を実現しながら、AWSインスタンスへのアクセスを効率化できます。

必要に応じて、AWS Systems Managerのドキュメントを参照しながらセットアップを進めてください。

さいごに

本記事では、AWSでの踏み台サーバーの必要性や構築方法、さらにはSession Managerの活用法について解説しました。

踏み台サーバーはセキュリティを強化するために重要な役割を果たしますが、Session Managerを使用することで効率的にSSH接続を行うことができます。

適切な方法を選択し、AWS環境でのセキュアな接続を確保しましょう。

「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。

最新の記事

【告知】値の参照時の仕様変更のお知らせ

このたび2024年11月11日に値の参照に関する仕様変更を予定しておりますので詳細について報告いたします。

more

管理画面の構築もWeb上で完結
エンジニアのためのローコードツール

Querierについて詳しく見る