Azure策略-阵列中的目标特定条目

wgmfuz8q  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(111)

我需要在Azure中为专用端点启用网络策略(路由表)。我有一个有效的Azure策略(如下所示以供参考),但它针对所有子网。虽然这并不是一个真正的问题(因为该设置只适用于私有端点),但我更喜欢更有针对性,只是为了防止混淆,以防将来出现任何奇怪的错误。
我想做的是只执行修改仅在子网具有特定的名称(例如。这可能吗?我有一点发挥和审查的文档,但我还没有能够实现这一点。
当前的工作(广泛)政策如下:

{
    "mode": "All",
    "policyRule": {
      "if": {
        "field": "Microsoft.Network/virtualNetworks/subnets[*].privateEndpointNetworkPolicies",
        "notIn": [
            "RouteTableEnabled",
            "Enabled"
        ]
      },
      "then": {
        "effect": "modify",
        "details": {
          "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
          ],
          "operations": [
            {
              "operation": "addOrReplace",
              "field": "Microsoft.Network/virtualNetworks/subnets[*].privateEndpointNetworkPolicies",
              "value": "RouteTableEnabled"
            }
          ]
        }
      }
    },
    "parameters": {}
  }

字符串
我已经查看了数组是否有选择器选项(就像你在jmespath中所做的那样),但Azure策略似乎不存在这个选项。我还探索了count作为一个选项,但我不认为这将帮助我不幸的修改效果。

isr3a4wc

isr3a4wc1#

我希望只对具有特定名称(例如,这是可能吗?
以下是更新后的策略,如果尚未将subnet-namePrivate Endpoint NetworkPolicies属性设置为Enabled,则该策略将启用该属性。
在此策略中,如果子网等于subnet-name,并且未在同一子网中启用专用端点网络策略,则该策略将在子网中启用路由表策略。

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "Microsoft.Network/virtualNetworks/subnets[*].name",
          "equals": "snet-plink"
        },
        {
          "field": "Microsoft.Network/virtualNetworks/subnets[*].privateEndpointNetworkPolicies",
          "notIn": [
            "RouteTableEnabled",
            "Enabled"
          ]
        }
      ]
    },
    "then": {
      "effect": "modify",
      "details": {
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],
        "operations": [
          {
            "operation": "addOrReplace",
            "field": "Microsoft.Network/virtualNetworks/subnets[*].privateEndpointNetworkPolicies",
            "value": "RouteTableEnabled"
          }
        ]
      }
    }
  },
  "parameters": {}
}

字符串
将策略分配给所需的范围,并确保在子网中启用专用端点网络策略的策略分配时选择修正任务受管身份
x1c 0d1x的数据
策略是使用修正任务托管身份创建的,如下所示。



分配后,策略将审核子网。如果未在子网中启用专用端点网络策略,则它将使用修正任务启动启用过程。



参考:AZURE POLICY TO ENABLE NETWORK POLICIES FOR PRIVATE ENDPOINTS × Pantelis Apostolidis

nmpmafwu

nmpmafwu2#

从那以后,我有机会花一些时间玩这个,并提出了一个有效的方法。

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/virtualNetworks/subnets"
        },
        {
          "field": "name",
          "equals": "snet-plink"
        },
        {
          "field": "Microsoft.Network/virtualNetworks/subnets/privateEndpointNetworkPolicies",
          "equals": "Disabled"
        }
      ]
    },
    "then": {
      "effect": "modify",
      "details": {
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],
        "operations": [
          {
            "operation": "addOrReplace",
            "field": "Microsoft.Network/virtualNetworks/subnets/privateEndpointNetworkPolicies",
            "value": "RouteTableEnabled"
          }
        ]
      }
    }
  },
  "parameters": {}
}

字符串

相关问题