このトピックでは、Terraform を使用して、インターネットファイアウォール用に作成されたアクセス制御ポリシーの優先順位を変更する方法について説明します。
このトピックのサンプルコードは、数クリックで実行できます。 詳細については、「[Terraform Explorer]」をご覧ください。
始める前に
Alibaba Cloud アカウントは、アカウント内のリソースに対するすべての権限を持っています。 Alibaba Cloud アカウントが漏洩した場合、リソースは大きなリスクにさらされます。Resource Access Management(RAM)ユーザーを使用し、RAM ユーザーの AccessKey ペアを作成することをお勧めします。 詳細については、「RAM ユーザーを作成する」および「AccessKey ペアを作成する」をご参照ください。
次のサンプルコードは、最小権限の原則(PoLP)に基づいて RAM ユーザーに権限を付与する方法を示しています。 Cloud Firewall に必要な権限を RAM ユーザーに付与する必要があります。 詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "yundun-cloudfirewall:*", "yundun-ndr:*" ], "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 のバージョンを照会できます。
リソース
alicloud_cloud_firewall_control_policy:Cloud Firewall 用に作成されたアクセス制御ポリシーの優先順位を変更します。
手順
このセクションでは、インターネットファイアウォール用に作成されたアクセス制御ポリシーの優先順位を変更する方法について説明します。
作業ディレクトリと、
main.tf
という名前の構成ファイルを作成します。 main.tf:このファイルは Terraform のメインファイルであり、デプロイするリソースを定義します。 インターネットファイアウォール用にアクセス制御ポリシーが作成されていることを確認する必要があります。resource "alicloud_cloud_firewall_control_policy" "example" { # ポリシーでサポートされているアプリケーションタイプ。 有効な値:ANY、HTTP、HTTPS、MQTT、Memcache、MongoDB、MySQL、RDP、Redis、SMTP、SMTPS、SSH、SSL、および VNC。 application_name = "ANY" # トラフィックがポリシーで指定した条件を満たしている場合のトラフィックに対するアクション。 有効な値:accept、drop、および log。 acl_action = "accept" # 説明。 description = "Created_by_terraform" # ポリシーの宛先アドレスタイプ。 有効な値:net、group、domain、および location。 destination_type = "net" # ポリシーの宛先アドレス。 destination = "100.1.X.X/24" # ポリシーが適用されるトラフィックの方向。 有効な値:in および out。 direction = "out" # ポリシーでサポートされているプロトコルタイプ。 有効な値:ANY、TCP、UDP、および ICMP。 proto = "ANY" # ポリシーの送信元アドレス。 source = "1.2.X.X/24" # ポリシーの送信元アドレスタイプ。 有効な値:net、group、および location。 source_type = "net" }
# インターネットファイアウォール用に作成されたアクセス制御ポリシーの優先順位を変更します。 resource "alicloud_cloud_firewall_control_policy_order" "example" { # アクセス制御ポリシーの UUID。 acl_uuid = alicloud_cloud_firewall_control_policy.example.acl_uuid # アクセス制御ポリシーが適用されるトラフィックの方向。 有効な値:in および out。 direction = "out" # アクセス制御ポリシーの優先順位。 優先順位の値は 1 から始まります。優先順位の値が小さいほど、優先順位が高くなります。 注:値 -1 は最低の優先順位を示します。 order = 1 }
次のコマンドを実行して、
Terraform
を初期化します。terraform init
次の情報が返された場合、Terraform は初期化されています。
Initializing provider plugins... - Finding latest version of hashicorp/alicloud... - Installing hashicorp/alicloud v1.231.0... - Installed hashicorp/alicloud v1.231.0 (signed by HashiCorp) 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. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
実行計画を作成し、変更をプレビューします。
terraform plan
次のコマンドを実行して、インターネットファイアウォール用に作成されたアクセス制御ポリシーの優先順位を変更します。
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_control_policy_order.example will be created + resource "alicloud_cloud_firewall_control_policy_order" "example" { + acl_uuid = "ef9bdf22-07d4-4080-8ec0-824ec3f0c*" + direction = "out" + id = (known after apply) + order = 1 } 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_control_policy_order.example: Creating... alicloud_cloud_firewall_control_policy_order.example: Creation complete after 1s [id=ef9bdf22-07d4-4080-8ec0-824ec3f0c***:out] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
結果を確認します。
次のコマンドを実行して、作成されたアクセス制御ポリシーの詳細を表示できます。
terraform show
# alicloud_cloud_firewall_control_policy_order.example: resource "alicloud_cloud_firewall_control_policy_order" "example" { acl_uuid = "ef9bdf22-07d4-4080-8ec0-824ec3f0c***" direction = "out" id = "ef9bdf22-07d4-4080-8ec0-824ec3f0c***:out" order = 1 }
[Cloud Firewall コンソール] にログインし、[アクセス制御] > [インターネット境界] ページに移動します。 [インターネット境界] ページで、ポリシー ID を使用してアクセス制御ポリシーを検索し、変更後のアクセス制御ポリシーの優先順位を表示します。
リソースの解放
Terraform を使用して作成または管理された上記のリソースが不要になった場合は、次のコマンドを実行してリソースを解放します。 terraform destroy
コマンドの詳細については、「共通コマンド」をご参照ください。
terraform destroy
完全なサンプルコード
サンプルコードは、数クリックで実行できます。 詳細については、「[Terraform Explorer]」をご覧ください。