Terraform是由HashiCorp开源的开发者工具,支持以代码的形式管理云基础设施。作为与Terraform集成的主流云厂商之一,阿里云已在Terraform社区发布了多个云安全中心相关的资源(Resource)和数据源(Data Source)。您可以使用Terraform管理这些资源,满足通过简单编码自动化部署、持续演进云基础设施等业务诉求。本文介绍如何使用Terraform快速开通云安全中心资源。
当前示例代码支持一键运行,您可以直接运行代码。一键运行
前提条件
-
由于阿里云账号(主账号)具有资源的所有权限,一旦发生泄露将面临重大风险。建议您使用RAM用户,并为该RAM用户创建AccessKey,具体操作,请参见创建RAM用户和创建AccessKey。
-
为运行Terraform命令的RAM用户绑定以下最小权限策略,以获取管理本示例所涉及资源的权限。更多信息,请参见管理RAM用户的权限。
该权限策略允许RAM用户描述、修改和创建云安全中心的相关资源。请根据实际情况调整策略中的动作和资源范围。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "sas:Describe*", // 允许查看云安全中心的相关信息 "sas:CreateInstance", // 允许创建云安全中心实例 "sas:UpdateInstance", // 允许升级云安全中心实例 "sas:Modify*" // 如果有修改其他设置的需求,可以添加该参数 ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" // 可能需要查询ECS实例的权限,以便于关联到云安全中心 ], "Resource": "*" } ] }
准备工作
准备Terraform运行环境,您可以选择以下任一方式来使用Terraform。
-
在Terraform Explorer中使用Terraform:阿里云提供了Terraform的在线运行环境,您无需安装Terraform,登录后即可在线使用和体验Terraform。适用于零成本、快速、便捷地体验和调试Terraform的场景。
-
使用Terraform快速创建资源:阿里云Cloud Shell中预装了Terraform的组件,并已配置好身份凭证,您可直接在Cloud Shell中运行Terraform的命令。适用于低成本、快速、便捷地访问和使用Terraform的场景。
-
在本地安装和配置Terraform:适用于网络连接较差或需要自定义开发环境的场景。
使用的资源
alicloud_threat_detection_instance:用于配置和管理阿里云威胁检测服务的资源类型。
开通云安全中心实例
开通云安全中心实例后,请务必谨慎管理其生命周期,避免产生不必要的费用。
下列代码示例以在杭州(cn-hangzhou)地域下开通云安全中心企业版包年包月实例为例,介绍开通云安全中心的具体操作。
-
创建并进入执行目录。
mkdir /usr/local/terraform cd /usr/local/terraform说明您需要为每个Terraform项目创建一个独立的执行目录。
-
创建terraform.tf文件,并配置文件内容。
vim terraform.tfterraform.tf文件内容填写如下:
# 配置阿里云provider,设置区域为杭州(cn-hangzhou) provider "alicloud" { region = "cn-hangzhou" } # 定义资源名称,默认值为"terraform-example" variable "name" { default = "terraform-example" } # 版本代码,默认值为"level2"(企业版) 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" } # 网页防篡改开关,默认值为"1"(是) variable "sas_webguard_boolean" { default = "1" } # 网页防篡改授权数量,默认值为"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的倍数,默认值为"100"(单位:GB/天) 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:升级配置。
-
Downgrade:降级配置。
Upgrade
version_code
是
云安全中心的版本。取值:
-
level7:防病毒版
-
level3:高级版
-
level2:企业版
-
level8:旗舰版
-
level10:仅采购增值服务
level2
buy_number
否
要防护的服务器台数。
说明仅当version_code设置为level3、level2或level8时,需要配置该参数。
30
v_core
否
要防护的服务器总核数( Vmcore总数)。
说明仅当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天的要求,推荐每台服务器配置50GB日志存储容量。
100
sas_anti_ransomware
否
防勒索病毒的数据备份容量。单位:GB。
取值范围:10~9,999,999,999,步长为10。
100
container_image_scan_new
否
容器镜像安全扫描,建议设置为每个月需要进行安全风险检测的镜像数量。单位:个。
取值范围:0~200,000,步长为20,即只能填写20的倍数。
说明云安全中心是以摘要(Digest)值唯一标识一个镜像,镜像的摘要值不变时,只在第一次扫描时消耗一个镜像安全扫描次数。摘要值变化后,执行扫描操作会重新消耗镜像安全扫描次数。例如,您需要检测10个镜像,在购买云安全中心服务的期限内,预计镜像更新总次数为20次(即所有镜像摘要值变更总次数为20次),则容器镜像安全扫描数量需要设置为30(即10+20)。
100
sas_webguard_boolean
否
是否开启网页防篡改。取值:
-
1:是
-
0:否
1
sas_webguard_order_num
否
网页防篡改的授权数。单位:次。
取值范围: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~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,步长为1000。
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"
threat_analysis_switch1 = "0"
version_code = "level2"
vul_switch = "0"
}
通过控制台验证
登录云安全中心控制台,请检查企业版及相关功能是否已成功开通。
登录后,在控制台右上角确认显示企业版标识,总览页中包年包月服务和按量付费服务均显示为已开启,表示企业版及相关功能已成功开通。
相关文档
-
关于Terraform产品的更多信息,请参见了解阿里云Terraform。