Terraform は HashiCorp 社が開発したオープンソースの開発者向けツールです。Terraform を使用すると、コードによるクラウドインフラストラクチャの管理が可能です。Terraform の主要なプロバイダーの 1 つとして、Alibaba Cloud は Security Center に関連する複数のリソースおよびデータソースを Terraform にリリースしています。これらのリソースを Terraform で管理することで、自動デプロイメントやクラウドインフラストラクチャの継続的強化など、ビジネス要件を満たすことができます。本トピックでは、Terraform を使用して Security Center を有効化する方法について説明します。
サンプルコードをワンクリックで実行できます:サンプルコードをワンクリックで実行。
事前準備
Alibaba Cloud アカウントの不正利用リスクを軽減するため、RAM ユーザーを作成し、そのユーザーに対してAccessKey ペアを作成することを推奨します。
この例でリソースを管理し、最小限の権限を付与するには、RAM ユーザーに次のポリシーを割り当てます。
このポリシーにより、RAM ユーザーは Security Center に関連するリソースの表示、変更、作成が可能になります。必要に応じて、ポリシー内の操作およびリソース範囲を調整してください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "sas:Describe*", // Security Center に関する情報を表示する権限 "sas:CreateInstance", // Security Center インスタンスを作成する権限 "sas:UpdateInstance", // Security Center インスタンスをアップグレードする権限 "sas:Modify*" // その他の設定を変更する必要がある場合、このパラメーターを追加します ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" // Security Center との関連付けのために ECS インスタンスを照会する必要がある場合、権限が必要になることがあります ], "Resource": "*" } ] }Terraform 環境を以下のいずれかの方法で準備します:
Explorer:Alibaba Cloud が提供する Terraform Explorer を使用すると、インストール不要でオンラインで Terraform を実行できます。この方法は、無料かつ効率的・便利に Terraform を利用・デバッグするのに最適です。
Cloud Shell:Alibaba Cloud Cloud Shell には Terraform がプリインストール済みであり、認証情報もあらかじめ構成されています。これにより、Terraform コマンドを直接実行できます。この方法は、低コストで効率的・便利に Terraform を利用・デバッグするのに最適です。
Terraform のインストールと構成:ネットワーク接続が不安定な環境や、カスタム開発環境が必要なシナリオに最適です。
必要なリソース
alicloud_threat_detection_instance:Alibaba Cloud の脅威検出サービスを構成および管理するために使用されるリソースです。
Security Center の有効化
Security Center インスタンスを有効化した後は、不要なコストを回避するために、ライフサイクルを慎重に管理してください。
以下のコード例では、中国 (杭州) リージョンでサブスクリプション方式で Enterprise Edition の Security Center を有効化する方法を示します。
実行ディレクトリを作成し、そのディレクトリに移動します。
mkdir /usr/local/terraform cd /usr/local/terraform説明Terraform プロジェクトごとに実行ディレクトリを作成する必要があります。
terraform.tf ファイルを作成し、ファイルの内容を構成します。
vim terraform.tfterraform.tf ファイルの内容は以下のとおりです:
# プロバイダーを Alibaba Cloud に設定し、リージョンを中国 (杭州) に指定 provider "alicloud" { region = "cn-hangzhou" } # リソース名を定義。デフォルト値は "terraform-example" variable "name" { default = "terraform-example" } # バージョンコード。デフォルト値は "level2"(Enterprise Edition) variable "version_code" { default = "level2" } # 購入するサーバー台数。デフォルト値は "30" variable "buy_number" { default = "30" } # 課金方法。デフォルト値は "Subscription" variable "payment_type" { default = "Subscription" } # サブスクリプション期間。デフォルト値は "1"(単位:月) variable "period" { default = "1" } # 更新ステータス。デフォルト値は "ManualRenewal" variable "renewal_status" { default = "ManualRenewal" } # ログ分析用ストレージ容量。デフォルト値は "100"(単位:GB) variable "sas_sls_storage" { default = "100" } # ランサムウェア対策用データ容量。デフォルト値は "100"(単位:GB) variable "sas_anti_ransomware" { default = "100" } # Web タンパープルーフ機能のスイッチ。デフォルト値は "1"(有効) variable "sas_webguard_boolean" { default = "1" } # Web タンパープルーフ機能のクォータ。デフォルト値は "100" variable "sas_webguard_order_num" { default = "100" } # クラウドホニーポット機能のスイッチ。デフォルト値は "1"(有効) variable "honeypot_switch" { default = "1" } # クラウドホニーポット機能のクォータ。デフォルト値は "32" variable "honeypot" { default = "32" } # 悪意あるファイル検出機能のスイッチ。デフォルト値は "1"(有効) variable "sas_sdk_switch" { default = "1" } # 悪意あるファイル検出機能のクォータ。デフォルト値は "1000"(単位:10,000 回) variable "sas_sdk" { default = "1000" } # コンテナイメージスキャン回数。ステップサイズは 20 であるため、20 の倍数のみ入力可能です variable "container_image_scan_new" { default = "100" } # Agentic SOC 機能のスイッチ variable "threat_analysis_switch" { default = "1" } # Agentic SOC ログデータ量。増分は 100 であるため、100 の倍数のみ入力可能です variable "threat_analysis_flow" { default = "100" } # Agentic SOC ログストレージ容量。デフォルト値は "1000"(単位:GB) variable "threat_analysis_sls_storage" { default = "1000" } # 変数で定義された脅威検出リソース resource "alicloud_threat_detection_instance" "default" { version_code = var.version_code buy_number = var.buy_number payment_type = var.payment_type period = var.period renewal_status = var.renewal_status sas_sls_storage = var.sas_sls_storage sas_anti_ransomware = var.sas_anti_ransomware container_image_scan_new = var.container_image_scan_new sas_webguard_boolean = var.sas_webguard_boolean sas_webguard_order_num = var.sas_webguard_order_num honeypot_switch = var.honeypot_switch honeypot = var.honeypot sas_sdk_switch = var.sas_sdk_switch sas_sdk = var.sas_sdk threat_analysis_switch = var.threat_analysis_switch threat_analysis_flow = var.threat_analysis_flow threat_analysis_sls_storage = var.threat_analysis_sls_storage }パラメーター
必須
説明
例
modify_type
いいえ
インスタンスのスペックアップまたはスペックダウンを行う場合に必要です。上記コードに追加してください。有効な値:
アップグレード: セキュリティセンターをアップグレードします。
ダウングレード: セキュリティセンターをダウングレードします。
Upgrade
version_code
はい
Security Center のエディション。有効な値:
level7:アンチウイルス
level3:Advanced
level2:Enterprise
level8:Ultimate
レベル 10: 付加価値プラン
level2
buy_number
いいえ
保護対象のサーバー台数。
説明version_code を level3、level2、または level8 に設定する場合にのみ必須です。
30
v_core
いいえ
保護対象のサーバーの仮想 CPU(vCPU)数。
説明version_code を level7 または level8 に設定する場合にのみ必須です。
100
payment_type
はい
課金方法。有効な値:
Subscription
Subscription
period
いいえ
サブスクリプション期間(単位:月)。
有効な値:1、6、12、24、36、60。
1
renewal_status
いいえ
更新モード。有効な値:
AutoRenewal:自動更新
ManualRenewal(デフォルト):手動更新
ManualRenewal
renewal_period
いいえ
自動更新期間(単位:月)。
説明renewal_status を AutoRenewal に設定する場合にのみ必須です。
12
sas_sls_storage
いいえ
ログストレージ容量(単位:GB)。
有効な値:0~600,000。10 の倍数である必要があります。
説明サイバーセキュリティ法で定められた「ログは最低 180 日間保存すること」の要件を満たすため、各サーバーにつき 50 GB のログストレージ容量を設定することを推奨します。
100
sas_anti_ransomware
いいえ
ランサムウェア対策用データバックアップ容量(単位:GB)。
有効な値:10~9,999,999,999。10 の倍数である必要があります。
100
container_image_scan_new
いいえ
コンテナイメージスキャン回数。毎月スキャンする必要のあるイメージ数を設定することを推奨します(単位:回)。
有効な値:0~200,000。20 の倍数である必要があります。
説明Security Center では、イメージは一意のダイジェスト値によって識別されます。ダイジェスト値が変更されない限り、最初のスキャンのみがコンテナイメージスキャンクォータを消費します。ダイジェスト値が変更された場合は、新しいスキャンが追加のクォータを消費します。
たとえば、10 個のイメージをスキャンする予定で、サブスクリプション期間中にダイジェスト値が 20 回変更されると予想される場合、クォータは 30 に設定します。これは、イメージ数とダイジェスト値の変更回数の合計です。
100
sas_webguard_boolean
いいえ
Web タンパープルーフ機能を有効にするかどうかを指定します。有効な値:
1: はい
0: いいえ
1
sas_webguard_order_num
いいえ
Web タンパープルーフ機能のクォータ(単位:回)。
有効な値:0~9,999。
説明sas_webguard_boolean を 1 に設定する場合にのみ必須です。
100
sas_sc
いいえ
セキュリティダッシュボードを有効にするかどうかを指定します。有効な値:
説明このパラメーターは中国以外のリージョンではサポートされておらず、version_code を level3、level2、または level8 に設定した場合にのみサポートされます。
true:有効
false: いいえ
false
honeypot_switch
いいえ
クラウドホニーポット機能を有効にするかどうかを指定します。有効な値:
1: はい
2:いいえ
1
honeypot
いいえ
クラウドホニーポット機能のクォータ(単位:個)。
有効な値:20~500。
説明honeypot_switch を 1 に設定する場合にのみ必須です。
20
sas_sdk_switch
いいえ
悪意あるファイル検出機能を有効にするかどうかを指定します。有効な値:
1: はい
0: いいえ
1
sas_sdk
いいえ
悪意あるファイル検出の実行回数(単位:10,000 回)。
有効な値:10~9,999,999,999。10 の倍数である必要があります。
10
Threat_analysis_switch_1
いいえ
Agentic SOC を有効にするかどうかを指定します。有効な値:
0: いいえ
1: はい
1
Threat_analysis_flow
いいえ
Agentic SOC に追加するログデータ量(単位:GB/日)。
有効な値:100~9,999,999,999。100 の倍数である必要があります。
説明Threat_analysis_switch_1 を 1 に設定する場合にのみ必須です。
100
Threat_analysis_sls_storage
いいえ
Agentic SOC のログストレージ容量(単位:GB)。
有効な値:0~9,999,999,999。1,000 の倍数である必要があります。
1000
terraform initコマンドを実行して、構成を初期化します。以下のメッセージが表示された場合、Terraform の初期化は完了しています:

terraform applyコマンドを実行して Security Center インスタンスを作成します。実行中にプロンプトが表示されたら、yesを入力し、Enter キーを押します。コマンドの完了を待ちます。以下のメッセージが表示された場合、権限付与は完了しています。これらの操作を実行しますか? Terraform は上記の操作を実行します。 承認には「yes」のみが受け付けられます。 値を入力してください:以下のメッセージが表示された場合、Security Center の有効化は完了しています:
適用完了! リソース:1 追加、0 変更、0 削除。
結果の確認
Terraform show コマンドの実行
以下のコマンドを実行して、Terraform で作成されたリソースの詳細を照会します:
terraform show
コンソールの使用
Security Center コンソールにログインし、Enterprise Edition および関連機能が有効化されていることを確認します。

参考資料
Terraform の詳細については、「Terraform の概要」をご参照ください。