type
status
date
slug
summary
tags
category
icon
password
理論
AWS WAFの基本構成とイメージ:IAMとの類似性で理解する
AWS WAF (Web Application Firewall) は、ウェブアプリケーションを不正なアクセスから保護するためのサービスです。その基本構成は、「Web ACLs」「Rules」「Associated AWS resources」の3つの要素で成り立っています。この構成を IAM(Identity and Access Management)の仕組みと比較して考えると、非常に理解しやすくなります。
1. Web ACLs = IAM グループ
「Web ACLs」は、アクセス制御のルールを管理するための「箱」です。
IAM の「グループ」のような役割を果たし、この中にルール(Rules)を定義して、リソースに適用します。
例:
- Web ACLs を作成し、その中に「SQLインジェクション防止」「IP制限」などのルールを追加。
- その後、Application Load Balancer (ALB) や Amazon CloudFront などに Web ACL を関連付けます。
Countを使ったSQLインジェクション防止の設定
- Countって何?
- Count は、攻撃をブロックせず、どのリクエストがルールに引っかかるかを「数えるだけ」の設定です。
- どうやって使うの?
- まず、「SQLインジェクション防止」のルールを作ります。
- 最初は Count に設定して、どんなリクエストがルールに引っかかるかを記録します。
- AWS WAF のログを確認して、「正しいリクエストまで引っかかっていないか」をチェックします。
- なぜCountを使うの?
- 誤検知(正しいリクエストをブロックするミス)を防ぐため。
- どのリクエストが問題かを安全にテストできます。
- 次に何をするの?
- ログを見て、必要があればルールを調整します。
- 誤検知がなくなったら、 Count を Block に変えて、本番で攻撃をブロックします。
簡単な流れ
- Count で試す → どのリクエストが引っかかるか確認。
- ログを確認 → 誤検知があればルールを修正。
- Block に切り替える → 攻撃を本番環境で防ぐ!
これで、まず安全にルールを試し、本番適用できます!
2. Rules = IAM ポリシー
「Rules」は、トラフィックを許可するか拒否するかを判断する具体的な条件を記述したものです。
IAM の「ポリシー」に似ており、許可 (Allow)、拒否 (Deny)、またはカウント (Count) のアクションを指定できます。
例:
- 特定のIPアドレスからのリクエストのみ許可するルール。
- SQLインジェクション攻撃の可能性があるリクエストをブロックするルール。
3. Associated AWS Resources = IAM ユーザー
「Associated AWS resources」は、Web ACL を適用する対象のリソースを指します。
IAM の「ユーザー」に該当する部分であり、これらのリソースに適用されたルールに基づいて、リクエストが許可または拒否されます。
例:
- ALB に Web ACL を関連付けて、リクエストの制御を行う。
- CloudFront を対象とする場合、グローバルに適用可能。
AWS WAFの構成イメージ
IAM の考え方を WAF に当てはめると、以下のような対応関係が成り立ちます:
WAF の要素 | IAM の要素 |
Web ACLs | グループ |
Rules | ポリシー |
Associated AWS Resources | ユーザー |
まとめ
AWS WAF は、Web ACL を中心に構成要素が整理されており、IAM の仕組みに似た考え方で理解できます。このように整理することで、ルールの設計やリソースの関連付けをスムーズに行えるようになります。WAF を効果的に利用して、ウェブアプリケーションのセキュリティを強化しましょう!
レートベースのルールは、短時間に大量のリクエストを送る攻撃(DDoSやブルートフォース攻撃など)を防ぐためのルールです。
何のため?
- 異常なトラフィックを制限: 1分間に一定以上のリクエストを送るIPアドレスを一時的にブロックします。
- ウェブアプリを保護: 正常な利用者に影響を与えず、攻撃だけを抑えることができます。
例
- 「1分間に1,000リクエストを超えたIPアドレスをブロックする」ルールを設定。
これにより、リソースを守りつつ、アプリケーションの可用性を確保します!
実践
一問道場
質問 #97
トピック 1
ある企業がウェブアプリケーションを開発しました。この企業は、アプリケーションを Amazon EC2 インスタンスのグループにホスティングしており、その背後に Application Load Balancer を配置しています。この企業は、アプリケーションのセキュリティを向上させることを望んでおり、AWS WAF の Web ACL を使用する計画です。ただし、アプリケーションへの正当なトラフィックに悪影響を与えないようにする必要があります。
ソリューションアーキテクトはこの要件を満たすために Web ACL をどのように構成すべきでしょうか?
A. Web ACL ルールのアクションを Count に設定します。AWS WAF ログ記録を有効にします。誤検知(false positive)を分析し、誤検知を回避するようルールを変更します。時間をかけて、Web ACL ルールのアクションを Count から Block に変更します。
B. Web ACL ではレートベースのルールのみを使用し、スロットル制限を可能な限り高く設定します。制限を超えたすべてのリクエストを一時的にブロックします。範囲を狭めるためにネストされたルールを定義します。
C. Web ACL ルールのアクションを Block に設定します。AWS 管理ルールグループのみを Web ACL に使用します。AWS WAF のサンプルリクエストや AWS WAF ログを使用して、Amazon CloudWatch メトリクスでルールグループを評価します。
D. カスタムルールグループのみを Web ACL に使用し、アクションを Allow に設定します。AWS WAF ログ記録を有効にします。誤検知を分析し、誤検知を回避するようルールを変更します。時間をかけて、Web ACL ルールのアクションを Allow から Block に変更します。
解説
問題の解説
ポイント:
AWS WAF を導入する際、誤検知を防ぎながらセキュリティを向上させるのが重要です。そのため、初めは Count アクションを使ってルールを試し、問題がないと確認できたら Block に切り替えるのがベストプラクティスです。
正解: A
- Count を使う理由: 初めから Block を適用すると、正しいトラフィックも誤って遮断するリスクがあるため、まずは Count でトラフィックを分析します。
- WAFログで確認: AWS WAF ログを分析して、ルールが適切かどうかを確認します。
- 誤検知がない場合: Count から Block に変更し、セキュリティを本番環境で有効にします。
他の選択肢が間違いな理由
- B: レートベースルールのみでは、すべての攻撃を防げません。高い閾値の設定も適切ではない場合があります。
- C: 初めから Block を適用すると、誤検知による影響で正常なトラフィックがブロックされるリスクがあります。
- D: カスタムルールだけに依存すると、管理や設定の負担が大きく、最適化に時間がかかります。
結論: Count → ログ確認 → Block の順で設定することが、安全かつ効果的な手法です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/16dd7ae8-88e2-80ce-b94b-f44ed7ceb4fd
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章