你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文解释了如何读取和编写 Azure 机器配置用于 CIS Linux 基准测试和 Azure 安全基线 (ASB) 的基线参数。
它介绍了 “全部应用” 的工作原理、设置 排除 的表达方式,并为 CIS 基准(Linux)和 Azure 安全基线(Windows 和 Linux)提供简洁的 JSON 示例。
架构概览
- 标准(“CIS”或“Microsoft”)标识基线源。
- baselineSettings[]— 有效负载中包含的一个或多个基线。
- 名称 - 基线的名称(例如 CIS Oracle Linux 8、适用于 Windows 的 Azure 安全基线)。
- version - 基线版本字符串。
- settings[]— 可选规则项列表。 如果为空([]),则所有规则都适用。
解释“settings”数组
- settings: []— 为指定的基线/OS 应用 所有 规则(“全部应用”)。
- settings: [{ … }]— 仅应用指定的 规则或值;排除所有其他规则。
- 省略基线块:完全排除该操作系统或发行版(0 条规则适用)。
重要
“应用所有默认设置”是通过在发行版基准测试块中包含一个空的设置数组来表示的。 排除是通过省略整个基线块来实现的。
CIS 基准(Linux)
CIS 基准是按分发/版本定义的。 单个 JSON 文件可能包含多个发行版块(例如 AlmaLinux、Oracle Linux、RHEL)。
读取 CIS 基准设置项目
设置:[] → 应用 所有 该发行版/版本的默认 CIS 规则。 此方法将有效负载保持在最低水平。
设置:[{ ... }] →仅应用列出的规则;从评估中省略所有其他规则。
缺少发行版块 → 已排除(未应用任何规则)。
Example
{
"standard": "CIS",
"baselineSettings": [
{
"name": "CIS Oracle Linux 8",
"version": "3.0.0",
"settings": [
{
"ruleId": "cis-ssh-5.2.1",
"name": "Ensure SSH Protocol is set to 2",
"value": "2"
},
{
"ruleId": "cis-audit-4.1",
"name": "Ensure auditing for processes that start prior to auditd",
"value": "1"
}
// ....
]
},
{
"name": "CIS AlmaLinux 8",
"version": "3.0.0",
"settings": [] // apply all settings as default
}
]
}
在本示例中:
Oracle Linux 8: 仅评估两个规则。
AlmaLinux 8: 所有规则都适用。
其他发行版: 未列出,因此已排除。
Azure 安全基线 (ASB)
Azure 安全基线(ASB)是针对 Windows 和 Linux 单独发布的,遵循类似的架构结构。
读取 Windows ASB 设置工件
ASB for Windows 允许使用以下模式对每个 Windows Server 年份和角色的规则值进行复杂的范围界定:
WindowsServer\<Year>\<Server-Role>:<Value>
通配符 (*) 可用于对所有角色或版本应用设置。
此格式支持在设置值中将整数和字符串作为有效输入。
例如:
WindowsServer\2025\DomainController:1;WindowsServer\2025\MemberServer:1;WindowsServer\2022\*:1
Example
{
"standard": "Microsoft",
"baselineSettings": [
{
"name": "Azure Security Baseline for Windows",
"version": "1.0.0",
"settings": [
{
"ruleId": "ab12cd34-5678-90ef-gh12-3456789ijklm",
"name": "Ensure Windows Firewall is enabled for all profiles",
"value": "WindowsServer\\2025\\*:1"
}
// .....
]
}
]
}
读取 Linux ASB 设置工件
ASB for Linux 遵循相同的结构,但省略特定于 Windows 的范围。
规则根据每个控件的预期值来定义。
Example
{
"standard": "Microsoft",
"baselineSettings": [
{
"name": "Azure Security Baseline for Linux",
"version": "1.0.0",
"settings": [
{
"ruleId": "35868e8c-97eb-4981-ab79-99b25101cc86",
"name": "Ensure that the SSH protocol is configured;DesiredObjectValue",
"value": "1"
}
// ...
]
}
]
}