【问题标题】:Azure Policy - Deny New Network interfaces in vnets that doesn't have an specific tagAzure Policy - 拒绝 vnet 中没有特定标记的新网络接口
【发布时间】:2021-07-27 21:05:55
【问题描述】:

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

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

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

谢谢 抢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 确保它可能会被删除您之前在所选资源组下创建的没有指定标签的资源
    • 谢谢拉胡尔。这里的问题是,当 vnic 被分配给未经授权的子网时,我想拒绝创建虚拟接口(我在 vnet 中有标签,不在 vnic 中)......我已经创建了一个策略子网作为参数,并将使用 Set-AzPolicyAssignment 更新策略分配参数中允许的子网列表
    【解决方案2】:

    能够用这个来完成它:

    "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 中填充参数以更新参数。

    【讨论】:

      【解决方案3】:

      我创建了一个以子网作为参数的策略,并将使用 Set-AzPolicyAssignment 更新策略分配参数中允许的子网列表 - TheRob

      【讨论】:

        猜你喜欢
        • 2023-01-13
        • 2019-06-29
        • 2021-05-25
        • 2019-12-18
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        相关资源
        最近更新 更多