AWS WAF: AI クローラに HTTP 402 を返して課金する(x402)
CloudFront + AWS WAF の AI traffic monetization で、ボットに「許可/ブロック」以外の第三の道=課金して通すを使える。402 Payment Required(x402)で支払い指示を返し、署名付き再送をエッジで検証する。
どんなときに使う?
- AI クローラ/エージェントのアクセスが増え、許可か遮断かの二択では足りない
- 参照してくれるボットは安く/学習目的は高く、など相手で値段を変えたい
- 自前の決済サーバーを立てずに、エッジで machine-to-machine 課金したい
やり方(概要)
前提: CloudFront に紐づく web ACL、受け取り用 USDC ウォレット(Base / Solana 等)、推奨として Bot Control。
- Bot Control を有効化し、人間のブラウザには 402 を返さないルールにする
例:awswaf:managed:aws:bot-control:botラベルにだけ Monetize アクションを当てる - web ACL に MonetizationConfig(チェーン・ウォレット・基本価格)を設定する
最小はおおよそ $0.001 USDC / リクエスト。ルールの PriceMultiplier(1〜100)で実価格 = 基本 × 倍率 - フロー: ボットが来る → 支払いなしなら 402(価格・ネットワーク・payTo 等)→ エージェントが
payment-signature付きで再送 → エッジ検証 → オリジンへ → 2xx なら settlement - まず
CurrencyMode: TEST(Base Sepolia / Solana Devnet)で通し、問題なければ REAL へ
オリジンが 4xx/5xx なら課金しない。payment-identifier 対応クライアントなら短時間の冪等リトライも可能。
注意点
- 課金リクエストには検証・オンチェーン決済ぶんの追加レイテンシ(秒単位になりうる)
- ボット判定は確率的。本番課金前にテストモード必須
- Monetize 自体の WAF 追加料金はないが、Bot Control は別料金
- 資金はクライアント → 設定ウォレット(Coinbase CDP の facilitator)。AWS は当事者にならない