HTTP 400 ステータスコード (Bad Request)
CloudFront は、ペイロードまたはパラメータのコンテンツが欠落していたり、適正でないなど、クライアントがリクエストで無効なデータを送信すると、400 bad request エラーを返します。これは、一般的なクライアントエラーである場合もあります。
Amazon S3 オリジンが 400 エラーを返す場合
CloudFront ディストリビューションで Amazon S3 オリジンを使用している場合、ディストリビューションが HTTP ステータス コード 400 Bad Request と次のようなメッセージのエラー応答を送信することがあります。
The authorization header is malformed; the region '<AWS Region>
' is wrong; expecting '<AWS Region>
'
次に例を示します。
認可ヘッダーの形式が正しくありません。リージョン 'us-east-1' が間違っています。'us-west-2' を予期しています。
この問題は、次のシナリオで発生する可能性があります。
-
CloudFront ディストリビューションのオリジンが Amazon S3 バケットである。
-
S3 バケットを 1 つの AWS リージョンから別のリージョンに移動した。つまり、S3 バケットを削除し、後ほど同じバケット名で新しい S3 バケットを作成したが、元の S3 バケットがあった AWS リージョンとはちがうリージョンで作成したということです。
このエラーを修正するには、S3 バケットを現在の AWS リージョンで検索するように CloudFront ディストリビューションを更新します。
CloudFront ディストリビューションを更新するには
AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
このエラーを生成するディストリビューションを選択します。
-
[Origin and Origin Groups (オリジンおよびオリジングループ)] を選択します。
-
移動した S3 バケットのオリジンを見つけます。このオリジンの横にあるチェックボックスをオンにして、[編集] を選択します。
-
[Yes, Edit (はい、編集します)] を選択します。[Yes, Edit (はい、編集します)] を選択する前に、設定を変更する必要はありません。
これらのステップを完了すると、CloudFront によりディストリビューションが再デプロイされます。ディストリビューションのデプロイ中は、[最終変更日] 列にステータスが [デプロイ中] と表示されます。デプロイの完了後、しばらくすると、AuthorizationHeaderMalformed
エラーレスポンスを受信しなくなるはずです。
Application Load Balancer オリジンが 400 エラーを返す場合
CloudFront ディストリビューションで Application Load Balancer オリジンを使用している場合、400 エラーが返される原因の可能性は以下のとおりです。
-
クライアントが HTTP 仕様を満たさない誤った形式のリクエストを送信した。
-
リクエストヘッダーのサイズが、リクエスト行あたり 16 K、単一のヘッダーあたり 16 K、またはリクエストヘッダー全体で 64 K を超えている。
-
クライアントが、リクエスト本文全体を送信する前に接続を閉じた。