対象読者
- AWSに入門した方
- セキュリティグループの運用に自信を持てていない方
- セキュリティグループの運用のベターな方法を探している方
- とりあえず「ファイアウォールみたいなもの?」と漠然と理解している方
セキュリティグループがしてくれること
結論として、これだけ理解しておけば大丈夫です。
- セキュリティグループはインスタンスにアタッチして、**インバウンド(入ってくる通信)とアウトバウンド(出ていく通信)**を制御する「門番」の役割を果たします
セキュリティグループの正しい設定方法
- 一つのセキュリティグループを使い回さないでください
- ロードバランサーの後にくる水平スケーリングしたEC2の場合は同じセキュリティグループを使った方が見通しが良くなります
- それ以外の場合は、基本的に使い回さないようにしましょう
- 上とほぼ一緒ですが、一つのサービスにつき一つのセキュリティグループを割り当てるようにしましょう
- 自身にアクセスするサービスにつけられているセキュリティグループのIDを指定してインバウンドルールで許可しましょう
- こうすることでセキュリティグループしかインバウンドルールに現れず、各サービスの連携が目に見えてわかりやすく可視化できます
- Terraformで管理する際も、どのセキュリティグループからどのセキュリティグループへ参照があるかわかるので、これも管理がしやすくなります
- ここにTerraformの参考コードを貼る
- セキュリティグループの命名規則に気を付ける
- アタッチするリソース名がしっかりとわかるようにする(以下参考例)
- arunbababa-bastion-stg
- arunbababa-backend-stg
- arunbababa-alb-stg
- arunbababa-db-stg
- アタッチするリソース名がしっかりとわかるようにする(以下参考例)
画像の例は極端ですが、左を見てもわかるように見通しが悪く、微修正をするだけでも面倒でややこしいだけのパズルを解く羽目になります。
これを避け、右図のようにすっきりとした運用を心がけましょう。

