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的场景。
Cloud Shell:阿里云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.tf
terraform.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" } # 恶意文件检测SDK开关,默认值为"1"(是) variable "sas_sdk_switch" { default = "1" } # 恶意文件检测数量,默认值为"1000"(单位:10,000次) variable "sas_sdk" { default = "1000" } # 容器镜像安全扫描次数,步长为20,即只能填写20的倍数 variable "container_image_scan_new" { default = "100" } #威胁分析与响应开关 variable "Threat_analysis_switch_1" { default = "1" } #威胁分析与响应流量,步长为100,即只能填写100的倍数 variable "threat_analysis_flow" { default = "100" } #威胁分析与响应与日志存储容量,默认值为"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_1 = var.Threat_analysis_switch_1 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
否
是否开启恶意文件检测SDK。取值:
1:是
0:否
1
sas_sdk
否
恶意文件检测次数。单位:万次。
取值范围:10~9,999,999,999,步长为10。
10
Threat_analysis_switch_1
否
威胁分析与响应开关。取值:
0:否
1:是
1
Threat_analysis_flow
否
威胁分析与响应的日志接入流量。单位:GB/天。
取值范围:100~9,999,999,999,步长为100。
仅当Threat_analysis_switch_1为1时,需要配置该参数。
100
Threat_analysis_sls_storage
否
威胁分析与响应的日志存储容量。单位:GB。
取值范围:0~9,999,999,999,步长为1000。
1000
执行
terraform init
命令,初始化配置。返回如下信息时,表示初始化完成:
执行
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已创建的资源详细信息:
terraform show
登录云安全中心控制台,请检查企业版及相关功能是否已成功开通。
相关文档
关于Terraform产品的更多信息,请参见Terraform产品介绍。