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

Cloud Firewall:Terraform を使用して VPC ファイアウォール用の特定のポリシーグループにアクセス制御ポリシーを作成する

最終更新日:Apr 25, 2025

このトピックでは、Terraform を使用して仮想プライベートクラウド(VPC)ファイアウォール用の特定のポリシーグループにアクセス制御ポリシーを作成する方法について説明します。

説明

このトピックのサンプルコードは、数回クリックするだけで実行できます。 詳細については、「Terraform Explorer」をご覧ください。

始める前に

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

  • 次のサンプルコードは、RAM ユーザーに権限を付与する方法の例を示しています。 詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "yundun-cloudfirewall:*",
                    "yundun-ndr:*",
                    "vpc:CreateVpc",
                    "vpc:DeleteVpc",
                    "vpc:DescribeVpcs",
                    "vpc:CreateVSwitch",
                    "vpc:DeleteVSwitch",
                    "vpc:DescribeVSwitches",
                    "vpc:CreateRouteEntry",
                    "vpc:DeleteRouteEntry",
                    "vpc:DescribeRouteEntries",
                    "vpc:CreateVpcPeerConnection",
                    "vpc:DeleteVpcPeerConnection",
                    "vpc:DescribeVpcPeerConnections",
                    "cloudfirewall:CreateVpcFirewall",
                    "cloudfirewall:DeleteVpcFirewall",
                    "cloudfirewall:DescribeVpcFirewalls"
                ],
                "Resource": "*"
            }
        ]
    }
  • Terraform 環境を準備します。 Terraform を使用するには、次のいずれかの方法を使用できます。

    Terraform Explorer で Terraform を使用する: Alibaba Cloud は、Terraform 用のオンラインランタイム環境である Terraform Explorer を提供しています。 Terraform Explorer にログインすれば、Terraform をインストールすることなく使用できます。 詳細については、「Terraform Explorer で Terraform を使用する」をご参照ください。 この方法は、追加費用なしで Terraform を迅速かつ便利に使用およびデバッグしたい場合に適しています。

    Cloud Shell で Terraform を使用する: Terraform は Cloud Shell にプリインストールされており、ID 資格情報は構成されています。 Cloud Shell で Terraform コマンドを直接実行できます。 詳細については、「Cloud Shell で Terraform を使用する」をご参照ください。 この方法は、低コストで Terraform を迅速かつ便利に使用およびデバッグしたい場合に適しています。

    オンプレミスマシンに Terraform をインストールして構成する: この方法は、ネットワークの状態が悪い場合やカスタム開発環境を使用する場合に適しています。 詳細については、「ローカル PC に Terraform をインストールして構成する」をご参照ください。

    重要

    Terraform 0.12.28 以降をインストールする必要があります。 terraform --version コマンドを実行して、Terraform のバージョンをクエリできます。

Resource

alicloud_cloud_firewall_vpc_firewall_control_policy: アクセス制御ポリシーを作成します。

