建立回應標頭政策 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立回應標頭政策

您可以使用回應標頭政策來指定 Amazon 在 HTTP 回應中 CloudFront 新增或移除的 HTTP 標頭。如需回應標頭政策及其使用原因的詳細資訊,請參閱使用政策在 CloudFront回應中新增或移除 HTTP 標頭

您可以在 CloudFront 主控台中建立回應標頭政策。或者,您可以使用 AWS CloudFormation、 AWS Command Line Interface (AWS CLI) 或 CloudFront API 來建立一個。建立回應標頭原則之後,您可以將它附加至 CloudFront 散發中的一或多個快取行為。

建立自訂回應標頭政策之前,請先確認是否有任何受管回應標頭政策適合您的使用案例;如果有,您就可以將該政策連接到您的快取行為,而不需自行建立或管理回應標頭政策。

Console
建立回應標頭政策 (主控台)
  1. 登入 AWS Management Console,然後移至 CloudFront 主控台中 [原則] 頁面上的 [回應標頭] 索引標https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders

  2. 選擇 Create response headers policy (建立回應標頭政策)

  3. Create response headers policy (建立回應標頭政策) 表單中執行下列動作:

    1. Details (詳細資訊) 面板中,輸入回應標頭政策的 Name (名稱) 和 (選用) 解釋政策用途的 Description (描述)

    2. Cross-origin resource sharing (CORS) (跨來源資源分享 (CORS)) 面板中,選擇 Configure CORS (設定 CORS) 切換開關,並設定您要新增至政策的任何 CORS 標頭。如果您希望設定的標頭取代從原點 CloudFront 接收的標頭,請選取「原點取代」勾選方塊。

      如需 CORS 標頭設定的詳細資訊,請參閱 CORS標頭

    3. Security headers (安全性標頭) 面板中,選擇切換開關並設定您要新增至政策的每個安全性標頭。

      如需安全性標頭設定的詳細資訊,請參閱 安全性標頭

    4. Custom headers (自訂標頭) 面板中,新增您想要納入政策的任何自訂標頭。

      如需自訂標頭設定的詳細資訊,請參閱 自訂標頭

    5. 在「移除標題」面板中,新增您要 CloudFront 從來源回應中移除的任何標題名稱,而不要包含在 CloudFront傳送給檢視者的回應中。

      如需移除標頭設定的詳細資訊,請參閱 移除標頭

    6. Server-Timing header (Server-Timing 標頭) 面板中,選擇 Enable (啟用) 切換,然後輸入採樣率 (須為介於 0 到 100 之間的數值,包括 0 與 100)。

      如需有關 Server-Timing 標頭的詳細資訊,請參閱Server-Timing 標頭

  4. 選擇 Create (建立) 以建立政策。

建立回應標頭原則之後,您可以將其附加至 CloudFront 散發中的快取行為。

若要將回應標頭政策連接至現有分佈 (主控台)
  1. 在主控台中開啟 [發行版] 頁 CloudFront 面,位於https://console.aws.amazon.com/cloudfront/v4/home#/distributions

  2. 選擇要更新的分佈,然後選擇 Behaviors (行為) 索引標籤。

  3. 選擇要更新的快取行為,然後選擇 Edit (編輯)

    或者,若要建立新的快取行為,請選擇 Create behavior (建立行為)

  4. 對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。

  5. 選擇 Save changes (儲存變更) 以更新快取行為。如果要建立新的快取行為,請選擇 Create behavior (建立行為)。

若要將回應標頭政策連接至新分佈 (主控台)
  1. 在開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

  2. 選擇 Create Distribution (建立分佈)

  3. 對於 Response headers policy (回應標頭政策),選擇要新增至快取行為的政策。

  4. 為您的分佈選擇其他設定。如需詳細資訊,請參閱 分佈設定參考

  5. 選擇 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)
  1. 使用下列命令建立名為 response-headers-policy.yaml 的檔案。這個檔案中包含 create-response-headers-policy 命令的所有輸入參數。

    aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
  2. 開啟您剛才建立的 response-headers-policy.yaml 檔案。編輯檔案以指定政策名稱和所需的回應標頭政策組態,然後儲存檔案。

    如需有關回應標頭政策設定的詳細資訊,請參閱 瞭解回應標頭政策

  3. 使用下列命令建立回應標頭政策。您所建立的政策會使用 response-headers-policy.yaml 檔案中的輸入參數。

    aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml

    記下命令輸出中的 Id 值,這是回應標頭政策的 ID,您需要它將原則附加至 CloudFront 散發的快取行為。

將回應標頭政策連接至現有分佈 (包含輸入檔案的 CLI)
  1. 使用下列命令來儲存您要更新之 CloudFront 發行版的發佈組態。將 distribution_ID 改為分佈的 ID。

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. 開啟您剛才建立且命名為 dist-config.yaml 的檔案。編輯檔案,對快取行為進行下列變更,以便讓該行為使用此回應標頭政策。

    • 在快取行為中新增名為 ResponseHeadersPolicyId 的欄位。對於欄位值,請使用您在建立政策後記下的回應標頭政策 ID。

    • ETag 欄位重新命名為 IfMatch,但不要變更欄位的值。

    完成後儲存檔案。

  3. 使用下列命令來更新分佈以使用回應標頭政策。將 distribution_ID 改為分佈的 ID。

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
若要將回應標頭政策連接至新分佈 (包含輸入檔案的 CLI)
  1. 使用下列命令建立名為 distribution.yaml 的檔案。這個檔案中包含 create-distribution 命令的所有輸入參數。

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
  2. 開啟您剛才建立的 distribution.yaml 檔案。在預設快取行為的 ResponseHeadersPolicyId 欄位中,輸入您在建立政策後記下的回應標頭政策 ID。繼續編輯檔案以指定所需的分佈設定,然後在完成後儲存檔案。

    如需有關分佈設定的詳細資訊,請參閱 分佈設定參考

  3. 使用下列命令,使用 distribution.yaml 檔案中的輸入參數建立分佈。

    aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
API

若要使用 CloudFront API 建立回應標頭政策,請使用 CreateResponseHeadersPolicy. 如需有關您在此 API 呼叫中指定之欄位的詳細資訊,請參閱 AWS SDK 或其他 API 用戶端的 API 參考文件瞭解回應標頭政策和說明文件。

建立回應標頭政策之後,您可以使用下列其中一個 API 呼叫,將其連接至快取行為:

對於這兩個 API 呼叫,請在快取行為中的 ResponseHeadersPolicyId 欄位中提供回應標頭政策的 ID。有關您在這些 API 調用中指定的其他字段的詳細信息,請參閱分佈設定參考和 AWS SDK 或其他 API 客戶端的 API 參考文檔。