mcpField
A
azure-policy

azure-policy

github.com/vinayaklatthe云与 DevOps17977 次安装1 天前更新
代码仓库

关于 azure-policy

面向负责 Azure 治理与安全基线的团队,指导使用 Azure Policy 在订阅和管理组范围内审计、阻止或修复不合规配置。重点包括策略效果选择、分阶段部署和合规监控。

主要功能

  1. 01选择 Audit、Deny 和修复效果
  2. 02使用内置策略与倡议
  3. 03在管理组范围分配策略
  4. 04按审计到拒绝的步骤推广
  5. 05通过修复任务处理现有资源
  6. 06监控合规状态并关联 Defender for Cloud

适用场景

  1. 01分阶段部署组织安全基线
  2. 02在管理组范围实施资源护栏
  3. 03自动补齐诊断设置等关联资源
  4. 04修复存量资源的策略不合规项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vinayaklatthe/microsoft-security-skills --skill azure-policy

安装后在 Claude Code 中输入/azure-policy确认已加载。

详细介绍

Azure Policy

Azure Policy 可强制执行组织标准,并大规模评估合规性,通过审核或阻止不合规的资源配置,并自动修复偏差。它是 Azure 环境的预防性控制平面,也是 Defender for Cloud 法规合规功能背后的引擎。

何时使用

在订阅和管理组中实施预防性和侦测性治理/安全防护措施。使用此技能选择效果、设计计划并安全地推出。

请勿将此技能用于选择 RBAC 角色(azure-role-selector)、Defender 安全状况(defender-for-cloud-hardening)或 Bicep/IaC 模板。

根据目标选择策略效果

目标效果说明
显示不合规资源,但不阻止Audit仅用于报告;默认起点
阻止创建/更新不合规资源Deny预防性;先在 Audit 模式下测试
自动添加必需的标记/属性Modify(或 Append)修改请求
部署缺失的相关资源(例如诊断设置)DeployIfNotExists(DINE)需要托管标识
显示缺失的相关资源AuditIfNotExists(AINE)仅用于报告
跨多个资源执行条件逻辑Initiative将多个策略分组
阻止创建来宾用户/特定 SKUDeny + 参数将允许的 SKU 参数化
强制执行 Defender for Cloud 基准内置 MCSB initiative不要自行编写

**经验法则:**每个新策略都先以 Audit 模式运行 14-30 天。查看合规性。将关键控制切换为 Deny。对于“理应始终存在”的资源(诊断设置、Defender 代理),使用 DeployIfNotExists。切勿一开始就在整个租户范围内使用 Deny。

方法

  1. 有内置计划时优先使用——Microsoft Cloud Security Benchmark (MCSB) 是默认选项。根据合规范围添加法规计划(CIS、ISO 27001、NIST 800-53、PCI DSS、HIPAA)。 验证:在根管理组分配了 MCSB 计划;可在 Defender for Cloud 中查看合规状态。

  2. 仅在没有内置定义时编写自定义定义——使用 ARM JSON 编写自定义策略:policyRule(条件 + 效果)、parameters(可重用输入)、metadata (类别)。每项策略只承担单一用途;通过计划将策略分组。

  3. 计划 = 分组后的策略——将相关策略打包到一起(例如,包含 30 项策略的“企业安全 基线”计划)。为便于管理,应分配计划,而非单独分配策略。

  4. 在管理组范围内设置范围——在管理组中分配,以便在子订阅间继承。谨慎使用排除项,并记录理由。 验证:策略合规性中可查看分配范围;子订阅会继承策略。

  5. 逐步推出:Audit → 查看 → Deny——先以 Audit 模式分配。等待 14-30 天,提取 不合规列表,与工作负载所有者合作进行修复或记录例外情况。然后将分配切换为 Deny。 验证:切换为 Deny 前,不合规数量已降至可接受的基线;已通知工作负载所有者。

  6. 使用修复任务修复现有资源——DeployIfNotExists 和 Modify 策略仅对新资源/已更新资源生效。使用修复任务使 现有资源达到合规要求。策略分配的托管标识负责执行更改。 验证:分配策略后已创建修复任务;成功率 > 95%;已对失败项进行分类处理。

  7. 监控并与 Defender for Cloud 集成——合规状态是日常仪表板。 Defender for Cloud 使用策略提供建议;建议未通过即表示策略未通过。

防护措施

  • 先在审计模式下测试 Deny 策略——范围过大的 Deny 可能会阻止合法部署和流水线。 午夜时首次启用 Deny = 09:00 的生产部署被阻止。
  • 使用参数让策略可在不同环境间复用。 将区域 / SKU / 标记值硬编码 = 每个环境都需要一条策略,必然产生配置偏差。
  • 不要过度排除;每项排除都会削弱防护措施,必须有合理依据。 排除项是一份例外清单——记录原因,并设置到期时间。
  • DeployIfNotExists 需要具备正确角色的托管标识。 如果分配项的标识没有相应的 RBAC 权限,修正操作会悄无声息地失败。
  • 不要编写已有的内置策略。 MCSB / 法规计划由 Microsoft 维护;自定义副本会偏离 Microsoft 指引。
  • 策略 ≠ RBAC。 策略控制资源配置;RBAC 控制谁可以执行操作。两层都不可或缺。

常见反模式

  • “第一天就在整个租户范围内部署 Deny”——首次生产部署就会失败。先使用审计模式。
  • “每个环境一条策略,直接复制粘贴”——参数硬编码,维护工作苦不堪言。参数化 + 每个环境分配一条策略。
  • “跳过 MCSB 计划——我们有自己的”——自有方案会偏离;MCSB 由 Microsoft 维护。
  • “排除不符合合规要求的订阅”——这会掩盖问题。修复问题,或正式接受风险。
  • “不创建修正任务就部署 DeployIfNotExists”——现有资源将永远不合规;只有新资源会应用配置。
  • “不经测试就使用自定义 JSON”——首次分配语法错误的策略 = 不会生效,也没有警告。先在沙盒订阅中测试。

示例提示词

  • Create an Azure Policy initiative to enforce a security baseline at the management group scope.
  • How do I deny non-compliant resources and auto-remediate with DeployIfNotExists?
  • Apply governance guardrails at the management group scope with inheritance.
  • Audit resource configuration before switching policies to Deny.
  • Parameterise an allowed-locations policy for reuse across dev / test / prod.
  • Build a remediation task to bring existing resources into compliance.

Microsoft Learn

评论

支持 Markdown