AWSの勉強を始めて、頻繁に出てくるセキュリティグループに関して、毎度これって何の為にあるんだっけという衝動に駆られることがあったので、ここらへんで1回まとめてみたいと思い記事を書いてみてることにしました。
記事の内容としては基本的なことしか記載しておりませんので、初学者向けと思って読んで頂けると幸いです。
セキュリティグループの役割とは?
セキュリティグループとはAWS側で提供されている仮想ファイアウォール機能のことで、
VPC上の通信(トラフィック)を制御する為に使用されます。代表的なものとして、
EC2インスタンスやRDS設置の際に適用することで、外部からのアクセスを制限したりといったことが行えます。
セキュリティグループの設定方法
ここではRDS用のセキュリティグループを例にとって、一つ設定してみたいと思います。
前提としてMYSQLを使用し、WEBサーバーからのアクセスのみを許可するといった仕様で進めて行きます。
下記が実際の設定画面になります。
(EC2のダッシュボードから、ネットワーク & セキュリティ欄の1番上のセキュリティグループをクリック)
右上のセキュリティグループを作成をクリック
セキュリティグループ名・説明
→特別なルール等はありません(ただしVPC内で一意である必要あり)が、このセキュリティグループがどういった用途で使われるのか分かりやすい形で命名してあげると良いかと思います。例えば今回の例のように、RDS用のセキュリティグループを作成したい場合は命名の中でDB等を記載してやるとイメージが付きやすいです。
VPC
→VPCではもしご自身で作成したVPCがあれば、それを紐付けてやることでこのセキュリティグループがどのVPCに所属させるのか決めることができます。
指定がなければデフォルトのセキュリティグループが設定されることになります。
インバウンドルール
→インバウンドルールというのは、外部からインスタンスへの受信トラフィックを制御します。デフォルトではすべて拒否になっており、設定によって一部のトラフィックのみ許可することができるようになります。
タイプではこのセキュリティグループがどこからのアクセスを許可するかを選択でき、
今回はMYSQLへの通信を許可したいので、MYSQL/Auroraを選択します。例えば作成したインスタンスに対して、SSHで接続を行えるようにしたい際はSSH等を選択します。
ソースではどのWEBサーバーからの通信を許可するかを選択することになりますが、ここでは個別のIPアドレスを指定するのではなく既に作成されているWEBサーバーのセキュリティグループを選択するようにしてやります。
サーバーを複数台運用した際は個別に指定してあげる必要がありますが、セキュリティグループを選択することで選択したセキュリティグループを設定しているインスタンスからのアクセスを許可することができるようになるからです。
アウトバウンドルール
→アウトバウンドルールというのは、インスタンスから外部への送信トラフィックを制御します。インバウンドルールとは異なり、すべてのトラフィックが許可されています。
ここではデータベース側から外部にアクセスすることに対して、特に制限をかける必要はありませんので設定は行いません。
最後に画像では見えていませんが、画面右下の作成ボタンを押してやることでセキュリティグループの作成が完了します。
終わりに
AWSの学習を進めていると、頻繁に出てくるこのセキュリティグループに関して整理する良いきっかけになったと思います。本記事では基本的なところにしか触れておらず、用途に応じてタイプなどは変わるものですので、今後も引き続き学習を進めて行きたいと思います。