本記事では、AWSサービスのAmazon Elastic Compute Cloud (Amazon EC2)の機能の1つであるセキュリティグループを利用して、通信制限を実施してみた内容を紹介します。
EC2の概要については下記紹介しています。
環境
今回構築する環境の構成は以下の通りです。
1つのVPC内に異なるAZのパブリックサブネット、プライベートサブネットがそれぞれ1つずつ存在しています。
このうち、2つパブリックサブネットそれぞれに対して、EC2インスタンス①②を作成します。
EC2インスタンス①のセキュリティグループに相手側のEC2インスタンス②との通信許可を設定することで、通信制御できることを確認します。
事前準備
事前準備として、EC2インスタンス①②を作成します。
インスタンス名は①test01, ②test02としています。
インスタンス作成方法は以下で紹介しています。
設定前のセキュリティグループを確認します。
インスタンス①②のどちらも以下のセキュリティグループ設定となっています。
- インバウンドルールは自端末からのSSH接続のみ許可
- アウトバウンドルールは全ての通信を許可
インスタンス①からインスタンス②(パブリックIP:18.181.78.14)への疎通確認を実施します。
現時点は疎通できない状態となっていることが確認できました。
[root@ip-(プライベートIPアドレス) ~]# telnet 18.181.78.14 22
Trying 18.181.78.14...
この状態から接続許可設定を行って、接続疎通ができることを確認します。
セキュリティグループ設定
それでは、実際にセキュリティグループ設定を実施してみます。
設定内容は、インスタンス①からインスタンス②へのSSH接続を実施するセキュリティグループを追加します。
具体的な設定内容は以下の通りです。
- インスタンス②のインバウンドルールをにインスタンス①からのSSH接続を許可する。
最初にEC2インスタンの管理画面を表示します。
インスタンス②を選択し、「セキュリティ」タブを選択します。
セキュリティグループのリンクを選択します。
インスタンス②のセキュリティグループの詳細画面が表示されます。
画面の「インバウンドルール」タブの「インバウンドのルール編集」ボタンを選択します。
インスタンス②のセキュリティグループのインバウンドルールの設定画面が表示されます。
ここにインスタンス①からのSSH接続許可設定を追加します。
画面左下の「ルールを追加」を選択します。
ルールの項目が追加されるので、インスタンス①からの通信許可設定を行います。
タイプに「SSH」、ソースに「インスタンス①のパブリックIPアドレス:18.183.171.90/32」を指定します。
設定が完了したら、画面右下の「ルールを保存」ボタンを選択します。
セキュリティグループはホワイトリスト形式で設定を実施します。
設定追加した通信は許可され、それ以外は拒否されます。
また、セキュリティグループはステートフルなので、戻りの通信許可設定は不要です。
セキュリティグループ設定が完了し、インスタンス①からのSSH接続許可設定が追加されていることを確認できました。
実際にインスタンス①のサーバからインスタンス②へのSSHのポートの疎通ができていることを確認します。
下記の実行結果から疎通できるようになりました。
[root@ip-(プライベートIPアドレス) ~]# telnet 18.181.78.14 22
Trying 18.181.78.14...
Connected to 18.181.78.14.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.7
まとめ
今回はEC2インスタンスの機能の1つであるセキュリティグループ設定について、紹介しました。
AWSのGUIの管理画面から簡単に設定することができました。
セキュリティグループを適切に設定することで、サーバへの不正アクセスを制御し、セキュリティを高めることに繋がります。
ご参考になれば幸いです。
以上になります。ありがとうございました。
コメント