1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS WAFがGoogle Cloud Platform (GCP) からのリクエストをブロックする問題と解決方法

Posted at

問題の概要

Google Cloud Run FunctionからPATCHリクエストを送信した際、AWS WAFによってリクエストがブロックされ、403 Forbiddenエラーが発生する問題が発生しました。

発生した症状

  • エラー: 403 Forbidden
  • 環境: GCP Cloud Run Function → AWS ALB + WAF + Rails API
  • リクエスト: PATCH /api/admin/sg_pos_reports/{id}
  • User-Agent: python-requests/2.32.3

調査プロセス

1. ALBログの確認

ALBログを有効化して調査したところ、以下のログが確認できました:

https 2025-07-01T02:04:37.515827Z xxxx 34.34.226.58:25929 - -1 -1 -1 403 - 612 271 "PATCH https://xxxxxx:443/api/admin/sg_pos_reports/34 HTTP/1.1" "python-requests/2.32.3" ..... -1 2025-07-01T02:04:37.508000Z "waf" "-" "-" "-" "-" "-" "-" TID_270745a72b66de4bb1695e593fe663e4bb1695e593fe663e4

ログの最後に"waf"という文字があることから、WAFによってリクエストがブロックされていることが判明しました。

2. WAFログの調査

WAFログを有効化して調査しましたが、該当するリクエストのログが見つかりませんでした。これは、リクエストがWAFレベルでブロックされ、詳細なログが残らなかったためと推測されます。

3. 原因の特定

AWS Managed Rulesの以下のルールがGCPからのリクエストをブロックしている可能性が高いと判断:

  • AWSManagedIPReputationList: 悪意のあるIPアドレスのリスト
  • AWSManagedRulesAnonymousIpList: 匿名IPアドレスのリスト

GCPのCloud Run FunctionのIPアドレスがこれらのリストに含まれている可能性があります。

解決方法

WAFにホワイトリストルールを追加

AWS WAFに新しいルールを作成して、特定の条件下でGCPからのリクエストを許可するようにしました。

ルール設定内容

  • ルール名: Allow-CloudRun-SgPosReport-API
  • アクション: Allow
  • 優先度: 最優先(4)

条件設定

  1. リクエストパス: /api/admin/sg_pos_reports*
  2. HTTPメソッド: PATCH, GET
  3. Content-Type: application/json
  4. 送信元IP: GCPのCloud Run FunctionのIPアドレス範囲

具体的な設定手順

  1. AWS WAF & Shieldコンソールにアクセス
  2. 該当するWeb ACLを選択
  3. 「Add rules」→「Add my own rules and rule groups」
  4. ルール詳細を設定:
  • allow 'get|put|patch'
    • image.png
  • allow 'applicaiton/json'
    • image.png
  • 優先順位
    • image.png

まとめ

GCPからAWSへのクロスクラウド通信において、AWS WAFのManaged Rulesによるブロックは起こりうる問題です。この問題を解決するには:

  1. 適切なログを有効化して問題を特定
  2. ホワイトリストルールを慎重に設計
  3. セキュリティを維持しながら必要な通信を許可

このような問題に遭遇した場合は、ログを詳細に調査し、段階的にルールを調整することが重要です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?