首页 > 解决方案 > Key Vault ipRules 属性作为参数问题

问题描述

我正在尝试使用 ARM 模板为 Azure Key Vault 添加防火墙规则。如果在模板中定义了与多个 IP 结合的ipRules属性(而不是作为参数) ,它将按预期工作。

但是,如果我尝试将其定义为获取“请求中发现错误的 JSON 内容”的参数。

模板中定义的属性(“apiVersion”:“2019-09-01”):

    "kv-ipRules": {
       "type": "array",
       "metadata": {
            "description": "The address space (in CIDR notation) to use for the Azure Key Vault to be deployed as Firewall rules."
       }
    }

"networkAcls": {
                "defaultAction": "Deny",
                "bypass": "AzureServices",
                "virtualNetworkRules": [
                {
                    "id": "[concat(parameters('kv-virtualNetworks'), '/subnets/','kv-subnet')]",
                    "ignoreMissingVnetServiceEndpoint": false
                }
                ],
                "ipRules": "[parameters('kv-ipRules')]"
            }

参数中定义的属性:

  "kv-ipRules": {
    "value": [
      "xx.xx.xx.xxx",
      "yy.yy.yy.yyy"
  ]
}

标签: azureazure-keyvaultarm-template

解决方案


鉴于文档(https://docs.microsoft.com/en-us/azure/templates/Microsoft.KeyVault/vaults?tabs=json#IPRule),我会使用:

"kv-ipRules": {
    "value": [
    {
      "value": "xx.xx.xx.xxx"
    },
    {
      "value": "yy.yy.yy.yyy"
    }
  ]
}

推荐阅读