CloudFront+S3を用いた静的ホスティング時に、/soapへアクセスすると200番台レスポンスが返却されるのは何故でしょうか?

0

AWS CloudFrontとS3 ストレージを用いて、静的ホスティングのサイトを作成しました。 S3ストレージのルート直下にソースコードを配置し、外部から正常にアクセスできることを確認できています。 この状態で、https://my-domain/soapにアクセスすると何も記載がいない正常系レスポンスが返ってきました。 S3ストレージにはsoapというファイルはありません。

この状況で/soapへのアクセスは不要だと思っているため403レスポンスを返す対処方法と、何故こういう事象が発生するのか、教えていただけないでしょうか? また、こういったようなファイルは存在しないが正常系レスポンスが返されるのが/soap以外にあればそれも教えて下さい。

1回答
0

CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供している場合に、パス /soap へアクセスすると 200 レスポンスが返却されるのは、S3 バケットが SOAP API をサポートしているためです。

S3 オブジェクトキー名が soap もしくはプレフィックスが soap/ の場合、 S3 の SOAP API がトリガーされます。 このとき、 S3 はリクエストされた SOAP アクションの実施を試みますが、GET リクエストは空のリクエストボディであるため SOAP 命令は含まれません。 そのため S3 より空のレスポンスボディと成功ステータスコード(200)が返却されます。

もし当該パスへのリクエストに対し 403 エラーを返す必要がある場合、WAF や Lambda@Edge を使用して当該パスへのリクエストを検知し、CloudFront 側で S3 オリジンにリクエストを行う前にエラーを返す方法が考えられます。 WAF や Lambda@Edge については、以下のドキュメントをご参照ください。

AWS
回答済み 1ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