手順

  1. 作業ディレクトリと、そのディレクトリに main.tf という名前の構成ファイルを作成します。 main.tf は Terraform のメインファイルであり、デプロイするリソースを定義します。 仮想プライベートクラウド(VPC)ファイアウォールが作成されていることを確認してください。

    variable "region" {
      default = "cn-heyuan"
    }
    provider "alicloud" {
      region = var.region
    }
    # 現在の Alibaba Cloud アカウントの ID を取得します。
    data "alicloud_account" "current" {
    }
    # VPC 1 を作成します。
    resource "alicloud_vpc" "vpc" {
      vpc_name   = "dd-tf-vpc-01"
      cidr_block = "192.168.0.0/16"
    }
    # VPC 2 を作成します。
    resource "alicloud_vpc" "vpc1" {
      vpc_name   = "dd-tf-vpc-02"
      cidr_block = "172.16.0.0/12"
    }
    # vSwitch を作成し、CIDR ブロック 192.168.10.0/24 を vSwitch に割り当てます。
    resource "alicloud_vswitch" "vsw" {
      vpc_id       = alicloud_vpc.vpc.id
      cidr_block   = "192.168.10.0/24"
      zone_id      = "cn-heyuan-a"
      vswitch_name = "dd-tf-vpc-01-example-1"
    }
    # vSwitch を作成し、CIDR ブロック 192.168.20.0/24 を vSwitch に割り当てます。
    resource "alicloud_vswitch" "vsw1" {
      vpc_id       = alicloud_vpc.vpc.id
      cidr_block   = "192.168.20.0/24"
      zone_id      = "cn-heyuan-b"
      vswitch_name = "dd-tf-vpc-01-example-2"
    }
    # vSwitch を作成し、CIDR ブロック 172.16.10.0/24 を vSwitch に割り当てます。
    resource "alicloud_vswitch" "vsw2" {
      vpc_id       = alicloud_vpc.vpc1.id
      cidr_block   = "172.16.10.0/24"
      zone_id      = "cn-heyuan-a"
      vswitch_name = "dd-tf-vpc-02-example-11"
    }
    # vSwitch を作成し、CIDR ブロック 172.16.20.0/24 を vSwitch に割り当てます。
    resource "alicloud_vswitch" "vsw3" {
      vpc_id       = alicloud_vpc.vpc1.id
      cidr_block   = "172.16.20.0/24"
      zone_id      = "cn-heyuan-b"
      vswitch_name = "dd-tf-vpc-02-example-22"
    }
    # VPC ピアリング接続を作成します。
    resource "alicloud_vpc_peer_connection" "default" {
      # VPC ピアリング接続の名前。
      peer_connection_name = "terraform-example-vpc-peer-connection"
      # 開始側 VPC の ID。
      vpc_id = alicloud_vpc.vpc.id
      # 受信側 VPC の Alibaba Cloud アカウント ID。
      accepting_ali_uid = data.alicloud_account.current.id
      # 受信側 VPC のリージョン ID。 2 つの VPC が同じリージョンにある場合は、開始側 VPC のリージョン ID を入力します。 VPC が異なるリージョンにある場合は、異なるリージョン ID を入力します。
      accepting_region_id = "cn-heyuan"
      # 受信側 VPC の ID。
      accepting_vpc_id = alicloud_vpc.vpc1.id
      # 説明。
      description = "terraform-example"
      # VPC ピアリング接続を強制的に削除するかどうかを指定します。
      force_delete = true
    }
    # 受信側 VPC。
    resource "alicloud_vpc_peer_connection_accepter" "default" {
      instance_id = alicloud_vpc_peer_connection.default.id
    }
    # ルート vpc-A を構成します。
    resource "alicloud_route_entry" "foo" {
      # ルートテーブル VPC-A の ID。
      route_table_id = alicloud_vpc.vpc.route_table_id
      # カスタムの宛先 CIDR ブロック。
      destination_cidrblock = "1.2.3.4/32"
      # ネクストホップのタイプ。
      nexthop_type = "VpcPeer"
      # ネクストホップの ID。
      nexthop_id = alicloud_vpc_peer_connection.default.id
    }
    # ルート vpc-B を構成します。
    resource "alicloud_route_entry" "foo1" {
      # ルートテーブル VPC-A の ID。
      route_table_id = alicloud_vpc.vpc1.route_table_id
      # カスタムの宛先 CIDR ブロック。
      destination_cidrblock = "4.3.X.X/32"
      # ネクストホップのタイプ。
      nexthop_type = "VpcPeer"
      # ネクストホップの ID。
      nexthop_id = alicloud_vpc_peer_connection.default.id
    }
    # 他の必要なリソースを作成します。
    resource "time_sleep" "wait_before_firewall" {
      # CEN インスタンスと VPC ピアリング接続が作成されていることを確認します。
      depends_on = [
        alicloud_route_entry.foo,
        alicloud_route_entry.foo1
      ]
      create_duration = "720s" # ビジネス要件に基づいて値を指定します。
    }
    # 待ち時間。
    resource "null_resource" "wait_for_firewall" {
      provisioner "local-exec" {
        command = "echo waiting for firewall to be ready" // ファイアウォールの準備ができるまで待機しています。
      }
      # CEN インスタンスが作成されていることを確認します。
      depends_on = [time_sleep.wait_before_firewall]
    }
    # VPC ピアリング接続または Express Connect 回線。
    resource "alicloud_cloud_firewall_vpc_firewall" "default" {
      # 必要な依存関係。
      depends_on = [
        null_resource.wait_for_firewall
      ]
      timeouts {
        create = "30m" # 作成操作のタイムアウト期間。
      }
      # インスタンスの名前。
      vpc_firewall_name = "tf-test"
      # ユーザーの ID。
      member_uid        = data.alicloud_account.current.id
      local_vpc {
        # 開始側 VPC の ID。
        vpc_id = alicloud_vpc.vpc.id
        # リージョン。
        region_no = "cn-heyuan"
        # ルート。
        local_vpc_cidr_table_list {
          # ルートテーブルの ID。
          local_route_table_id = alicloud_vpc.vpc.route_table_id
          local_route_entry_list {
            # ネクストホップ。
            local_next_hop_instance_id = alicloud_vpc_peer_connection.default.id
            # 宛先 CIDR ブロック。
            local_destination_cidr = alicloud_route_entry.foo.destination_cidrblock
          }
        }
      }
      peer_vpc {
        # 受信側 VPC の ID。
        vpc_id = alicloud_vpc.vpc1.id
        # リージョン。
        region_no = "cn-heyuan"
        # ルート。
        peer_vpc_cidr_table_list {
          # ルートテーブルの ID。
          peer_route_table_id = alicloud_vpc.vpc1.route_table_id
          peer_route_entry_list {
            # 宛先 CIDR ブロック。
            peer_destination_cidr = alicloud_route_entry.foo1.destination_cidrblock
            # ネクストホップ。
            peer_next_hop_instance_id = alicloud_vpc_peer_connection.default.id
          }
        }
      }
      # リソースのステータス。 有効な値:
      # open: VPC ファイアウォールは、作成後に自動的に有効になります。
      # close: VPC ファイアウォールは、作成後に自動的に有効になりません。
      status = "open"
    }
    resource "alicloud_cloud_firewall_vpc_firewall_control_policy" "default" {
      # アクセス制御ポリシーの優先順位。 優先順位の値は 1 から始まります。 値が小さいほど、優先順位が高くなります。
      order            = "1"
      # ポリシーの宛先アドレス。
      destination      = "0.0.0.0/0"
      # ポリシーでサポートされているアプリケーションタイプ。
      application_name = "ANY"
      # ポリシーの説明。
      description      = "Created_by_Terraform"
      # ポリシーの送信元アドレスタイプ。 有効な値:net および group。
      source_type      = "net"
      # オプション。 ポリシーの宛先ポート。
      dest_port        = "80/88"
      # トラフィックがポリシーで指定した条件を満たしている場合のトラフィックに対するアクション。 有効な値:accept、drop、および log。
      acl_action       = "accept"
      # リクエストとレスポンス内のコンテンツの言語。 有効な値:zh および en。
      lang             = "zh"
      # 宛先タイプを net に設定した場合、宛先の値は CIDR ブロックである必要があります。
      destination_type = "net"
      # ポリシーの送信元アドレス。
      source           = "0.0.0.0/0"
      # ポリシーの宛先ポートのタイプ。 有効な値:port および group。
      dest_port_type   = "port"
      # ポリシーのプロトコルタイプ。 有効な値:ANY、TCP、UDP、および ICMP。
      proto            = "TCP"
      # ポリシーのステータス。 デフォルトでは、ポリシーは作成後に有効になります。
      release          = true
      # 現在の Alibaba Cloud アカウントの ID。
      member_uid       = data.alicloud_account.current.id
      # VPC ファイアウォールの ID。
      vpc_firewall_id  = alicloud_cloud_firewall_vpc_firewall.default.id
    }
  2. 次のコマンドを実行して Terraform を初期化します。

    terraform init

    次の情報が返された場合、Terraform は初期化されています。

    Initializing the backend...
    
    Initializing provider plugins...
    - Finding latest version of hashicorp/alicloud...
    - Using hashicorp/alicloud v1.231.0 from the shared cache directory
    
    Terraform has created a lock file .terraform.lock.hcl to record the provider
    selections it made above. Include this file in your version control repository
    so that Terraform can guarantee to make the same selections by default when
    you run "terraform init" in the future.
    
    ╷
    │ Warning: Additional provider information from registry
    │ 
    │ The remote registry returned warnings for registry.terraform.io/hashicorp/alicloud:
    │ - For users on Terraform 0.13 or greater, this provider has moved to aliyun/alicloud. Please update your source in required_providers.
    ╵
    
    ╷
    │ Warning: Incomplete lock file information for providers
    │ 
    │ Due to your customized provider installation methods, Terraform was forced to calculate lock file checksums locally for the following providers:
    │   - hashicorp/alicloud
    │ 
    │ The current .terraform.lock.hcl file only includes checksums for linux_amd64, so Terraform running on another platform will fail to install these providers.
    │ 
    │ To calculate additional checksums for another platform, run:
    │   terraform providers lock -platform=linux_amd64
    │ (where linux_amd64 is the platform to generate)
    ╵
    
    Terraform has been successfully initialized! // Terraform は正常に初期化されました!
  3. 実行計画を作成し、変更をプレビューします。

    terraform plan
  4. 次のコマンドを実行して、指定された VPC ファイアウォール用の特定のポリシーグループにアクセス制御ポリシーを作成します。

    terraform apply

    実行中に、プロンプトが表示されたら yes と入力し、[Enter] キーを押します。 コマンドが正常に実行されるまで待ちます。 次の情報が表示された場合、操作は成功です。

    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      + create
    
    Terraform will perform the following actions:
    
      # alicloud_cloud_firewall_vpc_firewall_control_policy.default will be created
      + resource "alicloud_cloud_firewall_vpc_firewall_control_policy" "default" {
          + acl_action              = "accept"
          + acl_uuid                = (known after apply)
          + application_id          = (known after apply)
          + application_name        = "ANY"
          + description             = "Created_by_Terraform"
          + dest_port               = "80/88"
          + dest_port_group_ports   = (known after apply)
          + dest_port_type          = "port"
          + destination             = "0.0.0.0/0"
          + destination_group_cidrs = (known after apply)
          + destination_group_type  = (known after apply)
          + destination_type        = "net"
          + hit_times               = (known after apply)
          + id                      = (known after apply)
          + lang                    = "zh"
          + member_uid              = "1413397765616***"
          + order                   = 1
          + proto                   = "TCP"
          + release                 = true
          + source                  = "0.0.0.0/0"
          + source_group_cidrs      = (known after apply)
          + source_group_type       = (known after apply)
          + source_type             = "net"
          + vpc_firewall_id         = "vfw-c7536567ab694fb1a***"
        }
    
    Plan: 1 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    alicloud_cloud_firewall_vpc_firewall_control_policy.default: Creating...
    alicloud_cloud_firewall_vpc_firewall_control_policy.default: Creation complete after 0s [id=vfw-c7536567ab694fb1a59f:ca14e184-15dc-4a68-b0d8-fb71a15ff***]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed. //適用完了! リソース:1 個追加、0 個変更、0 個破棄。
    
  5. 結果を確認します。

    terraform show コマンドを実行する

    次のコマンドを実行して、作成されたアクセス制御ポリシーの詳細を表示できます。

    terraform show
    # alicloud_cloud_firewall_vpc_firewall_control_policy.default:
    resource "alicloud_cloud_firewall_vpc_firewall_control_policy" "default" {
        acl_action              = "accept"
        acl_uuid                = "ba164e52-acd2-4899-bf72-6816b13a****"
        application_id          = "0"
        application_name        = "ANY"
        description             = "Created_by_Terraform"
        dest_port               = "80/88"
        dest_port_group_ports   = []
        dest_port_type          = "port"
        destination             = "0.X.X.0/0"
        destination_group_cidrs = []
        destination_type        = "net"
        hit_times               = 0
        id                      = "vfw-d7b8ce273791475b****:ba164e52-acd2-4899-bf72-6816b13a****"
        lang                    = "zh"
        member_uid              = "1415189284827****"
        order                   = 1
        proto                   = "TCP"
        release                 = true
        source                  = "0.X.X.0/0"
        source_group_cidrs      = []
        source_type             = "net"
        vpc_firewall_id         = "vfw-d7b8ce273791475b****"
    }

    Cloud Firewall コンソールにログインする

    Cloud Firewall コンソール にログインし、[アクセス制御] > [VPC ボーダー] ページに移動します。 [VPC ボーダー] ページで、アクセス制御ポリシーの詳細を表示します。image

