我尝试使用 Azure CLI 在 Azure 中创建自定义策略,但我不断遇到与解析策略 JSON 文件相关的错误。详情如下:
命令:
az policy definition create --name "deny-public-ip" --display-name "Deny Public IP" --description "Deny creation of public IP addresses" --rules "policy-rules.json" --mode "All"
错误信息:
(InvalidPolicyRule) Failed to parse policy rule: 'Could not find member 'mode' on object of type 'PolicyRuleDefinition'. Path 'mode'.'
Code: InvalidPolicyRule
Message: Failed to parse policy rule: 'Could not find member 'mode' on object of type 'PolicyRuleDefinition'. Path 'mode'.'.
检查 JSON 文件:我多次验证 JSON 内容,以确保它遵循 Azure 的策略结构。 编码:确认文件为 UTF-8 格式。 编辑和重新保存:在 Azure Cloud Shell 中使用 nano 编辑文件并重新保存。 JSON 内容: 这是我的policy-rules.json 文件的内容:
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Network/publicIPAddresses"
}
]
},
"then": {
"effect": "deny"
}
}
}
截图:
我还尝试以管理员身份运行 CLI 并将订阅添加到我的租户.. 任何有关可能导致此问题的原因的见解或指导将不胜感激!
查看文档,您的json文件应该只包含策略规则:
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Network/publicIPAddresses"
}
]
},
"then": {
"effect": "deny"
}
}