【AWS】Linuxインスタンスに踏み台サーバー経由でアクセスする。
最初に
今回の投稿は下記の投稿の続きのハンズオンです。
パブリックサブネットに配置されたEC2インスタンスを踏み台サーバーとして、プライベートサブネットのEC2にssh接続を行います。
今回、実施するハンズオンの構成図は以下です。(今回のハンズオンで構築するのは赤枠で囲った部分です。前回構築した部分は割愛しております。)
1. プライベートサブネットの作成
- 画面左のVPCダッシュボードから「サブネット」を押下する
- 表示された画面から「サブネットを作成」を押下する
- サブネットの設定を行う(下記は設定例です)
VPC ID:①で作成したVPCを選択 - 「サブネットを作成」を押下する
- 作成したサブネットの✓マークを選択し、表示された画面の「ネットワークACL」タブ欄で
すべてのトラフィックが許可されていることを確認する
2. EC2インスタンスの作成
- コンソール画面の検索欄に「EC2」と入力し、表示されるEC2を押下する
- 表示された画面で「インスタンスを起動」を押下する
- EC2の設定を行い、EC2を作成を押下する(下記は設定例です)
※プライベートインスタンスに設定するインスタンスのためパブリックIPの
自動割り当ての設定を「無効化」を選択します。(画像3枚目参照)
3. EC2インスタンスにキーペアの配置
当手順では、パブリックサブネットに配置したEC2インスタンスからプライベートサブネットに配置したEC2に接続する際に必要なキーペアファイルを配置する手順です。
↓こんなイメージです。
- パブリックサブネットに配置したEC2インスタンスに接続する
詳細な手順は前回の記事に記載しているため割愛します。
TeraTermからEC2インスタンスに接続するにはこちらを参照してください。 - EC2インスタンスにキーペアファイルをドラッグ&ドロップし、ファイルを転送する
- 表示された画面で「送信先」にキーペアを配置するパスを入力し「OK」を押下する
※今回はtmpフォルダの配下にとりあえず配置しました。
(今度、EC2のフォルダ構成について仕組みついて調査して投稿してみます。。)
ファイルの転送方法についてはグローディア株式会社のサイトを参照させていただきました。
- コマンドを実行しキーペアファイルが正しく配置されたことを確認する
#キーペアを配置したパスに移動
$ cd /d [キーペアを配置したパス名]
#指定したディレクトリに存在するファイルの一覧を表示(ディレクトリ指定なしの場合はカレントディレクトリ)
$ ls
4. プライベートサブネットのインスタンスに接続する
- パブリックサブネットのEC2インスタンスから下記コマンドを実行する
#sshを用いてサーバーに接続する
$ ssh -i [キーペアファイル名.pem] ec2-user@[接続先EC2のプライベートIPアドレス]
-
sshコマンドで当該ホストに初めて接続する場合、以下の画面で「yes」と入力する
この画面が出たら条件反射で「yes」を入力する。
-
接続確認を行う
・下記の鳥?のマークが表示された場合は、プライベートサブネットのEC2インスタンス(Linux)にうまく接続できているため、ここで終了です。
・添付画像2枚目のような山盛りの「@」が表示された場合は4.の手順を実施します。
-
パブリックサブネットのEC2インスタンスでキーペアファイルの権限を変更する
詳しい説明は割愛しますが、今回の場合は、EC2インスタンスが接続するために権限(パーミッション)が大きすぎることを表しています。
※パーミッションの詳細については、以下のサイトを参照しました。
下記のコマンドを使用して権限を変更します。
#現在のファイル権限(パーミッション)を確認する
$ 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