Alibaba Cloud は、Security Center 用の Terraform リソースブロックとデータソースブロックを提供しています。Terraform を使用すると、シンプルなコードで Security Center のアクティベートと管理を自動化できます。
サンプルコードはすぐに実行できます。ワンクリックで実行できます。
前提条件
-
ルートアカウントを使用すると、認証情報が漏えいした場合にセキュリティリスクが発生します。代わりに、RAM ユーザーを作成し、その RAM ユーザー用に AccessKey を作成することを推奨します。
-
Terraform コマンドを実行する RAM ユーザーに、以下の最小 IAM ポリシーをアタッチします。これにより、この例に必要な権限が付与されます。RAM ユーザーに権限を付与します。
このポリシーにより、RAM ユーザーは Security Center リソースの情報を取得、変更、作成できます。要件に応じて、Action とリソーススコープを調整してください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "sas:Describe*", // Security Center に関する情報の表示を許可します。 "sas:CreateInstance", // Security Center インスタンスの作成を許可します。 "sas:UpdateInstance", // Security Center インスタンスのアップグレードを許可します。 "sas:Modify*" // 他の設定を変更する必要がある場合は、この Action を追加します。 ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" // Security Center に関連付ける ECS インスタンスを照会するために必要になる場合があります。 ], "Resource": "*" } ] }
事前準備
以下のいずれかの方法で Terraform 実行環境を準備します。
-
Terraform Explorer を使用:ローカルにインストールせずに Terraform を実行できるオンライン環境です。無料で、簡単な試行やデバッグに最適です。
-
Terraform を使用してリソースをすばやく作成:Cloud Shell には Terraform が事前にインストールされ、認証情報も事前設定されています。セットアップなしで Terraform コマンドを直接実行できます。
-
Terraform をローカルにインストールして設定:ネットワーク接続が不安定な場合や、カスタム開発環境に最適です。
使用するリソース
alicloud_threat_detection_instance:Security Center インスタンスをプロビジョニングして管理します。
Security Center インスタンスのアクティベート
アクティベート後は、想定外の課金を避けるため、インスタンスのライフサイクルを慎重に管理してください。
次の例では、中国 (杭州) リージョンでサブスクリプション課金の Security Center Enterprise インスタンスをアクティベートします。
-
作業ディレクトリを作成して移動します。
mkdir /usr/local/terraform cd /usr/local/terraform説明Terraform プロジェクトごとに、個別の作業ディレクトリを作成する必要があります。
-
terraform.tf という名前のファイルを作成し、設定を追加します。
vim terraform.tf次の内容を追加します:
# Alibaba Cloud プロバイダーを設定し、リージョンを中国 (杭州) に設定します。 provider "alicloud" { region = "cn-hangzhou" } # リソース名を定義します。デフォルト値: "terraform-example"。 variable "name" { default = "terraform-example" } # Security Center のエディション。デフォルト値: "level2" (Enterprise)。 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" } # 悪意のあるファイル検出のクォータ。単位: 10,000 スキャン。デフォルト値: "1000"。 variable "sas_sdk" { default = "1000" } # コンテナイメージスキャン回数。値は 20 の倍数である必要があります。 variable "container_image_scan_new" { default = "100" } # エージェント型 SOC スイッチ。 variable "threat_analysis_switch" { default = "1" } # エージェント型 SOC のトラフィック。値は 100 の倍数である必要があります。デフォルト値: "100" GB/日。 variable "threat_analysis_flow" { default = "100" } # エージェント型 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
-
Downgrade
Upgrade
version_codeはい
Security Center のエディション。有効な値:
-
level7:Anti-virus
-
level3:Advanced
-
level2:Enterprise
-
level8:Ultimate
-
level10:Value-added Plan
level2
buy_numberいいえ
保護対象サーバー数。
説明このパラメーターは、version_code が level3、level2、または level8 に設定されている場合にのみ必要です。
30
v_coreいいえ
保護対象サーバーの 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 日以上保存) に準拠するため、サーバー 1 台あたり 50 GB のログストレージ容量を割り当てることを推奨します。
100
sas_anti_ransomwareいいえ
ランサムウェア対策機能のバックアップ容量 (GB)。
値の範囲:10~9,999,999,999。値は 10 の倍数である必要があります。
100
container_image_scan_newいいえ
コンテナイメージスキャンのクォータ。想定される月間スキャン数に設定します。単位:イメージ。
値の範囲:0~200,000。値は 20 の倍数である必要があります。
説明一意のダイジェストを持つイメージが初めてスキャンされた場合にのみ、クォータが 1 消費されます。イメージのダイジェストが変更された場合、更新後のイメージをスキャンすると、クォータがさらに 1 消費されます。たとえば、10 個のイメージをスキャンする必要があり、サブスクリプション期間中にダイジェストが合計 20 回変更される見込みの場合、クォータは 30 (10 + 20) に設定します。
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:機能を有効にします。
-
0:機能を無効にします。
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いいえ
エージェント型 SOC を有効または無効にします。有効な値:
-
0:機能を無効にします。 -
1:機能を有効にします。
1
threat_analysis_flowいいえ
エージェント型 SOC のログ取り込みトラフィック。単位:GB/日。
値の範囲:100~9,999,999,999。値は 100 の倍数である必要があります。
説明このパラメーターは、threat_analysis_switch が 1 に設定されている場合にのみ必須です。
100
threat_analysis_sls_storageいいえ
エージェント型 SOC のログストレージ容量。単位:GB。
値の範囲:0~9,999,999,999。値は 1,000 の倍数である必要があります。
1000
-
-
terraform initコマンドを実行して、設定を初期化します。初期化に成功すると、次の出力が表示されます:
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 applyコマンドを実行してインスタンスを作成します。プロンプトが表示されたらyesを入力し、Enter を押します。Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:作成に成功すると、次の出力が表示されます:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
デプロイの確認
Terraform show
Terraform で管理されているリソースを確認するには、次のコマンドを実行します:
terraform show
shell@Alicloud:~/022501$ terraform show
# alicloud_threat_detection_instance.default:
resource "alicloud_threat_detection_instance" "default" {
buy_number = "30"
container_image_scan_new = "100"
create_time = "2025-02-25T01:37:09Z"
honeypot = "32"
honeypot_switch = "1"
id = "sas-pb3rcrrnr0er"
payment_type = "Subscription"
period = 1
renewal_period_unit = "M"
renewal_status = "ManualRenewal"
sas_anti_ransomware = "100"
sas_cspm_switch = "0"
sas_sc = false
sas_sdk = "1000"
sas_sdk_switch = "1"
sas_sls_storage = "100"
sas_webguard_boolean = "1"
sas_webguard_order_num = "100"
status = "Normal"
threat_analysis_switch = "0"
version_code = "level2"
vul_switch = "0"
}
コンソール
Security Center コンソールで、Enterprise エディションとその機能がアクティベートされていることを確認します。
ログイン後、コンソール右上に Enterprise エディションのラベルが表示されていることを確認します。[Overview] ページで、Subscription と Pay-as-you-go のサービスがいずれも有効として表示されていることを確認します。これは、Enterprise エディションと関連機能が正常にアクティベートされたことを示します。