colinweiner111/azure-security-standards
GitHub: colinweiner111/azure-security-standards
Azure 安全标准选择与实施指南,厘清 MCSB、NIST、CIS 在 Defender for Cloud 中的角色差异并提供可直接部署的策略分配模板。
Stars: 0 | Forks: 0
# Azure 安全标准
关于使用 Azure Policy 和 Microsoft Defender for Cloud 选择和实施 Azure 安全标准的指南。
## 太长不看 (TL;DR)
- **MCSB 是唯一驱动安全功能分数、建议和修复的标准** —— 它是 Defender for Cloud 中的安全态势引擎。
- **CIS Azure Foundations 和 NIST 提供合规性可见性(审计/报告),而非修复** —— 它们显示在“法规符合性”边栏选项卡中,不会生成建议或修复。
- **将它们叠加使用,而不是只选其一。** MCSB 负责改善您的安全态势。CIS 和 NIST 负责向审计人员证明合规性。
- **MCSB = 提升安全性。CIS / NIST = 证明合规性。**
## 如何选择:NIST vs CIS
**起源与目的**
- **NIST** —— 政府制定的框架(美国联邦),专为法规遵从而设计。通常为联邦、国防部以及许多 SLED 工作负载所要求。
- **CIS** —— 非营利组织开发的基准,专为实用的安全实施而设计,被广泛采用作为行业最佳实践。
**在 Azure 中的主要区别**
- **NIST** 从合规/监管的角度定义所需的控制措施
- **CIS Azure Foundations** 从最佳实践基线的角度定义推荐的 Azure 配置
**受众**
- **NIST** → 合规官、审计员、政府合同
- **CIS** → 安全团队、企业审计员
**在 Defender for Cloud 中**
- 两者都显示在“法规符合性”边栏选项卡中
- 两者都以审计为核心
- 两者都不像 MCSB 那样直接驱动修复
## 如何理解叠加策略
不要认为只能“选一个” —— 而是要考虑**有目的地叠加使用**。
- 是什么驱动了**安全态势**? → MCSB
- 我的**合规性报告**需要什么? → NIST 或 CIS Azure Foundations
### 1. MCSB —— 安全态势引擎
- 在 Defender for Cloud 中驱动**安全功能分数**
- 为**“建议”边栏选项卡**提供修复指南
- 改善安全态势的首要标准
### 2. NIST 800-53 / 800-171 —— 合规性报告
在政府、SLED 或受监管工作负载有要求时添加。
- 显示在**“法规符合性”边栏选项卡**中
- 将现有控制措施映射 → NIST 框架以进行审计报告
- **不会**生成建议或修复
### 3. CIS Azure Foundations Benchmark —— 合规性报告
在审计员或安全团队要求符合 CIS 时添加。
- 显示在**“法规符合性”边栏选项卡**中
- 将现有控制措施映射 → CIS 要求以进行审计报告
- **不会**生成建议或修复
### 各标准在 Defender for Cloud 中的位置
| 标准 | 主要边栏选项卡 | 驱动修复? |
|----------|-------|:---:|
| MCSB | 建议 | ✅ 是 |
| NIST 800-53 | 法规符合性 | ❌ 否 |
| CIS Azure Foundations | 法规符合性 | ❌ 否 |
## 框架与标准
- **框架:** 安全控制的概念模型(NIST, CIS, MCSB)
- **标准(在 Azure 中):** 实施框架的打包 Azure Policy 计划
## 标准参考
### Microsoft Cloud Security Benchmark (MCSB)
由 Microsoft 维护的 Azure 原生安全基线。
📖 [官方文档](https://learn.microsoft.com/en-us/security/benchmark/azure/overview)
- 专为 Azure 服务构建,持续更新
- 驱动安全功能分数、建议和修复
- 主要显示在**“建议”边栏选项卡**中(在“法规符合性”中也可查看)
- 提供具体、可实施的控制措施:
- “在存储账户上启用专用终结点”
- “在 Key Vault 上禁用公用网络访问”
- “使用托管标识代替机密”
✅ 在所有环境中启用
### NIST (800-53 / 800-171 / CSF)
适用于受监管环境的合规框架。
- 联邦 / 公共部门工作负载必需
- 仅限审计 —— 显示在“法规符合性”边栏选项卡中
- 不生成建议或修复
- 非 Azure 原生
✅ 在法规要求时启用
### CIS Microsoft Azure Foundations Benchmark (v2.x)
由 CIS 发布的针对 Azure 的云特定基准。
- 将 Azure 配置映射到 CIS 要求
- 仅限审计 —— 显示在“法规符合性”边栏选项卡中
- 不生成建议或修复
- 可能会滞后于 Azure 功能更新
✅ 在需要 CIS 合规报告时启用
### CIS Controls v8.1
战略性、云无关的网络安全框架。
- 提供跨所有平台的高层级安全指导
- 不直接在 Azure Policy 中实施
- 不作为标准出现在 Microsoft Defender for Cloud 中
✅ 作为安全成熟度讨论的参考 —— 而非用于 Azure 实施
## 推荐方法
| 客户类型 | 标准 |
|--------------|-----------|
| 标准企业 | MCSB |
| 受监管企业(例如公共部门) | MCSB + NIST |
| 审计驱动 / 安全成熟度高 | MCSB + NIST(如需要)+ CIS Azure(如需要) |
## 什么是 CSPM(云安全态势管理)?
CSPM 不是框架或标准 —— 它是 **Defender for Cloud 内部的引擎**,可根据 MCSB 持续评估您的 Azure 资源,并生成安全功能分数和建议。
- **CSPM 负责评估。** 它扫描资源配置并将它们与 MCSB 控制措施进行比较。
- **MCSB 负责定义控制措施。** 它告诉 CSPM “良好”的状态是什么样的。
- **安全功能分数和建议是输出结果。** CSPM 产生可操作的发现;MCSB 定义了它检查的内容。
可以这样想:
| 组件 | 角色 |
|-----------|------|
| **CSPM** | 引擎(评估、评分、建议) |
| **MCSB** | 规则集(定义要评估的内容) |
| **CIS / NIST** | 报告(映射结果以实现合规) |
Defender for Cloud 提供两个 CSPM 层级:**基础 CSPM**(免费,默认包含)和 **Defender CSPM**(付费,增加攻击路径分析、治理和高级态势功能)。这两个层级都会根据 MCSB 进行评估。
## 为什么 Azure CSPM 会出现在法规符合性中
您可能会注意到在“法规符合性”边栏选项卡中,Azure CSPM 与 CIS 和 NIST 并列显示。这可能会令人困惑 —— 但 CSPM **不是**合规框架。
- **CSPM 是安全态势引擎。** 它根据 MCSB 评估您的资源并生成实际的安全发现(带有修复指南的建议)。
- **CIS 和 NIST 是合规性映射。** 它们不生成发现 —— 它们提取 CSPM 已生成的发现,并将其映射到各自框架的控制措施以进行审计报告。
- **CSPM 之所以出现在法规符合性中,是因为其发现是** CIS 和 NIST 合规视图所依赖的源数据。如果没有 CSPM 根据 MCSB 进行评估,就没有任何可报告的内容。
可以这样理解:
| 您在法规符合性中看到的内容 | 它实际执行的操作 |
|---------------------------------------|----------------------|
| **Azure CSPM (MCSB)** | 生成发现 —— 实际的安全评估 |
| **CIS Azure Foundations** | 将这些发现映射到 CIS 控制措施以进行审计报告 |
| **NIST 800-53** | 将这些发现映射到 NIST 控制措施以进行审计报告 |
## 深入探讨:为什么 MCSB 是起点
### MCSB 是可操作的;NIST 和 CIS 则不是
MCSB 提供 Azure 特定的控制措施。NIST 和 CIS 提供可映射到多种可能实现的抽象要求。
**示例:**
NIST 控制 AC-2:*"限制为仅限授权用户访问"*
在 Azure 中的解释可能是:RBAC、Entra ID、PIM、条件访问或网络限制。
MCSB 会具体告诉您:
- 在存储上启用专用终结点
- 在 Key Vault 上禁用公用网络访问
- 使用托管标识代替机密
NIST 定义了**必须达到的状态**。MCSB 告诉您**如何在 Azure 中做到这一点**。
### NIST 和 CIS 是合规性覆盖层
在 Defender for Cloud 中:
- MCSB 控制措施显示在**“建议”边栏选项卡**中,并带有修复步骤
- NIST/CIS 作为审计视图显示在**“法规符合性”边栏选项卡**中
- Azure 将现有控制措施映射 → NIST/CIS 框架以进行报告
- 不会生成新的建议或修复步骤
### 实践中的“叠加”意味着什么
您**并非**在部署独立的安全架构或重新构建控制措施。
您**是在**启用额外的计划策略,以便在“法规符合性”边栏选项卡中提供合规报告视图。
## CIS Controls 与 CIS Azure Foundations
这是两个不同的事物。只有一个在 Azure 中可用。
| | CIS Azure Foundations | CIS Controls v8.1 |
|---|---|---|
| **范围** | Azure 专有 | 云无关 |
| **在 Defender for Cloud 中** | ✅ 是(法规符合性) | ❌ 否 |
| **映射到 Azure Policy** | ✅ 是 | ❌ 否 |
| **驱动修复** | ❌ 否 | ❌ 否 |
| **目的** | 合规报告(以审计为中心) | 战略参考(未在 Azure 中实施) |
- **CIS Controls v8.1** 是一个战略性、云无关的框架。它不直接在 Azure Policy 或 Defender for Cloud 中实施 —— 它作为高层级安全参考,而非 Azure 中可操作的标准。
- **CIS Azure Foundations** 将 CIS 指南转化为 Azure 特定的配置检查。然而,它主要以审计/合规为中心 —— 它出现在“法规符合性”边栏选项卡中,不驱动建议或修复。
- **MCSB** 是唯一驱动安全功能分数、生成可操作建议并在 Defender for Cloud 中提供修复指南的标准。
**示例:**
CIS Controls 说:*"限制为仅限授权用户访问"* —— 在 Azure 中有太多的解释方案。
CIS Azure Foundations 说:在存储上禁用公用网络访问、使用专用终结点、通过 Entra ID 强制执行 MFA、限制 NSG 规则 —— 直接映射到在“法规符合性”边栏选项卡中可见的 Azure 配置。
这两个版本的 CIS 都不会自行改善您的安全态势 —— MCSB 负责改善。CIS 用于证明您已实施的控制措施符合合规要求。
## 控制措施映射 (CAF)
MCSB 是 Azure 原生的控制基线。CIS 和 NIST 并非在 Azure 中独立实施 —— 它们被**映射到 MCSB 控制措施**。
Microsoft 的 [云采用框架 (CAF)](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/control-mapping/security-control-mapping) 定义了此过程:
1. **从 MCSB 开始** —— 它为每个控制措施提供了内置的 Azure Policy 计划、策略 GUID 和修复指南。
2. **将您的合规性要求映射到 MCSB** —— 无论您需要 CIS、NIST、PCI 还是其他框架,您都需要将每个所需的控制措施与相应的 MCSB 控制措施对齐。
3. **MCSB 负责实施控制措施。框架负责报告合规性。** CIS 和 NIST 出现在“法规符合性”边栏选项卡中,是因为 Azure 将您受 MCSB 驱动的控制措施映射回这些框架 —— 而不是由于 CIS 或 NIST 部署了单独的策略。
这就是为什么 CIS 和 NIST 充当**合规性覆盖层**的原因:它们验证并报告 MCSB 已经在强制执行的控制措施。
### 示例:访问控制
| 层级 | 内容 | 在 Azure 中的作用 |
|-------|-------------|----------------------|
| **NIST AC-2** | “管理信息系统账户” | 定义合规要求(审计/报告) |
| **CIS Azure Foundations 1.x** | “确保为所有特权用户启用了 MFA” | 定义 Azure 特定的配置检查(审计/报告) |
| **MCSB** | 身份管理控制措施(IM-1 至 IM-8) | 实施实际的建议,驱动安全功能分数,提供修复步骤 |
流程始终是:**MCSB 实施 → CIS/NIST 报告合规性。** 这就是为什么启用 CIS 或 NIST 不会改变您的安全态势 —— 它只改变该态势的报告方式。
## 在 Azure 中的实施
### 位置
Microsoft Defender for Cloud → 环境设置 → 安全标准
### 各标准的功能
| 功能 | MCSB | NIST / CIS Azure |
|-----------|------|-------------------|
| 分配 Azure Policy 计划 | ✅ | ✅ |
| 生成建议 | ✅ | ❌ |
| 驱动安全功能分数 | ✅ | ❌ |
| 提供修复步骤 | ✅ | ❌ |
| “建议”边栏选项卡 | ✅ (主要) | ❌ |
| “法规符合性”边栏选项卡 | ✅ (也可见) | ✅ |
### 最佳实践
- 在**管理组级别**进行分配
- 从**模式**开始 —— 在验证对现有部署的影响后,选择性地转为**拒绝模式**(在受支持的情况下)
- 在有明确的合规性报告要求时添加 NIST/CIS
## 常见误区
❌ 将 NIST 或 CIS 视为安全基线 —— 它们是合规报告
❌ 期望 CIS 能提供比 MCSB 更强的安全性 —— 它不驱动修复
❌ 在不了解 MCSB 才是驱动安全功能分数的核心的情况下启用标准
❌ 混淆 CIS Controls v8.1 与 CIS Azure Foundations Benchmark
## 面向客户的定位
## 实施示例
### 查找计划定义 ID
计划定义 ID(GUID)与特定版本绑定,并且**可能会随着时间的推移而改变**,因为 Microsoft 会发布新版本或停用旧版本。CIS 基准版本(例如 v2.0.0)会定期被更新的版本(例如 v2.1.0, v3.0.0)取代。
**在部署前务必验证当前的定义 ID:**
```
# MCSB — 查找当前 initiative definition ID
az policy set-definition list \
--query "[?contains(displayName, 'Microsoft Cloud Security Benchmark')].{name:name, displayName:displayName}" \
-o table
# CIS Azure Foundations — 查找可用版本及其 ID
az policy set-definition list \
--query "[?contains(displayName, 'CIS Microsoft Azure Foundations Benchmark')].{name:name, displayName:displayName}" \
-o table
```
### Bicep:在管理组范围分配 MCSB
在审计模式下于管理组分配 Microsoft Cloud Security Benchmark 计划。这将驱动安全功能分数并填充“建议”边栏选项卡。
```
targetScope = 'managementGroup'
@description('Display name for the MCSB policy assignment')
param assignmentDisplayName string = 'Microsoft Cloud Security Benchmark'
@description('Enforcement mode: Default (enabled) or DoNotEnforce (audit-only)')
param enforcementMode string = 'Default'
var mcsbDefinitionId = tenantResourceId(
'Microsoft.Authorization/policySetDefinitions',
'1f3afdf9-d0c9-4c3d-847f-89da613e70a8'
)
resource mcsbAssignment 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
name: 'mcsb-assignment'
properties: {
displayName: assignmentDisplayName
description: 'Assigns MCSB to drive Secure Score and Recommendations in Defender for Cloud.'
policyDefinitionId: mcsbDefinitionId
enforcementMode: enforcementMode
}
}
```
### Bicep:在管理组范围分配 CIS Azure Foundations Benchmark
使用 `DoNotEnforce` 在审计模式下分配 CIS Microsoft Azure Foundations Benchmark v2.0.0。这将使 CIS 在“法规符合性”边栏选项卡中作为合规报告覆盖层存在,而不会阻止任何部署。
```
targetScope = 'managementGroup'
@description('Display name for the CIS policy assignment')
param assignmentDisplayName string = 'CIS Microsoft Azure Foundations Benchmark v2.0.0'
var cisDefinitionId = tenantResourceId(
'Microsoft.Authorization/policySetDefinitions',
'06f19060-9e68-4070-92ca-f15cc126059e'
)
resource cisAssignment 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
name: 'cis-azure-foundations-assignment'
properties: {
displayName: assignmentDisplayName
description: 'Assigns CIS Azure Foundations for compliance reporting in the Regulatory Compliance blade.'
policyDefinitionId: cisDefinitionId
enforcementMode: 'DoNotEnforce'
}
}
```
### Azure CLI:在管理组范围分配 MCSB
```
az policy assignment create \
--name "mcsb-assignment" \
--display-name "Microsoft Cloud Security Benchmark" \
--policy-set-definition "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" \
--scope "/providers/Microsoft.Management/managementGroups/" \
--enforcement-mode Default
```
### Azure CLI:在管理组范围分配 CIS Azure Foundations
```
az policy assignment create \
--name "cis-azure-foundations-assignment" \
--display-name "CIS Microsoft Azure Foundations Benchmark v2.0.0" \
--policy-set-definition "06f19060-9e68-4070-92ca-f15cc126059e" \
--scope "/providers/Microsoft.Management/managementGroups/" \
--enforcement-mode DoNotEnforce
```
### JSON:ARM 模板 —— MCSB 分配
```
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Authorization/policyAssignments",
"apiVersion": "2024-04-01",
"name": "mcsb-assignment",
"properties": {
"displayName": "Microsoft Cloud Security Benchmark",
"description": "Assigns MCSB to drive Secure Score and Recommendations in Defender for Cloud.",
"policyDefinitionId": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8",
"enforcementMode": "Default"
}
}
]
}
```
### JSON:ARM 模板 —— CIS Azure Foundations 分配
```
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Authorization/policyAssignments",
"apiVersion": "2024-04-01",
"name": "cis-azure-foundations-assignment",
"properties": {
"displayName": "CIS Microsoft Azure Foundations Benchmark v2.0.0",
"description": "Assigns CIS Azure Foundations for compliance reporting in the Regulatory Compliance blade.",
"policyDefinitionId": "/providers/Microsoft.Authorization/policySetDefinitions/06f19060-9e68-4070-92ca-f15cc126059e",
"enforcementMode": "DoNotEnforce"
}
}
]
}
```
## 未来增强功能
- 决策树图表
- MCSB ↔ NIST ↔ CIS 控制措施映射
- 登陆区域集成指南
## 一句话总结 (TL;DR)
**MCSB = 保障安全
NIST = 证明合规
CIS Azure = 报告状态
CIS Controls = 提供参考**
标签:Azure Policy, CIS Azure Foundations, CSP, CSPM, MCSB, Microsoft Azure, Microsoft Defender for Cloud, NIST, Secure Score, TinkerPop, 云安全治理, 云架构安全, 安全合规, 安全基线, 安全态势管理, 安全指南, 安全标准, 安全评分, 微软云安全基准, 教学环境, 策略实施, 网络代理, 防御 Remediation