

# HTTP 400 ステータスコード (Bad Request)
<a name="http-400-bad-request"></a>

CloudFront は、ペイロードまたはパラメータのコンテンツが欠落していたり、適正でないなど、クライアントがリクエストで無効なデータを送信すると、400 bad request エラーを返します。これは、一般的なクライアントエラーである場合もあります。

## Amazon S3 オリジンが 400 エラーを返す場合
<a name="s3-origin-400-error"></a>

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' を予期しています。*

この問題は、次のシナリオで発生する可能性があります。

1. CloudFront ディストリビューションのオリジンが Amazon S3 バケットである。

1. S3 バケットを 1 つの AWS リージョンから別のリージョンに移動した。つまり、S3 バケットを削除し、後ほど同じバケット名で新しい S3 バケットを作成したが、元の S3 バケットがあった AWS リージョンとはちがうリージョンで作成したということです。

このエラーを修正するには、S3 バケットを現在の AWS リージョンで検索するように CloudFront ディストリビューションを更新します。

**CloudFront ディストリビューションを更新するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. このエラーを生成するディストリビューションを選択します。

1. [**Origin and Origin Groups (オリジンおよびオリジングループ)**] を選択します。

1. 移動した S3 バケットのオリジンを見つけます。このオリジンの横にあるチェックボックスをオンにして、[**編集**] を選択します。

1. [**Yes, Edit (はい、編集します)**] を選択します。[**Yes, Edit (はい、編集します)**] を選択する前に、設定を変更する必要はありません。

これらのステップを完了すると、CloudFront によりディストリビューションが再デプロイされます。ディストリビューションのデプロイ中は、**[最終変更日]** 列にステータスが **[デプロイ中]** と表示されます。デプロイの完了後、しばらくすると、`AuthorizationHeaderMalformed` エラーレスポンスを受信しなくなるはずです。

## Application Load Balancer オリジンが 400 エラーを返す場合
<a name="alb-origin-400-error"></a>

CloudFront ディストリビューションで Application Load Balancer オリジンを使用している場合、400 エラーが返される原因の可能性は以下のとおりです。
+ クライアントが HTTP 仕様を満たさない誤った形式のリクエストを送信した。
+ リクエストヘッダーのサイズが、リクエスト行あたり 16 K、単一のヘッダーあたり 16 K、またはリクエストヘッダー全体で 64 K を超えている。
+ クライアントが、リクエスト本文全体を送信する前に接続を閉じた。