前回は、VPCの中にサブネットを配置し、インターネットゲートウェイやルートテーブルを設定しました。
>> 参考記事 : 【AWS】ネットワーク(ルートテーブル、インターネットゲートウェイ、NATゲートウェイ)設定確認今回はセキュリティグループについて記事にします。
下記記事のVPCが作成されている前提となりますので、先にお読みいただくことをお勧めします。
今後、仮想インスタンスなどのリソースを追加するわけですが、これらリソースを外部アクセスから守るために、セキュリティグループを設定する必要があります。
セキュリティグループとは
セキュリティグループはVPC内のリソースに適用するステートフルファイアウォール(フィルタ)機能です。
インターネットユーザからAWS内のWebサーバ(仮想インスタンス)へアクセスするとします。
セキュリティグループは、下図のように、仮想インスタンスであるWebサーバを守るファイアウォールとして機能します。

セキュリティグループは守る対象のインスタンス(今回の場合は、仮想インスタンスであるWebサーバ)に紐づけます。
セキュリティグループは、IPアドレスとポート番号を用いて、インバウンドルールとアウトバウンドルールの2種類のフィルタ設定が定義できます。
Webサーバに紐付け(アタッチ)したセキュリティグループで、外部からのWebアクセスを許可する場合は、インバウンドルールで、HTTP(TCP ポート80番)を許可する設定をします。そうすることで、外部からWebサーバへHTTP接続が通過できるようになります。

セキュリティグループは、ステートフルファイアウォールの動作をするため、Webサーバからのレスポンスの通信を先ほどのインバウンドルールを書くことで、自動的に通過が許可されます。(アウトバウンドルールのルール設定は不要です)

セキュリティグループの設定
上記のように外部からhttp(TCP80番)とSSH(TCP22番)のみ許可するセキュリティグループを作成します。
セキュリティグループは、VPCのポータル画面より設定できます。

セキュリティグループを作成 をクリックします。

下記画面より、任意のセキュリティグループ名/説明を定義し、適用するVPCを選択します。

インバウンドルールの設定
インバウンドルールを設定します。
デフォルトでは何も設定されていません。この場合は、暗黙のDenyが適用され、全ての通信がブロックされます。
http通信のみ許可させるルールを追加します。ルールを追加 をクリックします。

下記画面の通り、ポート番号や送信元のIPアドレスが指定できるルール設定画面が表示されます。

プロトコル(ポート番号)の指定
http通信を許可するには、タイプでHTTPを選択します。プロトコルとポート範囲は自動的に登録されます。

タイプはHTTP以外にも下記のような設定ができます。自身でポート番号を指定したい場合は、カスタム設定(例えば、カスタムTCPなど)を選択し、設定します。

送信元(ソース)アドレスの指定
送信元アドレスを指定する場合、下記の4パターンを指定できます。

- カスタム :CIDRブロックやセキュリティグループを指定できます。

例えば、下記のように指定したいCIDRブロックを入力することができます。

セキュリティグループを指定した場合、指定されたセキュリティグループが適用されているリソースが送信元(ソース)となります。
- Anywhere-IPv4:すべてのIPv4アドレスが対象となります。指定すると、0.0.0.0/0が登録されます。

- Anywhere-IPv6:すべてのIPv6アドレスが対象となります。指定すると、::/0 が登録されます。

- マイIP :今、設定画面へアクセスしている端末のグローバルIPアドレスが登録されます。

今回は、すべてのIPv4アドレスからのHTTPとSSHの接続を許可します。

アウトバウンドルールの設定
アウトバウンドルールを設定します。デフォルトでは下記のとおり、すべてのトラフィックが許可されています。必要に応じて、制限したいタイプ、プロトコル、送信先を設定します。今回は、アウトバウンドの通信は制限しないため、設定追加しません。

設定完了したら、セキュリティグループを作成 をクリックします。

作成が完了すると、下記のような画面が表示されます。

セキュリティグループの一覧にも追加されていることが確認できます。

このセキュリティグループをリソース(EC2やロードバランサなど)に適用します。
適用の方法はEC2やロードバランサを配置する記事で書きたいと思います。
コメント