我想向 Amazon CloudFront 响应添加 HTTP 安全标头。我该如何操作?
简短描述
HTTP 安全标头可提高 Web 应用程序的隐私和安全性,并保护其免受客户端漏洞的侵害。最常见的 HTTP 安全标头有:
CloudFront 响应标头策略允许您将一个或多个 HTTP 安全标头添加到来自 CloudFront 的响应。
解决方法
您可以使用托管安全标头响应策略,该策略包含最常见 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==