すべてのプロダクト
Search
ドキュメントセンター

Edge Security Acceleration:Terraform を使用したインバウンドレスポンスヘッダーの構成

最終更新日:Mar 27, 2026

Terraform を使用して、オリジンから ESA への応答における HTTP レスポンスヘッダーを追加、削除、または変更できます。たとえば、リクエストに基づいて CORS ヘッダーを動的に設定できます。

Terraform のインストールと権限の構成

コンピューターへの Terraform のインストールと構成

コンピューターで Terraform を使用する方法の詳細については、「Terraform のインストールと構成」をご参照ください。

  • RAM ユーザーの AccessKey ペアを作成します。Alibaba Cloud アカウント (root ユーザー) は、リソースに対するすべての権限を持っています。Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、ご利用のリソースは重大なリスクにさらされます。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「AccessKey ペアの作成」をご参照ください。

  • 認証情報を保存するための環境変数を作成します。

    AccessKey は、AccessKey Management ページで作成および表示できます。

    環境変数が構成されていない場合、Terraform テンプレートの実行時に本人確認に失敗します。

オンラインサービスの使用 (インストールや権限構成は不要)

Terraform をインストールしたくない場合は、オンラインサービス Cloud Shell を使用できます。

Alibaba Cloud Cloud Shell は、無料の運用・保守 (O&M) プロダクトです。Terraform コンポーネントがプリインストールされており、認証情報が構成済みです。そのため、Cloud Shell で Terraform コマンドを直接実行できます。詳細については、「Terraform を使用したリソースの作成」をご参照ください。

重要

Cloud Shell で Terraform を使用する場合、その削除機能によりデータ損失が発生する可能性があります。Cloud Shell は、デバッグなどのシンプルで迅速な操作にのみ使用することを推奨します。使用制限の詳細については、「使用制限」をご参照ください。

リソース

インバウンドレスポンスヘッダー変更ルールの構成

  1. main.tf という名前の構成ファイルを作成し、次のコードをコピーします。このコードは、ご利用のサイトのインバウンドレスポンスヘッダー変更ルール (オリジンから ESA へ) を作成します。

    # 1. 既存のサイトに関する情報を照会します。
    data "alicloud_esa_sites" "default" {
      site_name = "<span class="var-span" contenteditable="true" data-var="DOMAIN">{{DOMAIN}}"</span>  # Edge Security Acceleration (ESA) に追加されたサイトのドメイン名に置き換えてください。
    }
    
    # 2. インバウンドレスポンスヘッダー (オリジンから ESA へ) を変更します。一致する 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

    image

  3. 次のコマンドを実行して、Terraform ファイルの構文と構成を検証します。

    terraform validate

    出力が次の図のようであれば、検証は成功です。

    image

  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_modification ブロックにある operation パラメーターは、次の値をサポートします。

説明

説明

add

追加

レスポンスヘッダーを追加します。

del

削除

指定された名前のレスポンスヘッダーを削除します。

modify

変更

既存のレスポンスヘッダーの値を変更します。

response_header_modification.type パラメーター

type パラメーターは、ヘッダー値が静的文字列か動的式かを指定します。

説明

説明

static

静的

value は固定文字列です。

dynamic

動的

value は式です。たとえば、http.request.headers["origin"] のようなリクエストヘッダーを参照できます。