Azure 策略 - 拒绝 vnet 中没有特定标记的新网络接口

时间:2021-07-27 21:05:55

标签: azure azure-virtual-network azure-policy

当 vnic 未连接到特定 vnet\subnets(允许的 vnet 具有特定标签)时,我很难创建一个策略来拒绝创建网络接口

看起来我可以根据网络接口字段限制创建。在这种情况下,我想到的唯一想法是配置一个参数,其中包含允许的子网 ID 列表,并根据此参数拒绝。在这种情况下,我需要构建一个单独的机制来更新此策略定义(可能是一个 powershell 脚本)。

只是想问问这是否是完成它的好方法并征求建议,

谢谢 罗布

2 个答案:

答案 0 :(得分:0)

有一种解决方法,即 azure 中的内置策略“需要在资源上添加标签”意味着在所选资源组下,当您创建任何没有任何标签的资源时,它将失败。在您的资源组中分配此策略。

enter image description here

我将标签命名为“Rahul”,没有 Rahul 标签我将无法在资源组下创建任何资源

enter image description here

在这里我复制并发现没有任何指定的标签我无法创建任何资源。

enter image description here

答案 1 :(得分:0)

能够使用它完成它:

"policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/networkInterfaces"
        },
        {
          "count": {
            "field": "Microsoft.Network/networkInterfaces/ipconfigurations[*]",
            "where": {
              "value": "[substring(current('Microsoft.Network/networkInterfaces/ipconfigurations[*].subnet.id'),0,lastIndexOf(current('Microsoft.Network/networkInterfaces/ipconfigurations[*].subnet.id'),'/'))]",
              "notIn": "[parameters('subnetId')]"
            }
          },
          "greater": 0
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },

我将使用 Set-AzPolicyAssignment 将参数与我的 vnet 结合起来以更新参数。