修改现有Azure策略,为已部署资源新增功能配置白名单
解决Azure着陆区资源功能白名单更新问题
要解决早期部署的Key Vault、VM等资源无法使用微软新增功能的问题,核心是更新Azure Policy中的功能白名单规则,以下是具体实现步骤和代码示例:
一、更新Key Vault全量功能白名单策略
1. 导出现有Key Vault策略
先用Azure CLI导出当前的Key Vault策略定义,方便后续修改:
az policy definition show --name <你的策略名称> --subscription <订阅ID> --output json > current-keyvault-policy.json
2. 修改策略规则,纳入全量新功能
打开导出的JSON文件,找到policyRule节点,将允许的操作更新为覆盖Key Vault全量功能(也可指定具体新增功能):
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.KeyVault/vaults" } ] }, "then": { "effect": "Allow", "details": { "actions": [ "Microsoft.KeyVault/vaults/*" ] } } }
如果需要精确控制新增功能,可替换通配符为具体操作,比如:
"actions": [ "Microsoft.KeyVault/vaults/keys/rotate/action", "Microsoft.KeyVault/vaults/secrets/setSecret/action", // 按需添加其他新增功能操作 ]
3. 重新部署修改后的策略
使用CLI命令更新策略定义:
az policy definition update --name <你的策略名称> --subscription <订阅ID> --rules current-keyvault-policy.json
二、VM相关功能白名单更新
针对VM的新增功能,遵循同样的流程操作:
- 导出现有VM策略:
az policy definition show --name <VM策略名称> --subscription <订阅ID> --output json > current-vm-policy.json
- 编辑策略规则,添加VM新增功能操作,例如允许新的虚拟机扩展部署:
{ "if": { "field": "type", "equals": "Microsoft.Compute/virtualMachines" }, "then": { "effect": "Allow", "details": { "actions": [ "Microsoft.Compute/virtualMachines/extensions/write", // 添加其他VM新增功能操作 ] } } }
- 更新VM策略:
az policy definition update --name <VM策略名称> --subscription <订阅ID> --rules current-vm-policy.json
三、验证策略生效
更新完成后,可通过以下命令确认策略状态:
az policy assignment list --subscription <订阅ID> --query "[?contains(policyDefinitionId, '<策略名称>')]"
也可登录Azure门户,查看对应资源的合规性状态,确认新增功能已可正常使用。
内容的提问来源于stack exchange,提问作者Kanna
相关产品推荐
相关产品推荐

