Direkt zum Inhalt

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

0

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

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

1 Antwort
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

beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.