Amazon CloudFront レスポンスに HTTP セキュリティヘッダーを追加したいと考えています。どうすればよいですか?
簡単な説明
HTTP セキュリティヘッダーは、ウェブアプリケーションのプライバシーとセキュリティを強化し、クライアント側で脆弱性から保護します。最も一般的な HTTP セキュリティヘッダーは次のとおりです。
CloudFront レスポンスヘッダーポリシーを使用すると、CloudFront からのレスポンスに 1 つ以上の HTTP セキュリティヘッダーを追加できます。
解決方法
最も一般的な HTTP セキュリティヘッダー用の事前に定義された値を含むマネージドセキュリティヘッダーのレスポンスポリシーを使用できます。または、必要な CloudFront の動作に追加できるカスタムセキュリティヘッダーと値を含むカスタムレスポンスヘッダーポリシーを作成できます。
AWS コンソールからカスタムレスポンスヘッダーポリシーを作成する
- CloudFront コンソールを開きます。
- ナビゲーションメニューから [Policies] (ポリシー) を選択します。その後、[Response headers] (レスポンスヘッダー) を選択します。
- [Create response headers policy] (レスポンスヘッダーポリシーを作成) を選択します。
- [Security headers] (セキュリティヘッダー) で、ポリシーに追加するセキュリティヘッダーをそれぞれ選択します。各ヘッダーに必要な値を追加または選択します。
- [Custom headers] (カスタムヘッダー) で、CloudFront がレスポンスに追加するカスタムセキュリティヘッダーと値を追加します。
- 必要に応じて他のフィールドにも入力します。その後、[Create] (作成) を選択します。
レスポンスヘッダーポリシーをキャッシュ動作にアタッチする
レスポンスヘッダーポリシーを作成したら、それを CloudFront ディストリビューションのキャッシュ動作にアタッチします。マネージドまたはカスタムのセキュリティヘッダーレスポンスポリシーを既存の CloudFront ディストリビューションにアタッチするには、次の手順を実行します。
- CloudFront コンソールを開きます。
- 更新するディストリビューションを選択します。
- [Behaviors] (動作) タブで、変更するキャッシュ動作を選択します。その後、[Edit] (編集) を選択します。
- [Response headers policy] (レスポンスヘッダーポリシー) で、[SecurityHeadersPolicy] を選択するか、作成したカスタムポリシーを選択します。
- [Save changes] (変更を保存) を選択します。
HTTP セキュリティレスポンスヘッダーを含む CloudFront レスポンスの例を次に示します。
curl -I https://dxxxxxxxbai33q.cloudfront.net
HTTP/2 200
content-type: text/html
content-length: 9850
vary: Accept-Encoding
date: xxxxxxxxx
last-modified: xxxxxxx
etag: "c59c5ef71f3350489xxxxxxxxxx"
x-amz-server-side-encryption: AES256
cache-control: no-store, no-cache, private
x-amz-version-id: null
accept-ranges: bytes
server: AmazonS3
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=31536000
x-cache: Miss from cloudfront
via: 1.1 12142717248e0e7148a5c1a9151ab918.cloudfront.net (CloudFront)
x-amz-cf-pop: BOS50-C3
x-amz-cf-id: nHNANTZYdkQkE5BmsqlisPTiodFhVCK-Sf9Zp4iJzNs04eWi1_hEig==