Application Load Balancer が HTTP 403 forbidden エラーを返しています。この問題を解決するには、どうすれば良いですか?
解決方法
お客様のシナリオに合わせて、次のトラブルシューティング手順を実行してください。
重要: 開始する前に、Application Load Balancer のアクセスログ記録が有効になっていることを確認してください。手順については、「アクセスログを有効にする」を参照してください。
AWS WAF ウェブアクセスコントロールリスト (ウェブ ACL) は、Application Load Balancer へのリクエストをモニタリングするように設定されており、リクエストをブロックしました。
ロードバランサーは HTTP エラーをアクセスログに送信し、HTTPCode_ELB_4XX_Count メトリクスを次のように増やします。
elb_status_code = 403
target_status_code = -
actions_executed = waf
これは、ロードバランサーがリクエストを AWS WAF に転送して、リクエストをターゲットに転送する必要があるかどうかを判断したことを意味します。そして、AWS WAF はリクエストを拒否すべきだと判断しました。ルール設定を診断するには、AWS WAF ログを確認します。詳細については、「ウェブ ACL のログ記録の管理」を参照してください。
Application Load Balancer には、HTTP 403 レスポンスを提供する固定レスポンスアクションで設定されたルールがある場合があります。
アクセスログで、次のような固定レスポンスアクションを確認します。
elb_status_code = 403
target_status_code = -
actions_executed = fixed-response
このログは、ルール設定に HTTP 403 エラーを提供する固定レスポンスアクションがあることを示しています。
ターゲットは HTTP 403 エラーで応答し、Application Load Balancer はこのレスポンスをクライアントに転送しています。
アクセスログの 403 エントリをチェックして、次のような値を確認します。
elb_status_code = 403
target_status_code = 403
target_status_code と elb_status_code の値が一致する場合、ターゲットアプリケーションは HTTP 403 レスポンスを送信しました。ターゲットアプリケーションが HTTP 403 禁止エラーを生成した理由を特定するには、アプリケーションベンダーにお問い合わせください。X-Amzn-Trace-Id ヘッダーを使用して、Application Load Balancer を介してリクエストをトレースすることもできます。詳細については、「X-Amzn-Trace-Id を使用して Application Load Balancer リクエストをトレースするにはどうすればよいですか?」を参照してください。
関連情報
Application Load Balancer のトラブルシューティング
HTTP 403: Forbidden