リソースを解放する

Terraform を使用して作成または管理された上記のリソースが不要になった場合は、次のコマンドを実行してリソースを解放します。 terraform destroy コマンドの詳細については、「共通コマンド」をご参照ください。

terraform destroy

完全なサンプルコード

説明

このトピックのサンプルコードは、数回クリックするだけで実行できます。 詳細については、「Terraform Explorer」をご覧ください。

サンプルコード

variable "region" {
  default = "cn-heyuan"
}
provider "alicloud" {
  region = var.region
}
# 現在の Alibaba Cloud アカウントの ID を取得します。 // 現在のAlibaba CloudアカウントのIDを取得します。
data "alicloud_account" "current" {
}
# VPC 1 を作成します。 // VPC 1を作成します。
resource "alicloud_vpc" "vpc" {
  vpc_name   = "dd-tf-vpc-01"
  cidr_block = "192.168.0.0/16"
}
# VPC 2 を作成します。 // VPC 2を作成します。
resource "alicloud_vpc" "vpc1" {
  vpc_name   = "dd-tf-vpc-02"
  cidr_block = "172.16.0.0/12"
}
# vSwitch を作成し、CIDR ブロック 192.168.10.0/24 を vSwitch に割り当てます。 // vSwitchを作成し、CIDRブロック 192.168.10.0/24 をvSwitchに割り当てます。
resource "alicloud_vswitch" "vsw" {
  vpc_id       = alicloud_vpc.vpc.id
  cidr_block   = "192.168.10.0/24"
  zone_id      = "cn-heyuan-a"
  vswitch_name = "dd-tf-vpc-01-example-1"
}
# vSwitch を作成し、CIDR ブロック 192.168.20.0/24 を vSwitch に割り当てます。 // vSwitchを作成し、CIDRブロック 192.168.20.0/24 をvSwitchに割り当てます。
resource "alicloud_vswitch" "vsw1" {
  vpc_id       = alicloud_vpc.vpc.id
  cidr_block   = "192.168.20.0/24"
  zone_id      = "cn-heyuan-b"
  vswitch_name = "dd-tf-vpc-01-example-2"
}
# vSwitch を作成し、CIDR ブロック 172.16.10.0/24 を vSwitch に割り当てます。 // vSwitchを作成し、CIDRブロック 172.16.10.0/24 をvSwitchに割り当てます。
resource "alicloud_vswitch" "vsw2" {
  vpc_id       = alicloud_vpc.vpc1.id
  cidr_block   = "172.16.10.0/24"
  zone_id      = "cn-heyuan-a"
  vswitch_name = "dd-tf-vpc-02-example-11"
}
# vSwitch を作成し、CIDR ブロック 172.16.20.0/24 を vSwitch に割り当てます。 // vSwitchを作成し、CIDRブロック 172.16.20.0/24 をvSwitchに割り当てます。
resource "alicloud_vswitch" "vsw3" {
  vpc_id       = alicloud_vpc.vpc1.id
  cidr_block   = "172.16.20.0/24"
  zone_id      = "cn-heyuan-b"
  vswitch_name = "dd-tf-vpc-02-example-22"
}
# VPC ピアリング接続を作成します。 // VPCピアリング接続を作成します。
resource "alicloud_vpc_peer_connection" "default" {
  # VPC ピアリング接続の名前。 // VPCピアリング接続の名前。
  peer_connection_name = "terraform-example-vpc-peer-connection"
  # 開始側 VPC の ID。 // 開始側VPCのID。
  vpc_id = alicloud_vpc.vpc.id
  # 受信側 VPC の Alibaba Cloud アカウント ID。 // 受信側VPCのAlibaba CloudアカウントID。
  accepting_ali_uid = data.alicloud_account.current.id
  # 受信側 VPC のリージョン ID。 2 つの VPC が同じリージョンにある場合は、開始側 VPC のリージョン ID を入力します。 VPC が異なるリージョンにある場合は、異なるリージョン ID を入力します。  // 受信側VPCのリージョンID。2つのVPCが同じリージョンにある場合は、開始側VPCのリージョンIDを入力します。VPCが異なるリージョンにある場合は、異なるリージョンIDを入力します。
  accepting_region_id = "cn-heyuan"
  # 受信側 VPC の ID。 // 受信側VPCのID。
  accepting_vpc_id = alicloud_vpc.vpc1.id
  # 説明。 // 説明。
  description = "terraform-example"
  # VPC ピアリング接続を強制的に削除するかどうかを指定します。 // VPCピアリング接続を強制的に削除するかどうかを指定します。
  force_delete = true
}
# 受信側 VPC。 // 受信側VPC。
resource "alicloud_vpc_peer_connection_accepter" "default" {
  instance_id = alicloud_vpc_peer_connection.default.id
}
# ルート vpc-A を構成します。 // ルートvpc-Aを構成します。
resource "alicloud_route_entry" "foo" {
  # ルートテーブル VPC-A の ID。 // ルートテーブルVPC-AのID。
  route_table_id = alicloud_vpc.vpc.route_table_id
  # カスタムの宛先 CIDR ブロック。 // カスタムの宛先CIDRブロック。
  destination_cidrblock = "1.2.3.4/32"
  # ネクストホップのタイプ。 // ネクストホップのタイプ。
  nexthop_type = "VpcPeer"
  # ネクストホップの ID。 // ネクストホップのID。
  nexthop_id = alicloud_vpc_peer_connection.default.id
}
# ルート vpc-B を構成します。 // ルートvpc-Bを構成します。
resource "alicloud_route_entry" "foo1" {
  # ルートテーブル VPC-A の ID。 // ルートテーブルVPC-AのID。
  route_table_id         = alicloud_vpc.vpc1.route_table_id
  # カスタムの宛先 CIDR ブロック。 // カスタムの宛先CIDRブロック。
  destination_cidrblock = "4.3.X.X/32"
  # ネクストホップのタイプ。 // ネクストホップのタイプ。
  nexthop_type           = "VpcPeer"
  # ネクストホップの ID。 // ネクストホップのID。
  nexthop_id             = alicloud_vpc_peer_connection.default.id
}
# 他の必要なリソースを作成します。 // 他の必要なリソースを作成します。
resource "time_sleep" "wait_before_firewall" {
  # CEN インスタンスと VPC ピアリング接続が作成されていることを確認します。 // CENインスタンスとVPCピアリング接続が作成されていることを確認します。
  depends_on = [
    alicloud_route_entry.foo,
    alicloud_route_entry.foo1
  ]
  create_duration = "720s" # ビジネス要件に基づいて値を指定します。 // ビジネス要件に基づいて値を指定します。
}
# 待ち時間。 // 待ち時間。
resource "null_resource" "wait_for_firewall" {
  provisioner "local-exec" {
    command = "echo waiting for firewall to be ready" // ファイアウォールの準備ができるまで待機しています。
  }
  # CEN インスタンスが作成されていることを確認します。 // CENインスタンスが作成されていることを確認します。
  depends_on = [time_sleep.wait_before_firewall]
}
# VPC ピアリング接続または Express Connect 回線。 // VPCピアリング接続またはExpress Connect回線。
resource "alicloud_cloud_firewall_vpc_firewall" "default" {
  # 必要な依存関係。 // 必要な依存関係。
  depends_on = [
    null_resource.wait_for_firewall
  ]
  timeouts {
    create = "30m" # 作成操作のタイムアウト期間。 // 作成操作のタイムアウト期間。
  }
  # インスタンスの名前。 // インスタンスの名前。
  vpc_firewall_name = "tf-test"
  # ユーザーの ID。 // ユーザーのID。
  member_uid = data.alicloud_account.current.id
  local_vpc {
    # 開始側 VPC の ID。 // 開始側VPCのID。
    vpc_id = alicloud_vpc.vpc.id
    # リージョン。 // リージョン。
    region_no = "cn-heyuan"
    # ルート。 // ルート。
    local_vpc_cidr_table_list {
      # ルートテーブルの ID。 // ルートテーブルのID。
      local_route_table_id = alicloud_vpc.vpc.route_table_id
      local_route_entry_list {
        # ネクストホップ。 // ネクストホップ。
        local_next_hop_instance_id = alicloud_vpc_peer_connection.default.id
        # 宛先 CIDR ブロック。 // 宛先CIDRブロック。
        local_destination_cidr     = alicloud_route_entry.foo.destination_cidrblock
      }
    }
  }
  peer_vpc {
    # 受信側 VPC の ID。 // 受信側VPCのID。
    vpc_id = alicloud_vpc.vpc1.id
    # リージョン。 // リージョン。
    region_no = "cn-heyuan"
    # ルート。 // ルート。
    peer_vpc_cidr_table_list {
      # ルートテーブルの ID。 // ルートテーブルのID。
      peer_route_table_id = alicloud_vpc.vpc1.route_table_id
      peer_route_entry_list {
        # 宛先 CIDR ブロック。 // 宛先CIDRブロック。
        peer_destination_cidr     = alicloud_route_entry.foo1.destination_cidrblock
        # ネクストホップ。 // ネクストホップ。
        peer_next_hop_instance_id = alicloud_vpc_peer_connection.default.id
      }
    }
  }
  # リソースのステータス。 有効な値: // リソースのステータス。有効な値:
  # open: VPC ファイアウォールは、作成後に自動的に有効になります。 // open:VPCファイアウォールは、作成後に自動的に有効になります。
  # close: VPC ファイアウォールは、作成後に自動的に有効になりません。 // close:VPCファイアウォールは、作成後に自動的に有効になりません。
  status = "open"
}
resource "alicloud_cloud_firewall_vpc_firewall_control_policy" "default" {
  # アクセス制御ポリシーの優先順位。 優先順位の値は 1 から始まります。 値が小さいほど、優先順位が高くなります。 // アクセス制御ポリシーの優先順位。優先順位の値は1から始まります。値が小さいほど、優先順位が高くなります。
  order = "1"
  # ポリシーの宛先アドレス。 // ポリシーの宛先アドレス。
  destination = "0.0.0.0/0"
  # ポリシーでサポートされているアプリケーションタイプ。 // ポリシーでサポートされているアプリケーションタイプ。
  application_name = "ANY"
  # ポリシーの説明。 // ポリシーの説明。
  description = "Created_by_Terraform"
  # ポリシーの送信元アドレスタイプ。 有効な値:net および group。 // ポリシーの送信元アドレスタイプ。有効な値:netおよびgroup。
  source_type = "net"
  # オプション。 ポリシーの宛先ポート。 // オプション。ポリシーの宛先ポート。
  dest_port = "80/88"
  # トラフィックがポリシーで指定した条件を満たしている場合のトラフィックに対するアクション。 有効な値:accept、drop、および log。 // トラフィックがポリシーで指定した条件を満たしている場合のトラフィックに対するアクション。有効な値:accept、drop、およびlog。
  acl_action = "accept"
  # リクエストとレスポンス内のコンテンツの言語。 有効な値:zh および en。 // リクエストとレスポンス内のコンテンツの言語。有効な値:zhおよびen。
  lang = "zh"
  # 宛先タイプを net に設定した場合、宛先の値は CIDR ブロックである必要があります。 // 宛先タイプをnetに設定した場合、宛先の値はCIDRブロックである必要があります。
  destination_type = "net"
  # ポリシーの送信元アドレス。 // ポリシーの送信元アドレス。
  source = "0.0.0.0/0"
  # ポリシーの宛先ポートのタイプ。 有効な値:port および group。 // ポリシーの宛先ポートのタイプ。有効な値:portおよびgroup。
  dest_port_type = "port"
  # ポリシーのプロトコルタイプ。 有効な値:ANY、TCP、UDP、および ICMP。 // ポリシーのプロトコルタイプ。有効な値:ANY、TCP、UDP、およびICMP。
  proto = "TCP"
  # ポリシーのステータス。 デフォルトでは、ポリシーは作成後に有効になります。 // ポリシーのステータス。デフォルトでは、ポリシーは作成後に有効になります。
  release = true
  # 現在の Alibaba Cloud アカウントの ID。 // 現在のAlibaba CloudアカウントのID。
  member_uid = data.alicloud_account.current.id
  # VPC ファイアウォールの ID。 // VPCファイアウォールのID。
  vpc_firewall_id = alicloud_cloud_firewall_vpc_firewall.default.id
}