目次
はじめに
こんにちは、ディーネットの山田です。
今年も現地で、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
プロフィール
テクニカルサポートは卒業して、フロントサイドでお客様環境の構築をさせていただいております。
たまに、テクニカルサポートでご対応させていただくことがあるかもしれませんが、その際はよろしくお願いいたします。
インフラ系のエンジニアですが、時々休日プログラマー(Python、PHP)をやっております。
LINK
クラウドベリージャム:プロフィールページ