セキュリティグループは、AWSにおける最も基本でありながら“設定次第で即攻撃対象にもなる防御ポイント”です。許可した通信だけを通し、それ以外を遮断する仕組みですが、重要なのは「最小権限」をどう判断するかです。
本記事では「誰から・どこへ・何のために」の3点で許可を決める考え方を軸に、WebサーバーやDBサーバーの実務的な設定例、そしてEC2のどこで効いているのか、NACLやOSファイアウォールとの違いまで整理します。
設定例

セキュリティグループの設定
WEBサーバーであれば、次のような設定を行います。
WEBサーバーは「?https://cloudassist.jp?」のような通信の受付と返却を行います。そのため次のような設定を行います。
・外部からの「HTTPS」の通信についてはアクセスを「許可」
・外部からの接続が不要な「HTTPS」以外の通信は「拒否」
・管理者のみ必要な「SSH」は、特定のIPアドレスのみ「許可」
DBサーバーなど内部のサーバーのみで利用する場合であれば、次のような設定を行います。
・ 外部からの通信はすべて「拒否」
・ アクセス元のWEBサーバーからのアクセスを「許可」
どこで動作しているのか?

セキュリティグループの設定場所
セキュリティグループは、Amazon EC2の手前に配置されています。そのため、遮断したい通信がEC2インスタンスまで来ることはありません。無用なアクセスの対応が不要になるため、負荷軽減とセキュリティレベルの向上が可能になります。
関連するFAQ
Q. 最小権限はどう判断すればいいですか?
A. 「誰から(送信元)・どこへ(宛先)・何のために(用途)」の3点で判断します。この3つを説明できない通信は基本的に許可しません。
Q. 0.0.0.0/0での許可は危険ですか?
A. インターネット全体からのアクセスを許可する設定です。HTTPS(443)の公開用途では必要ですが、SSHやDBポートで使うと攻撃対象になります。用途ごとに使い分けが必要です。
Q. Webサーバーの実務的な設定は?
A. 直接公開する場合はHTTPS(443)を0.0.0.0/0で許可、SSH(22)は管理者IPのみに制限します。ALB経由の場合は、EC2はALBのセキュリティグループからの通信のみ許可し、インターネットから直接入らない構成にします。
Q. HTTP(80)は開けるべきですか?
A. HTTPSへリダイレクトする場合のみ許可します。完全にHTTPSのみで運用するなら閉じても問題ありません。
Q. DBサーバーはIPで制限すれば十分ですか?
A. 実務ではIPではなく「セキュリティグループID」での許可が推奨されます。WebサーバーのSGからの通信のみ許可することで、IP変更にも強く安全に制御できます。
Q. セキュリティグループはどこで動作していますか?
A. EC2インスタンスの手前で動作し、不要な通信はOSに届く前に遮断されます。ステートフル(戻り通信を自動許可)で、NACL(ステートレス)やOSのiptablesより前段で効くのが特徴です。
Q. よくある設定ミスは?
A. SSHを0.0.0.0/0で開けっぱなしにする、DB(3306など)を外部公開するケースです。実際にMySQLが数百万台規模で公開され、スキャン対象になっているという報告もあります。
Q. セキュリティグループは無料ですか?
A. はい、追加料金なしで利用できます。コストゼロで効果が大きいため、最初に確実に設計すべきポイントです。
まとめ
セキュリティグループに適切な設定がされていないと、悪意を持った攻撃者からもアクセスができてしまいます。アクセスが可能ということは、パスワードの総当たり攻撃を受ける可能性や、脆弱性が発見されたときに攻撃を受ける可能性があるということです。
セキュリティ企業Shadowserverの調べでは、ポート番号3306/TCPでアクセス可能なMySQLサーバーが約360万台も存在しており、サイバー攻撃の対象となる可能性があることが判明しています。
https://www.shadowserver.org/news/over-3-6m-exposed-mysql-servers-on-ipv4-and-ipv6/
これらのリスクを抱えないためにも適切なセキュリティグループの設定を行いましょう。
