本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立回應標頭政策
您可以使用回應標頭政策來指定 Amazon CloudFront 移除或新增至 HTTP 回應的 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 從原始伺服器接收的標頭,請選取 Origin override (原始伺服器覆寫) 核取方塊。
如需 CORS 標頭設定的詳細資訊,請參閱 CORS 標頭。
-
在 Security headers (安全性標頭) 面板中,選擇切換開關並設定您要新增至政策的每個安全性標頭。
如需安全性標頭設定的詳細資訊,請參閱 安全性標頭。
-
在 Custom headers (自訂標頭) 面板中,新增您想要納入政策的任何自訂標頭。
如需自訂標頭設定的詳細資訊,請參閱 自訂標頭。
-
在 Remove headers (移除標頭) 面板中,新增您希望 CloudFront 從原始伺服器回應移除,而不包含於 CloudFront 傳送給檢視者的回應中的任何標頭名稱。
如需移除標頭設定的詳細資訊,請參閱 移除標頭。
-
在 Server-Timing header (Server-Timing 標頭) 面板中,選擇 Enable (啟用) 切換,然後輸入採樣率 (須為介於 0 到 100 之間的數值,包括 0 與 100)。
如需有關
Server-Timing
標頭的詳細資訊,請參閱Server-Timing 標頭。
-
-
選擇 Create (建立) 以建立政策。
建立回應標頭政策之後,您可以將它連接到 CloudFront 分佈中的快取行為。
若要將回應標頭政策連接至現有分佈 (主控台)
-
在位於 https://console.aws.amazon.com/cloudfront/v4/home#/distributions
的 CloudFront 主控台中開啟 Distributions (分佈) 頁面。 -
選擇要更新的分佈,然後選擇 Behaviors (行為) 索引標籤。
-
選擇要更新的快取行為,然後選擇 Edit (編輯)。
或者,若要建立新的快取行為,請選擇 Create behavior (建立行為)。
-
對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。
-
選擇 Save changes (儲存變更) 以更新快取行為。如果要建立新的快取行為,請選擇 Create behavior (建立行為)。
若要將回應標頭政策連接至新分佈 (主控台)
在 https://console.aws.amazon.com/cloudfront/v4/home
中開啟 CloudFront 主控台。 -
選擇 Create Distribution (建立分佈)。
-
對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。
-
為您的分佈選擇其他設定。如需詳細資訊,請參閱分佈設定參考。
-
選擇 Create distribution (建立分佈) 以建立分佈。
-
- AWS CloudFormation
-
若要使用 建立回應標頭政策 AWS CloudFormation,請使用
AWS::CloudFront::ResponseHeadersPolicy
資源類型。下列範例顯示 YAML 格式的 AWS CloudFormation 範本語法,用於建立回應標頭政策。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::ResponseHeadersPolicy。
- 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 參考文件。 -