AWS VPCでのネットワークACLとセキュリティグループのハマリポイント | ライタス株式会社
AWSでVPCを扱うとき、セキュリティポリシーとして、通信制御を行うと思います。 通信制御をするときは、ネットワークACLとセキュリティグループを活用して設定しますが、ここで幾つかハマりポイントがあります。 1. ステートレスとステートフル ネットワークACL ステートレスインスペクション セキュリティグループ ステートフルインスペクション ステートレスとは、指定したポートのみを通すもので、他のポートは通信を拒否します。 ステートフルは、指定したポートを通しますが、その通信の戻り通信も許可します。 http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Security.html 2. 設定単位 ネットワークACL サブネット単位 セキュリティグループ ENIおよびグループ単位 ネットワークACLは、VPC内に定義されたサブネット単位で作成できます。 セキュリティグループは、サーバーごとに設定するイメージですが、実態としては、ネットワークカードに対して設定するイメージと捉えています。 3. ネットワークACLとセキュリティグループを両方使う ネットワークACLとセキュリティグループを両方使う場合、両方許可されないと通信ができなくなります。 ネットワークACL セキュリティグループ 結果 許可 許可 許可 許可 拒否 拒否 拒否 許可 拒否 拒否 拒否 拒否 4. ハマリポイント 上記ルールに従って通信制御を行うことができますが、ネットワークACLがステートレスのため、ちゃんと通信ポートが開いてると思っているのに、開いていなかったということがよくあります。 また、戻りの通信ポートがダイレクトポートを使っている場合、ネットワークACLで拒否されてしまって、通信できなかったということが 検証方法としては、ネットワークACLかセキュリティグループを一瞬フルオープンにして通信できるかどうか確認する方法をよく使います。 他にも、AWS全体に言えることですが、設定上限になっているものが結構あります。 事前に把握しておくと良いかと思います。