全部產品
Search
文件中心

Edge Security Acceleration:使用Terraform配置修改入站回應標頭(來源站點到ESA)

更新時間:Mar 27, 2026

使用Terraform可以在來源站點返回至ESA的響應上添加、刪除或變更HTTP回應標頭,例如按請求動態回寫CORS頭。

安裝Terraform並配置許可權

在本地安裝和配置Terraform

您可以參考安裝和配置Terraform,在本地使用Terraform。

  • 由於阿里雲帳號(主帳號)擁有資源的所有許可權,其AccessKey一旦泄露風險巨大,所以建議您使用滿足最小化許可權需求的RAM使用者的AccessKey。具體操作方式請參見建立AccessKey

  • 建立環境變數,用於存放身份認證資訊。

    AccessKey管理頁面上建立和查看您的AccessKey。

    若無對應環境變數,在執行terraform模板時無法確認身份資訊,將會導致調用失敗。

使用線上服務(免安裝和許可權配置)

如果您不想安裝Terraform,可以直接使用線上服務Cloud Shell

阿里雲Cloud Shell是一款協助您營運的免費產品,預裝了Terraform的組件,並配置好身份憑證(Credentials)。因此您可直接在Cloud Shell中運行Terraform的命令。更多資訊,請參見使用Terraform快速建立資源

重要

通過Cloud Shell使用Terraform時,由於其銷毀特性會導致資料丟失,因此建議您使用Cloud Shell做簡單、快速的操作,例如調試。更多使用限制,請參見使用限制

涉及的資源

配置入站回應標頭修改規則

  1. 建立一個名為 main.tf 的設定檔,然後將以下代碼複製到設定檔中,用於為網站建立入站回應標頭修改規則(來源站點到ESA)。

    # 1. 查詢已有網站資訊
    data "alicloud_esa_sites" "default" {
      site_name = "{{DOMAIN}}"  # 替換為您已接入邊緣安全加速的網站網域名稱
    }
    
    # 2. 修改入站回應標頭(來源站點到邊緣安全加速):在匹配 Origin 的請求響應中回寫 Access-Control-Allow-Origin
    resource "alicloud_esa_http_incoming_response_header_modification_rule" "example" {
      site_id      = data.alicloud_esa_sites.default.sites[0].site_id
      rule_name    = "cors-mirror-origin-example"
      rule_enable  = "on"
      rule         = "(http.request.headers[\"origin\"] in {\"http://www.example.com\" \"https://www.example.com\" \"http://image.example.com\" \"https://image.example.com\"})"
      response_header_modification {
        operation = "add"
        name      = "Access-Control-Allow-Origin"
        value     = "http.request.headers[\"origin\"]"
        type      = "dynamic"
      }
    }
    
  2. 進入設定檔所在目錄,執行如下命令,初始化Terraform環境。

    terraform init
  3. 執行如下命令,驗證Terraform文法與配置。

    terraform validate
  4. 執行如下命令,預覽執行結果。

    terraform plan
  5. 執行如下命令,執行Terraform指令碼。

    terraform apply
  6. 依據提示輸入yes確認執行即可。

驗證結果

執行 terraform show 命令

您可以在工作目錄中,使用以下命令查詢 Terraform 已建立資源的詳細資料:

terraform show

登入控制台查看

  1. 在ESA控制台選擇網站管理,在網站列單擊目標網站。

  2. 在左側導覽列,選擇規則 > 轉換規則在對應子功能頁查看已建立的規則及配置。

(可選)清理資源

當您不再需要上述通過Terraform建立或管理的資源時,請運行terraform destroy命令以釋放資源。

terraform destroy

相關參考

response_header_modification.operation 說明

Terraform 的 alicloud_esa_http_incoming_response_header_modification_rule資源中,response_header_modificationoperation 取值如下表所示。

取值

含義

說明

add

添加

新增響應標題。

del

刪除

刪除指定名稱的響應標題。

modify

變更

修改已有響應標題的值。

response_header_modification.type 說明

type 表示標題取值為靜態字串還是動態運算式。

取值

含義

說明

static

靜態

value 為固定字串。

dynamic

動態

value 為運算式,例如引用要求標頭 http.request.headers["origin"]