最后审核时间:2026年5月
使用原生 Terraform 构建 SC-200 考试中的 AWS 服务——每次构建一个代码块,并紧扣考试领域。相同的代码可在 OpenTofu 上运行。
在本实验结束时,你将使用纯 Terraform 预配 SC-200 SOC 参考基础架构——一个作为数据平面的 Log Analytics 工作区,Microsoft Sentinel 将被载入该工作区,一个在示例 KQL 模式下触发事件的计划分析规则,以及一个每次创建事件时都会运行的自动化规则。这是所有 SC-200 狩猎 + 响应工作流运行的基础。
将代码片段放入单个 main.tf 文件中,运行 terraform init,然后逐步运行 terraform apply。
>= 1.5 或 OpenTofu >= 1.6。az login)。Sentinel 的定价是主要的成本考量:
在实验数据量下每月约 0 美元。Sentinel 在规模化时会变得昂贵——为真实组织载入一个多服务器的 CloudTrail 等效服务(Defender XDR 连接器、M365 连接器)很容易达到每月 1 万美元的费用。
标准的 Azure 开场配置。
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
}
}
provider "azurerm" {
features {}
}
locals {
tags = {
Project = "certlabpro-sc-200"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-sc-200-rg"
location = "eastus"
tags = local.tags
}Microsoft Sentinel 是一个在 Log Analytics 工作区之上的层——它没有自己的数据平面。SC-200 的“管理 Microsoft Sentinel 环境”领域强调了这种依赖性:每个 Sentinel 功能都从工作区读取/写入,每个数据连接器都将数据发送到其中,每个分析规则都针对它运行 KQL。
我们以 PerGB2018 SKU 预配工作区,并使用 azurerm_sentinel_log_analytics_workspace_onboarding 资源附加 Sentinel。在此之后,你将通过门户连接数据源(Azure Activity、Microsoft Entra ID 登录、Defender XDR 连接器)——它们覆盖面广,通过 GUI 比通过 Terraform 更容易操作。
resource "azurerm_log_analytics_workspace" "main" {
name = "log-sc200"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}
resource "azurerm_sentinel_log_analytics_workspace_onboarding" "main" {
workspace_id = azurerm_log_analytics_workspace.main.id
}分析规则是 Sentinel 将原始日志事件转化为事件的方式。SC-200 测试规则类型识别:计划规则(基于 KQL,最常见)、Microsoft 事件(转发 Defender XDR 警报)、异常(基于机器学习)、威胁情报(威胁情报匹配)。
我们创建一个带存根 KQL 查询的计划规则(每 5 分钟运行一次,回溯 5 分钟——SC-200 的近实时模式)。这里的查询是一个占位符(SecurityEvent | take 1);在生产环境中,KQL 是规则的实际逻辑——用于检测不可能的旅行登录、密码喷射模式、异常权限提升等。
tactics 字段将规则映射到 MITRE ATT&CK 框架——这是 Defender XDR 集成以及按策略进行枢转的狩猎工作流所必需的。
resource "azurerm_sentinel_alert_rule_scheduled" "stub" {
name = "certlabpro-sc-200-stub-rule"
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
display_name = "Stub rule — lab demonstration"
description = "Sample scheduled analytic rule for the SC-200 lab. Replace KQL with a real hunting pattern."
severity = "Medium"
enabled = true
query = "SecurityEvent | take 1"
query_frequency = "PT5M" # run every 5 minutes
query_period = "PT5M" # look back 5 minutes
trigger_operator = "GreaterThan"
trigger_threshold = 0
tactics = ["InitialAccess"]
techniques = ["T1078"] # Valid Accounts (MITRE ATT&CK)
incident {
create_incident_enabled = true
grouping {
enabled = true
}
}
depends_on = [azurerm_sentinel_log_analytics_workspace_onboarding.main]
}自动化规则是 SC-200 中“配置 Microsoft Sentinel 环境以进行事件管理”的基本要素——它们在事件创建、更新或关闭时触发,并运行一系列操作:将事件分配给用户、更改其严重性、添加标签或调用 Logic App 剧本。
我们创建一个规则,每次创建任何事件时都会运行。示例操作只是将严重性更改为“高”并为事件添加标签——在生产环境中,你将在此处调用一个 Logic App 剧本,该剧本可以发布到 Teams、创建 Jira 票证、用威胁情报丰富事件或触发修复运行手册。SC-200 将这种触发式自动化模式作为标准的 L1 SOC 模式进行测试。
resource "azurerm_sentinel_automation_rule" "tag_and_escalate" {
name = "0e84e57b-8b8a-4c8b-a0a8-1d3f3e6f9a01" # GUID required
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
display_name = "Tag-and-escalate every new incident"
order = 1
enabled = true
triggers_on = "Incidents"
triggers_when = "Created"
action_incident {
order = 1
severity = "High"
}
action_incident {
order = 2
labels = ["lab-auto-tagged"]
}
depends_on = [azurerm_sentinel_log_analytics_workspace_onboarding.main]
}terraform destroy 会销毁所有内容。Sentinel 载入会从工作区中分离;工作区会保留,直到单独销毁(Terraform 可以正确处理这两者)。分析规则执行会立即停止。Logic App 剧本(未在此实验中预配)如果你添加了它们,则需要单独销毁。
SC-200 涵盖了更多此实验无法容纳的安全运营方面——Microsoft Defender for Endpoint(终端 EDR)、Defender for Identity(本地 AD 威胁)、Defender for Office 365(邮件流保护)、Defender for Cloud Apps (CASB)、完整的 Defender XDR 统一门户、深度 KQL 狩猎、Microsoft Sentinel 数据连接器(Azure 活动、M365、AWS CloudTrail、GCP 审计、第三方连接器)、用于仪表板的 Sentinel 工作簿、威胁情报指示器、监视列表、用户和实体行为分析 (UEBA)、用于高级狩猎的笔记本,以及用于响应编排的 Logic App 剧本。
我们专注于工作区 + Sentinel + 计划规则 + 自动化规则,因为它们是每个 SC-200 模式构建的基础。数据连接器将数据发送到工作区;分析规则查询数据;自动化规则响应事件;剧本 (Logic Apps) 扩展自动化规则。打好基础;然后根据数据源逐层添加。
对于上述方面,请参阅此认证页面中的浏览、手册和 Editorial 部分。