本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立回應標頭政策
您可以使用回應標頭政策來指定 Amazon 在 HTTP 回應中 CloudFront 新增或移除的 HTTP 標頭。如需回應標頭政策及其使用原因的詳細資訊,請參閱使用政策在 CloudFront回應中新增或移除 HTTP 標頭。
您可以在 CloudFront 主控台中建立回應標頭政策。或者,您可以使用 AWS CloudFormation、 AWS Command Line Interface (AWS CLI) 或 CloudFront API 來建立一個。建立回應標頭原則之後,您可以將它附加至 CloudFront 散發中的一或多個快取行為。
建立自訂回應標頭政策之前,請先確認是否有任何受管回應標頭政策適合您的使用案例;如果有,您就可以將該政策連接到您的快取行為,而不需自行建立或管理回應標頭政策。
- Console
-
建立回應標頭政策 (主控台)
-
登入 AWS Management Console,然後移至 CloudFront 主控台中 [原則] 頁面上的 [回應標頭] 索引標籤https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders
。 -
選擇 Create response headers policy (建立回應標頭政策)。
-
在 Create response headers policy (建立回應標頭政策) 表單中執行下列動作:
-
在 Details (詳細資訊) 面板中,輸入回應標頭政策的 Name (名稱) 和 (選用) 解釋政策用途的 Description (描述)。
-
在 Cross-origin resource sharing (CORS) (跨來源資源分享 (CORS)) 面板中,選擇 Configure CORS (設定 CORS) 切換開關,並設定您要新增至政策的任何 CORS 標頭。如果您希望設定的標頭取代從原點 CloudFront 接收的標頭,請選取「原點取代」勾選方塊。
如需 CORS 標頭設定的詳細資訊,請參閱 CORS標頭。
-
在 Security headers (安全性標頭) 面板中,選擇切換開關並設定您要新增至政策的每個安全性標頭。
如需安全性標頭設定的詳細資訊,請參閱 安全性標頭。
-
在 Custom headers (自訂標頭) 面板中,新增您想要納入政策的任何自訂標頭。
如需自訂標頭設定的詳細資訊,請參閱 自訂標頭。
-
在「移除標題」面板中,新增您要 CloudFront 從來源回應中移除的任何標題名稱,而不要包含在 CloudFront傳送給檢視者的回應中。
如需移除標頭設定的詳細資訊,請參閱 移除標頭。
-
在 Server-Timing header (Server-Timing 標頭) 面板中,選擇 Enable (啟用) 切換,然後輸入採樣率 (須為介於 0 到 100 之間的數值,包括 0 與 100)。
如需有關
Server-Timing
標頭的詳細資訊,請參閱Server-Timing 標頭。
-
-
選擇 Create (建立) 以建立政策。
建立回應標頭原則之後,您可以將其附加至 CloudFront 散發中的快取行為。
若要將回應標頭政策連接至現有分佈 (主控台)
-
在主控台中開啟 [發行版] 頁 CloudFront 面,位於https://console.aws.amazon.com/cloudfront/v4/home#/distributions
。 -
選擇要更新的分佈,然後選擇 Behaviors (行為) 索引標籤。
-
選擇要更新的快取行為,然後選擇 Edit (編輯)。
或者,若要建立新的快取行為,請選擇 Create behavior (建立行為)。
-
對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。
-
選擇 Save changes (儲存變更) 以更新快取行為。如果要建立新的快取行為,請選擇 Create behavior (建立行為)。
若要將回應標頭政策連接至新分佈 (主控台)
在開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home
。 -
選擇 Create Distribution (建立分佈)。
-
對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。
-
為您的分佈選擇其他設定。如需詳細資訊,請參閱 分佈設定參考。
-
選擇 Create distribution (建立分佈) 以建立分佈。
-
- AWS CloudFormation
-
若要使用建立回應標頭政策 AWS CloudFormation,請使用
AWS::CloudFront::ResponseHeadersPolicy
資源類型。下列範例顯示建立回應標頭原則的範 AWS CloudFormation 本語法 (YAML 格式)。Type: AWS::CloudFront::ResponseHeadersPolicy Properties: ResponseHeadersPolicyConfig: Name: EXAMPLE-Response-Headers-Policy Comment: Example response headers policy for the documentation CorsConfig: AccessControlAllowCredentials: false AccessControlAllowHeaders: Items: - '*' AccessControlAllowMethods: Items: - GET - OPTIONS AccessControlAllowOrigins: Items: - https://example.com - https://docs.example.com AccessControlExposeHeaders: Items: - '*' AccessControlMaxAgeSec: 600 OriginOverride: false CustomHeadersConfig: Items: - Header: Example-Custom-Header-1 Value: value-1 Override: true - Header: Example-Custom-Header-2 Value: value-2 Override: true SecurityHeadersConfig: ContentSecurityPolicy: ContentSecurityPolicy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none' Override: false ContentTypeOptions: # You don't need to specify a value for 'X-Content-Type-Options'. # Simply including it in the template sets its value to 'nosniff'. Override: false FrameOptions: FrameOption: DENY Override: false ReferrerPolicy: ReferrerPolicy: same-origin Override: false StrictTransportSecurity: AccessControlMaxAgeSec: 63072000 IncludeSubdomains: true Preload: true Override: false XSSProtection: ModeBlock: true # You can set ModeBlock to 'true' OR set a value for ReportUri, but not both Protection: true Override: false ServerTimingHeadersConfig: Enabled: true SamplingRate: 50 RemoveHeadersConfig: Items: - Header: Vary - Header: X-Powered-By
如需詳細資訊,請參閱《AWS CloudFormation 使用指南》中的「AWS::CloudFront::ResponseHeaders策略」。
- CLI
-
若要使用 AWS Command Line Interface (AWS CLI) 建立回應標頭政策,請使用aws cloudfront create-response-headers-policy指令。您可以使用輸入檔案來提供命令的輸入參數,而不必分別將每個個別參數指定為命令列輸入。
建立回應標頭政策 (包含輸入檔案的 CLI)
-
使用下列命令建立名為
response-headers-policy.yaml
的檔案。這個檔案中包含 create-response-headers-policy 命令的所有輸入參數。aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
-
開啟您剛才建立的
response-headers-policy.yaml
檔案。編輯檔案以指定政策名稱和所需的回應標頭政策組態,然後儲存檔案。如需有關回應標頭政策設定的詳細資訊,請參閱 瞭解回應標頭政策。
-
使用下列命令建立回應標頭政策。您所建立的政策會使用
response-headers-policy.yaml
檔案中的輸入參數。aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml
記下命令輸出中的
Id
值,這是回應標頭政策的 ID,您需要它將原則附加至 CloudFront 散發的快取行為。
將回應標頭政策連接至現有分佈 (包含輸入檔案的 CLI)
-
使用下列命令來儲存您要更新之 CloudFront 發行版的發佈組態。將
distribution_ID
改為分佈的 ID。aws cloudfront get-distribution-config --id
distribution_ID
--output yaml > dist-config.yaml -
開啟您剛才建立且命名為
dist-config.yaml
的檔案。編輯檔案,對快取行為進行下列變更,以便讓該行為使用此回應標頭政策。-
在快取行為中新增名為
ResponseHeadersPolicyId
的欄位。對於欄位值,請使用您在建立政策後記下的回應標頭政策 ID。 -
將
ETag
欄位重新命名為IfMatch
,但不要變更欄位的值。
完成後儲存檔案。
-
-
使用下列命令來更新分佈以使用回應標頭政策。將
distribution_ID
改為分佈的 ID。aws cloudfront update-distribution --id
distribution_ID
--cli-input-yaml file://dist-config.yaml
若要將回應標頭政策連接至新分佈 (包含輸入檔案的 CLI)
-
使用下列命令建立名為
distribution.yaml
的檔案。這個檔案中包含 create-distribution 命令的所有輸入參數。aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
-
開啟您剛才建立的
distribution.yaml
檔案。在預設快取行為的ResponseHeadersPolicyId
欄位中,輸入您在建立政策後記下的回應標頭政策 ID。繼續編輯檔案以指定所需的分佈設定,然後在完成後儲存檔案。如需有關分佈設定的詳細資訊,請參閱 分佈設定參考。
-
使用下列命令,使用
distribution.yaml
檔案中的輸入參數建立分佈。aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
-
- API
-
若要使用 CloudFront API 建立回應標頭政策,請使用 CreateResponseHeadersPolicy. 如需有關您在此 API 呼叫中指定之欄位的詳細資訊,請參閱 AWS SDK 或其他 API 用戶端的 API 參考文件瞭解回應標頭政策和說明文件。
建立回應標頭政策之後,您可以使用下列其中一個 API 呼叫,將其連接至快取行為:
-
若要將其附加至現有發行版中的快取行為,請使用UpdateDistribution。
-
若要將其附加至新發行版中的快取行為,請使用CreateDistribution。
對於這兩個 API 呼叫,請在快取行為中的
ResponseHeadersPolicyId
欄位中提供回應標頭政策的 ID。有關您在這些 API 調用中指定的其他字段的詳細信息,請參閱分佈設定參考和 AWS SDK 或其他 API 客戶端的 API 參考文檔。 -