Amazon-CloudFront

【小ネタ】CloudFrontのレスポンスヘッダーポリシーを設定する

はじめに

こんにちは、ディーネットの山田です。
今年も現地で、AWS Summit Japan へ参加させていただきました。
当社ブースへお越しいただいた皆様や、ブースを巡った際にお話いただいた皆様ありがとうございました。

さて、本題に戻りますが CloudFront のレスポンスヘッダーポリシーについて、設定を検証する機会があったので調べてみました。
どうやら、小ネタが流行っているようなので、小ネタで行きます!!!

CloudFrontのレスポンスヘッダーポリシーについて

Amazon CloudFront からビューワーに送信するレスポンスで削除または追加するHTTPヘッダーを指定することができます。
主な用途としては、CORS ヘッダーやセキュリティヘッダーの追加、オリジンから受信した不要なヘッダーを削除するといった用途で利用します。

レスポンスヘッダーポリシーを使用して、Amazon CloudFront からビューワーに送信するレスポンスで削除または追加する HTTP ヘッダーを指定できます。
レスポンスヘッダーポリシーおよびそれらを使用する理由の詳細については、「ポリシーを使用して CloudFront レスポンスの HTTP ヘッダーを追加または削除する」を参照してください。

また、内容によっては削除できないヘッダーもありますので、詳しくは以下のドキュメントを確認してください。
レスポンスヘッダーポリシーを理解する

やりたいこと

セキュリティヘッダーの「X-Frame-Options」で「SAMEORIGIN」を設定したい。

実際に設定していきます

すでに、CloudFront の構成および必要な設定は完了している前提となります。

CloudFront でレスポンスヘッダーをカスタムで作成

「レスポンスヘッダーポリシー」を任意に作成します。

作成したレスポンスヘッダーをビヘイビアに適用

レスポンスヘッダーは、各ビヘイビア毎に適用する必要があるため、対象となるビヘイビア毎にレスポンスヘッダーポリシーを設定します。

動作テスト

URLに対してcURLでリクエストを行い、応答ヘッダーを確認

セキュリティヘッダーの「X-Frame-Options」で「SAMEORIGIN」が設定されたことを確認します。

$ curl -D - -s -o /dev/null https://example.com/
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1145
Connection: keep-alive
Date: Mon, 01 Jul 2024 06:01:57 GMT
Last-Modified: Wed, 19 Jun 2024 02:46:04 GMT
ETag: "4d995870fca7fd05866b466cf1dca6d5"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: AmazonS3
Vary: Accept-Encoding
X-Cache: Miss from cloudfront
Via: 1.1 6a2a0e844b81207dd4dd32e329b0040a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: NRT12-P2
X-Amz-Cf-Id: RWx0Z3sMFsPWOXZv2QSHW7bEGZ9bYxktKkvPQqKyHayMF2HinzKC_w==
X-Frame-Options: SAMEORIGIN

備考

上記の内容であれば、Amazon S3 から配信していることが丸見えなので、以下のような設定を入れることである程度の隠蔽は可能だった。

設定内容

レスポンス内容

$ curl -D - -s -o /dev/null https://example.com/
HTTP/1.1 200 OK
Server: CloudFront
Content-Type: text/html
Content-Length: 1145
Connection: keep-alive
Date: Mon, 01 Jul 2024 06:08:38 GMT
Last-Modified: Wed, 19 Jun 2024 02:46:04 GMT
ETag: "4d995870fca7fd05866b466cf1dca6d5"
Accept-Ranges: bytes
Vary: Accept-Encoding
X-Cache: Hit from cloudfront
Via: 1.1 a421b90f1857669f6067e06d88a515f6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: NRT12-P2
X-Amz-Cf-Id: 5nO30OtUluh7i02mvE2MyNISidTiLyVb12OFimVQXYSjLKAJ0afFUw==
Age: 190
X-Frame-Options: SAMEORIGIN

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA