Azure CLI 策略定义错误:“在‘PolicyRuleDefinition’类型的对象上找不到成员‘模式’”

问题描述 投票:0回答:1

我尝试使用 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"
    }
  }
}

截图:

enter image description here

我还尝试以管理员身份运行 CLI 并将订阅添加到我的租户.. 任何有关可能导致此问题的原因的见解或指导将不胜感激!

json azure command-line-interface azure-cli azure-policy
1个回答
0
投票

查看文档,您的json文件应该只包含策略规则:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Network/publicIPAddresses"
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.