是否可在创建被豁免资源的同时创建Azure Policy豁免?
是否可同时创建不合规Azure资源及其策略豁免?
可以,你完全可以在单次操作中创建不合规资源及其对应的Azure Policy分配豁免,无需执行禁用策略强制、创建资源、添加豁免、重新启用强制这一系列步骤。该功能目前已正式可用(不在预览或私有预览阶段)。
实现方式
最便捷的方式是使用基础设施即代码(IaC)工具如Bicep或ARM模板,或者将Azure CLI/PowerShell命令组合成单个脚本。以下是实用示例:
Bicep(推荐)
此示例部署一个启用了公共访问的存储账户(违反常见策略),并立即为其创建豁免:
// 部署不合规存储账户 resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = { name: 'noncompliantstoragedemo' location: resourceGroup().location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { allowBlobPublicAccess: true // 违反禁止公共Blob访问的策略 } } // 为存储账户创建策略豁免 resource policyExemption 'Microsoft.Authorization/policyExemptions@2022-07-01' = { name: 'storage-account-waiver' scope: storageAccount properties: { policyAssignmentId: '/subscriptions/{你的订阅ID}/providers/Microsoft.Authorization/policyAssignments/{策略分配名称}' exemptionCategory: 'Waiver' // 若已实施风险控制措施,可使用'Mitigated' description: '为遗留存储账户需求批准的豁免' } }
Azure CLI脚本
将以下命令保存为.sh文件或依次执行,即可完成相同操作:
# 创建不合规存储账户 az storage account create --name noncompliantstoragedemo --resource-group 你的资源组名称 --location eastus --sku Standard_LRS --allow-blob-public-access true # 添加豁免以绕过策略阻止 az policy exemption create --name storage-account-waiver \ --scope "/subscriptions/{你的订阅ID}/resourceGroups/你的资源组名称/providers/Microsoft.Storage/storageAccounts/noncompliantstoragedemo" \ --policy-assignment "/subscriptions/{你的订阅ID}/providers/Microsoft.Authorization/policyAssignments/{策略分配名称}" \ --exemption-category Waiver \ --description "已批准的遗留存储豁免"
关键注意事项
- 权限要求: 你需要拥有
Microsoft.Authorization/policyExemptions/write权限,以及创建目标资源的权限。 - 豁免类别: 对于故意不合规的资源使用
Waiver,若已实施替代控制措施降低风险则使用Mitigated。 - 无强制停机: 此方法保持策略对所有其他资源的强制生效,你无需在任何时候禁用策略分配的强制设置。
内容的提问来源于stack exchange,提问作者STW
相关产品推荐
相关产品推荐

