Amazon CloudFront のレスポンスに HTTP セキュリティヘッダーを追加したいと思っています。
簡単な説明
HTTP セキュリティヘッダーはウェブアプリケーションのプライバシーとセキュリティを向上させ、クライアント側の脆弱性からも保護します。最も一般的な HTTP セキュリティヘッダーは次のとおりです。
CloudFront レスポンスヘッダーポリシーを使用すると、CloudFront からのレスポンスに1つ以上の HTTP セキュリティヘッダーを追加できます。
解決策
最も一般的な HTTP セキュリティヘッダーの定義済み値を含む、マネージドセキュリティヘッダーレスポンスポリシーを使用できます。または、カスタムセキュリティヘッダーと値を持つカスタムレスポンスヘッダーポリシーを作成し、必要な CloudFront のビヘイビアに追加することもできます。
AWS コンソールからカスタムレスポンスヘッダーポリシーを作成する
- CloudFront コンソールを開きます。
- ナビゲーションメニューから**[ポリシー]を選択します。次に、[レスポンスヘッダー]**を選択します。
- **[レスポンスヘッダーポリシーの作成]**を選択します。
- セキュリティヘッダーで、ポリシーに追加する各セキュリティヘッダーを選択します。各ヘッダーに必要な値を追加または選択します。
- カスタムヘッダーで、CloudFront のレスポンスに追加するカスタムセキュリティヘッダーと値を追加します。
- 必要に応じて他のフィールドにも入力します。次に、**[ルールを作成]**を選択します。
レスポンスヘッダーポリシーをキャッシュ動作にアタッチする
レスポンスヘッダーポリシーを作成し、これを CloudFront ディストリビューションのキャッシュ動作にアタッチします。マネージドまたはカスタムのセキュリティヘッダーレスポンスポリシーを既存の CloudFront ディストリビューションにアタッチするには、以下を行います。
- CloudFront コンソールを開きます。
- 更新するディストリビューションを選択します。
- **[ビヘイビア]タブで、変更するキャッシュ動作を選択します。次に、[ビヘイビア]**を選択します。
- レスポンスヘッダーポリシーに対し、**[SecurityHeadersPolicy]**を選択するか、作成したカスタムポリシーを選択します。
- [変更を保存] を選択します。
以下は、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==