👨‍💻

【AWS】Linuxインスタンスに踏み台サーバー経由でアクセスする。

2024/03/16に公開

最初に

今回の投稿は下記の投稿の続きのハンズオンです。
https://zenn.dev/yam_0725/articles/c92c8094f86679
前回、構築した環境に対し、新たにプライベートサブネット、EC2インスタンスを追加し
パブリックサブネットに配置されたEC2インスタンスを踏み台サーバーとして、プライベートサブネットのEC2にssh接続を行います。
今回、実施するハンズオンの構成図は以下です。(今回のハンズオンで構築するのは赤枠で囲った部分です。前回構築した部分は割愛しております。)


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

  1. 画面左のVPCダッシュボードから「サブネット」を押下する
  2. 表示された画面から「サブネットを作成」を押下する
  3. サブネットの設定を行う(下記は設定例です)

    VPC ID:①で作成したVPCを選択
  4. 「サブネットを作成」を押下する
  5. 作成したサブネットの✓マークを選択し、表示された画面の「ネットワークACL」タブ欄で
    すべてのトラフィックが許可されていることを確認する

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

  1. コンソール画面の検索欄に「EC2」と入力し、表示されるEC2を押下する
  2. 表示された画面で「インスタンスを起動」を押下する
  3. EC2の設定を行い、EC2を作成を押下する(下記は設定例です)
    ※プライベートインスタンスに設定するインスタンスのためパブリックIPの
    自動割り当ての設定を「無効化」を選択します。(画像3枚目参照)




3. EC2インスタンスにキーペアの配置

当手順では、パブリックサブネットに配置したEC2インスタンスからプライベートサブネットに配置したEC2に接続する際に必要なキーペアファイルを配置する手順です。
↓こんなイメージです。

  1. パブリックサブネットに配置したEC2インスタンスに接続する
    詳細な手順は前回の記事に記載しているため割愛します。
    TeraTermからEC2インスタンスに接続するにはこちらを参照してください。
  2. EC2インスタンスにキーペアファイルをドラッグ&ドロップし、ファイルを転送する
  3. 表示された画面で「送信先」にキーペアを配置するパスを入力し「OK」を押下する
    ※今回はtmpフォルダの配下にとりあえず配置しました。
    (今度、EC2のフォルダ構成について仕組みついて調査して投稿してみます。。)

    ファイルの転送方法についてはグローディア株式会社のサイトを参照させていただきました。

https://glodia.jp/blog/9669/

  1. コマンドを実行しキーペアファイルが正しく配置されたことを確認する
#キーペアを配置したパスに移動
$ cd /d [キーペアを配置したパス名]
#指定したディレクトリに存在するファイルの一覧を表示(ディレクトリ指定なしの場合はカレントディレクトリ)
$ ls


4. プライベートサブネットのインスタンスに接続する

  1. パブリックサブネットのEC2インスタンスから下記コマンドを実行する
#sshを用いてサーバーに接続する
$ ssh -i [キーペアファイル名.pem] ec2-user@[接続先EC2のプライベートIPアドレス]

  1. sshコマンドで当該ホストに初めて接続する場合、以下の画面で「yes」と入力する
    この画面が出たら条件反射で「yes」を入力する。

  2. 接続確認を行う
    ・下記の鳥?のマークが表示された場合は、プライベートサブネットのEC2インスタンス(Linux)にうまく接続できているため、ここで終了です。
    ・添付画像2枚目のような山盛りの「@」が表示された場合は4.の手順を実施します。

  3. パブリックサブネットのEC2インスタンスでキーペアファイルの権限を変更する
    詳しい説明は割愛しますが、今回の場合は、EC2インスタンスが接続するために権限(パーミッション)が大きすぎることを表しています。
    ※パーミッションの詳細については、以下のサイトを参照しました。

https://www.sejuku.net/blog/50161

下記のコマンドを使用して権限を変更します。

#現在のファイル権限(パーミッション)を確認する
$ ls -l [キーペアファイル名.pem]


↑青枠で囲った部分が権限(パーミッション)を表す部分です。
アルファベットと-で様々な権限を表します。パーミッションは3ケタの数字で表すこともでき、
権限をコマンドで設定する場合は3ケタの数字を設定することが多いようです。
5. ファイル権限に400(管理者のみが読み込みできる)権限を設定する
以下のコマンドを実行する。

#ファイルのパーミッションを設定する
$ chmod 400 [キーペアファイル名.pem]


コマンド実行が成功すると、chmod(権限変更)コマンドを実行する前後で権限(青色の枠)が変更されていることがわかります。
ここまで、設定できれば、再度、EC2インスタンスへの接続を実施します。


5. 環境の削除

前回のハンズオンから合わせ、構築したサービスを記載します。料金の発生しないサービスもあります。太字(3.と4.)は削除しないと料金が発生するサービスです。
1.VPC
2.サブネット(パブリック・プライベート)
3.インターネットゲートウェイ(VPCからデタッチと解放を行う)
4.EC2インスタンス(パブリック・プライベート)

5.セキュリティグループ


最後に

今回は、プライベートサブネットに構築したEC2インスタンスに対し、パブリックサブネットのEC2インスタンスを踏み台サーバーとして接続する方法を実践してみました。証明書をパブリックのインスタンスに配置したり、ファイルのパーミッションを変更したりと意外と大変でした。。。
引き続き、学習した内容やタメになる記事を投稿できるよう頑張ります!

Discussion