1回答
- 新しい順
- 投票が多い順
- コメントが多い順
0
ルールのアクションはAllowになっていますでしょうか?
Blockになっている場合はリストに登録されているIPがブロックされてしまいます。
リクエスト元の IPv6 アドレスが許可リストに含まれていなくても、IPv4 アドレスが許可リストに含まれていればアクセス可能な認識なのですが間違っているでしょうか?
ORステートメントが正常に設定できていればご認識の通りの動きになると思います。
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/waf-rule-statement-type-or.html
関連するコンテンツ
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
コメントありがとうございます!確認したところ Allow になっておりました。
ちなみにIPv4が含まれているのはclientIpの部分でしょうか? https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/logging-fields.html リクエストヘッダーなどに含まれている場合はそちらでフィルタリングが必要になると思います。 403エラーが発生するということはクライアントがIPv4ではなくIPv6でアクセスしているのではないかと予想しています。 こちらのブログなどを参考にリクエストがIPv4なのかIPv6なのかを確認する必要があると思います。 https://aws.amazon.com/jp/blogs/news/ipv6-support-update-cloudfront-waf-and-s3-transfer-acceleration/
コメントありがとうございます。clientip をまだ確認できていないのですが、Web ACLs の Sampled requests から確認したところ、ブロックされていたのは IPv6 (許可リストに含まれていないもの)でした。
追記 原因がわかりました(私のネットワークへの理解が浅いだけでした)。 WAF のルール評価において、リクエスト元の IPv4 アドレスと IPv6 アドレスの両方が一度に評価されると思い込んでいました。 ある時点においての IP プロトコルは IPv4 か IPv6 のどちらかなので、例えば IPv6 での通信時に Block された場合、WAF は IPv4 アドレスを知りようがないので IPv4 の方のルール評価は実施されないか、実施されたとしても Block されるのですね。 私の認識は正しいでしょうか...?
IPv6とIPv4のルールはORステートメントで登録されている認識でしたが違いますでしょうか? コンソールだと以下のように登録されているイメージです。 この状態で登録されていればどちらかのIPセットに登録されているものであれば許可できるように設定できると思います。
私のAWSアカウントで上記のようにORステートメントを登録して以下のようにCloudFrontへアクセスしてみました。 結果としてはIPセットにIPv4もしくはIPv6が登録されていれば許可される動きとなりました。 つまり、ルールの設定に何か問題があると考えられます。
ルールが分かれていて1つ目のルール (例えばIPv4を評価するルール) でブロックされていればそれ以降のルールは見ないのでIPv6がリストに登録されていてもアクセスできません。