example/03-complex-enterprise/foundations/modules/governance/main.tf (60 lines of code) (raw):
######################## 步骤3.1 [配置预防性管控规则]##################
######################## 步骤3.2 [配置发现性管控规则]##################
# 开通 SLS 服务
data "alicloud_log_service" "open" {
enable = "On"
}
# 升级 config 企业版
# resource "alicloud_config_configuration_recorder" "cloud-config" {
# enterprise_edition = true
# }
resource "alicloud_config_rule" "ecs-instances-in-vpc" {
rule_name = "ecs-instances-in-vpc"
source_identifier = "ecs-instances-in-vpc"
source_owner = "ALIYUN"
scope_compliance_resource_types = ["ACS::ECS::Instance"]
description = "您账号下所有ECS实例已关联到VPC;若您配置阈值,则关联的VpcId需存在您列出的阈值中,视为“合规”。"
input_parameters = {
vpcIds = ""
}
risk_level = 1
source_detail_message_type = "ConfigurationItemChangeNotification"
multi_account = true
}
resource "alicloud_config_rule" "sg-risky-ports-check" {
rule_name = "sg-risky-ports-check"
source_identifier = "sg-risky-ports-check"
source_owner = "ALIYUN"
scope_compliance_resource_types = ["ACS::ECS::SecurityGroup"]
description = "检测安全组是否开启风险端口,不开启则视为“合规”。"
input_parameters = {
"ports": "22,3389,80"
}
risk_level = 1
source_detail_message_type = "ConfigurationItemChangeNotification"
multi_account = true
}
resource "alicloud_config_rule" "sg-public-access-check" {
rule_name = "sg-public-access-check"
source_identifier = "sg-public-access-check"
source_owner = "ALIYUN"
scope_compliance_resource_types = ["ACS::ECS::SecurityGroup"]
description = "账号下ECS安全组配置不为“0.0.0.0/0”,视为“合规”。"
input_parameters = {}
risk_level = 1
source_detail_message_type = "ConfigurationItemChangeNotification"
multi_account = true
}
resource "alicloud_config_rule" "ram-user-mfa-check" {
rule_name = "ram-user-mfa-check"
source_identifier = "ram-user-mfa-check"
source_owner = "ALIYUN"
scope_compliance_resource_types = ["ACS::RAM::User"]
description = "检测RAM用户是否开通MFA二次验证登录,如开通则视为“合规”。"
input_parameters = {}
risk_level = 1
source_detail_message_type = "ConfigurationItemChangeNotification"
multi_account = true
}
######################## 步骤3.3 [配置操作审计]##################
# 创建 OSS Bucket 用于存放 ActionTrail 的日志
resource "alicloud_oss_bucket" "landingzone-enterprise-audit-logs" {
bucket = var.bucket_audit_logs
acl = "private"
}
# 创建 MNS Topic接收日志投递事件的通知
resource "alicloud_mns_topic" "enterprise-topic" {
name = var.mns.topic_name
maximum_message_size = var.mns.message_size
logging_enabled = var.mns.logging_enable
}
# 创建 ActionTrail 日志跟踪
# resource "alicloud_actiontrail_trail" "enterprise-audit-logs" {
# trail_name = var.trail_audit_logs
# event_rw = "All"
# oss_bucket_name = alicloud_oss_bucket.landingzone-enterprise-audit-logs.bucket
# mns_topic_arn = "acs:mns:cn-hangzhou:${var.mns.topic_name}:/topics/${var.master_id}"
# role_name = "aliyunserviceroleforactiontrail"
# }