waf について
CloudFront、ロードバランサー、API などに AWS WAF の保護を設定するためのスキルです。タスク別の手順に振り分け、ログの事前設定、ACL スコープの選択、転送ヘッダーの偽装対策を重視します。
主な機能
- 01Web ACL の作成と関連付け
- 02マネージドルールとレートルールの設定
- 03IP 範囲と地域の照合
- 04Bot Control と不正対策の管理
- 05ログと AI クローラー制御の設定
活用シーン
- 01API やロードバランサーの WAF 保護
- 02リクエストログを使ったルール調整
- 03HTTP フラッドや総当たり攻撃の抑制
- 04ログイン保護とボットトラフィック管理
MCP 対応
接続時は AWS MCP サーバーを介して AWS コマンドを実行し、サンドボックス実行、監査ログ、可観測性を利用します。未接続の場合は AWS CLI を使用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill wafインストール後、Claude Code で/wafを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/adaptive-mitigation-playbook-for-forwarded-signals.mdadding-managed-rules-and-tuning-with-count-mode.mdadding-rate-based-rules.mdcreating-a-web-acl-and-associating-it-with-a-resource.mdforwarding-signals-with-dynamic-label-interpolation.mdprotecting-against-bots-with-bot-control.mdprotecting-logins-and-signups-with-fraud-control.mdrecovering-the-real-client-ip-behind-a-cdn.mdseeing-and-managing-ai-crawler-traffic.mdsetting-up-logging-and-request-sampling.mdstripping-inbound-waf-headers-before-trusting-them.mdturning-bot-control-labels-into-a-confidence-signal.mdusing-ip-sets-and-geographic-match-rules.md詳細
AWS WAF
概要
CloudFront ディストリビューション、Application Load Balancer、API Gateway REST API、AppSync GraphQL API への HTTP および HTTPS トラフィックをフィルタリングするウェブアプリケーションファイアウォール、AWS WAF の設定に関するドメイン知識です。ウェブ ACL の作成と関連付け、AWS マネージドルール、レートベースのルール、マッチルール(IP セットと地理的条件)、Bot Control とその上に構築されたシグナル転送ワークフロー、ログインとサインアップ向けの Fraud Control、AI および LLM クローラーの管理、そしてあらゆるチューニングワークフローの基盤となるログ記録を扱います。
このスキルはルーターです。各顧客タスクは、references/ 配下の手順ファイルに対応します。操作を始める前に該当するリファレンスをすべて読み、その制約と手順に従ってください。リファレンスファイルはそれぞれ独立しており、独自の判断表、制約、手順、トラブルシューティングを含みます。
接続されている場合は AWS MCP サーバーを使用してコマンドを実行してください(サンドボックス化された実行、監査ログ、可観測性)。それ以外の場合は AWS CLI を使用します。ウェブ ACL のスコープは作成時に固定されます。CloudFront のウェブ ACL は CLOUDFRONT スコープで us-east-1 に作成する必要があり、リージョナルウェブ ACL(Application Load Balancer、API Gateway、AppSync)はリソースのリージョンに REGIONAL スコープで作成します。
どの WAF タスクが必要ですか?
| 目的 | リファレンス |
|---|---|
| ウェブ ACL を作成してリソースに関連付ける | ウェブ ACL の作成とリソースへの関連付け |
| チューニングを始める前にログ記録とサンプリングを設定する | ログ記録とリクエストサンプリングの設定 |
| AWS マネージドルールを追加し、誤検知をチューニングする | マネージドルールの追加とカウントモードによるチューニング |
| HTTP フラッドとブルートフォースを抑制する | レートベースのルールの追加 |
| IP 範囲または国に基づいて許可またはブロックする | IP セットと地理的マッチルールの使用 |
| ボットを検出して制御する(導入編) | Bot Control によるボット対策 |
| ボットラベルを単一の信頼度シグナルにまとめる | Bot Control のラベルを信頼度シグナルに変換する |
| 1 つのルールですべてのシグナルをオリジンに転送する | 動的ラベル補間によるシグナルの転送 |
| 転送されたシグナルに対してアプリが行う処理を決める | 転送されたシグナル向けの適応型緩和プレイブック |
| 信頼する前に、攻撃者が転送ヘッダーを偽装できないようにする | 信頼する前に受信した WAF ヘッダーを削除する |
| CDN の背後にある実際のクライアント IP を特定する | CDN の背後にある実際のクライアント IP の特定 |
| Fraud Control でログインとサインアップを不正行為から保護する | Fraud Control によるログインとサインアップの保護 |
| AI および LLM クローラーのトラフィックを確認して管理する | AI クローラートラフィックの確認と管理 |
ルーティングに関する注意事項
- チューニングより先にログ記録を行います。 Count モードのチューニングワークフローでは、ログ記録とリクエストのサンプリングが有効になっていることが前提です。お客様がログ記録を設定していない場合は、まずそのリファレンスを実行してください。そうしないと、Count モードのチューニングで読み取るものがありません。
- Web ACL のスコープは作成時に固定されます。 CloudFront の Web ACL のスコープは
CLOUDFRONTで、リージョンはus-east-1です。リージョンリソースには、そのリソースがあるリージョンのREGIONALWeb ACL が必要です。スコープは後から変更できないため、作成するリファレンスで、構築を始める前にスコープを確定します。 - Bot Control は一連の作業であり、単一のタスクではありません。 ボットから保護することが出発点です(有効化し、Common と Targeted のどちらかを選び、動作を観察します)。ラベルを信頼度シグナルに変換する作業、そのシグナルを転送する作業、アプリケーションでのシグナルの扱いを決める作業は、それぞれ別のリファレンスで扱われ、この順に連携します。シグナルをオリジンに転送する場合は、ヘッダーの削除に関するリファレンスを安全対策として必ず併用してください。
- Common と Targeted は安易に選べるものではありません。 Common が検出するのは、自らをボットと明示するものと、既知の悪意ある IP アドレスだけです。ログイン、チェックアウト、または回避型ボットの標的となる高価値エンドポイントでは、アプリケーション統合 SDK を使った Targeted が必須です。ボットに関するリファレンスでは、実際のボット脅威に対して Targeted を推奨し、任意の選択肢としては紹介しません。
- レート制限と Fraud Control の違い。 レートベースルールは、大量の HTTP フラッドを抑制します。クレデンシャルスタッフィングや偽アカウントの作成はアカウントベースの不正利用であり、レート制限では検出できません。これらにはレートベースのリファレンスではなく、Fraud Control のリファレンス(ATP と ACFP)を使用してください。
- 転送するヘッダーには削除ルールが必要です。 お客様がシグナルまたはクライアント IP を
x-amzn-waf-*ヘッダーでオリジンに転送する場合は常に、なりすましを防ぐため、受信ヘッダーの削除に関するリファレンスが必要です。信頼度シグナル、補間、クライアント IP に関する各リファレンスからも、このリファレンスを参照してください。 - ほかのスキルで扱う内容。 L3/L4 DDoS 保護と Shield のコスト保護クレジットは shieldadvanced スキルで扱います。マルチアカウントの WAF 展開は firewallmanager スキルで扱います。CloudFront と Application Load Balancer の設定には、それぞれ専用のスキルがあります。このスキルでは WAF ルールを構築しますが、保護対象のリソースは設定しません。
セキュリティに関する考慮事項
AWS WAF 自体がセキュリティ制御であるため、設定を誤るとアプリケーションの防御力が直接低下します。 以下の対策をすべての参照先で適用してください。
- 最小権限の IAM。 タスクに必要な特定の
wafv2:アクション(例:wafv2:CreateWebACL、wafv2:GetWebACL、wafv2:UpdateWebACL、wafv2:AssociateWebACL、wafv2:PutLoggingConfiguration)のみを必ず付与してください。wafv2:*や管理ポリシーAWSWAFFullAccessは使用しないでください。 - 一時的な認証情報。 これらの WAF CLI コマンドを実行する際は、長期間有効な IAM ユーザーのアクセスキーではなく、一時的な認証情報を使う IAM ロール(EC2 インスタンスプロファイル、SSO セッション、
aws sts assume-roleなど)を必ず使用してください。 - 設定変更の監視。
wafv2の管理イベントに対する AWS CloudTrail を有効にし、重大な Web ACL 設定の変更(DeleteWebACLやUpdateWebACLによるルールの削除など)と、Web ACL のBlockedRequestsおよびCountedRequestsメトリクスに対して CloudWatch アラームを設定してください。これにより、ルールの変更や、ブロックまたはカウントされたトラフィックの急増を検知できます。 - 設定ミスによるアクセス許可。 作成しただけで関連付けられていない Web ACL や、適用するルールがないままデフォルトアクションが
Allowに設定された Web ACL は、何もフィルタリングしません。設定完了を報告する前に、Web ACL が関連付けられていることと、その設定が意図したデフォルト(ブロックまたは許可)に合致していることを必ず確認してください。 - ログ出力先の保護。 ログには認証情報やセッションデータが記録されることがあります。機密性の高いフィールド(
authorizationヘッダーやcookieなど)を必ずマスキングし、ログ出力先(CloudWatch Logs、Amazon S3、Amazon Data Firehose)で保存時の暗号化を必ず有効にしてください。 - ヘッダースプーフィングのリスク。 オリジンに転送される
x-amzn-waf-*シグナルは、受信リクエストで偽装される可能性があります。シグナルまたはクライアント IP を転送する場合は、必ず受信ヘッダーを削除するルールを追加してください(stripping-inbound-waf-headers-before-trusting-them を参照)。