你当前正在访问 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"
        }
        // ...
      ]
    }
  ]
}

后续步骤