AWS環境で特定IPからのアクセスを拒否する AWSのVPC内に構築されているウェブサーバーがあり、特定のIPアドレスを拒否する必要がありました。セキュリティグループで余裕だと思っていたのですが、よく考えたらホワイトリスト方式なので、ブラックリストのような扱いができません。今回、VPCのネットワークACL(アクセスコントロールリスト)で対応したので、方法をまとめておきます。 その前に ネットワークACL以外でAWS環境でIPアドレスをブロックする方法を考えます。なお、可能な限りより上位の箇所でブロックしたほうがよいです。 ALBリスナールール IPアドレスとURLとの組み合わせなど、柔軟にルールを設定できます。 AWS WAF AWS WAFでIP拒否するパターンです。こちらもリスナールール同様に柔軟な条件を設定することができますが、ALBリスナーリスナールールよりは設定に時間がかかりそうです。 EC2インスタンス内で設定 Apacheやfirewalldなどで設定するパターンです。アクセスは拒否できますがサーバーまでアクセスは到達するので、できれば避けたいところです。 AWS VPCのネットワークACLの設定 AWSマネジメントコンソールから設定します。 VPCダッシュボード→セキュリティ→ネットワークACLと進んで、対象のACLを選択します。 デフォルトで、すべてのIPを許可する設定になっています。 「インバウンドルールの編集」で拒否するIPを追加します。ルール#の降順でルールが適用されていきます。標準で100が登録されているので、今回は99からいくつか作成しました。 参考URL Amazon VPC>ユーザーガイド>ネットワークACL>ネットワーク ACL ルール これで完了です。コメントが書けないのであとでなんで拒否したのか絶対に忘れる・・・その点はAWS WAFのほうが良さそうです。 AWSIP制限IP拒否IP許可NetworkNetwork ACLセキュリティネットワークネットワークACL拒否 Tweet