前回は、
パブリックサブネットに配置したEC2インスタンスを踏み台サーバーとして
SSH接続で管理者がアクセスできるように設定しましたが、
今回はよりセキュアな方法として、セッションマネージャーでWebサーバーに
アクセスする方法を試していきたいと思います!
セッションマネージャーからアクセスする方法のメリットとして、
・パブリックサブネットにEC2インスタンスを配置する必要がない
⇒SSHのためにポート番号22を開ける必要がない
⇒EC2インスタンスの運用コストが削減できる
・キーペアの生成が不要
⇒ローカルPCの/.sshに秘密鍵を持つ必要がないため鍵の管理が不要
・AWSコンソールからアクセスできるため簡単
といったものがあります。
なんにせよパブリックサブネットにEC2インスタンスを置く方法は
できたら避けた方が安全とのことです。
前回作成したインフラの構成から修正していきます。
修正方針は以下の通りです。
図を見て分かるように、踏み台サーバーを利用してプライベートサブネット内の
Webサーバーにアクセスする方法と違い、パブリックサブネット内に
EC2インスタンスがないため直接インターネット上に晒されている
リソースがなくていい感じに見えます!
【手順の流れ】
①踏み台サーバーを削除する。
②プライベートサブネット内のEC2インスタンスにAmazonSSMManagedInstanceCore
ポリシーを含むロールをアタッチする。
では、実際にやっていきます。
①踏み台サーバーを停止する
EC2 > インスタンスを選択し、前回踏み台サーバーとしていたインスタンスを停止する。
不要ならば削除でもいいですが一応止めておけば料金かからないので私は
停止して残しておきました。
②AmazonSSMManagedInstanceCoreポリシーを含むロールをアタッチする
IAM > ロール > ロールを作成ボタンを押下し、画像の通りにロールを作成する。
ポリシーにAmazonSSMManagedInstanceCoreを選択し、
「ロールを作成」ボタンを押下する。
EC2に戻り、プライベートサブネット内のWebサーバー2台に対して
「IAMロールを変更」から先ほど作成したロールをアタッチする。
インスタンスの「接続」ボタンから「セッションマネージャー」タブをクリックし、
「接続」ボタンを押下すると以下の画面が表示され、インスタンス内へのアクセスが
できるようになりました!
ちなみに接続を踏み台サーバー経由からセッションマネージャー経由に
変更するにあたって本当はキーペアが不要なので削除したかったのですが
既存のEC2インスタンスのキーペアを削除する方法がわからなかったので
Webサーバー2台はキーペアなしで作成し直し、
ロードバランサーのターゲットグループを新しいWebサーバーに変更しました。
あとでやり方調べておこう・・・