【问题标题】:Azure policy modify effectAzure 策略修改效果
【发布时间】:2021-10-06 04:14:32
【问题描述】:

我有一个 azure 自定义策略,它会检查所有存储帐户,如果它们作为选定网络没有 VNet 和子网设置,它会根据我输入的参数去修改它们以进行 VNet 集成。我输入的参数是一个子网信息数组,如下

            "allowedNetworks": {
                "type": "array",
                "metadata": {
                    "description": "The list of allowed virtual networks",
                    "displayName": "Allowed Networks"
                },
                "defaultValue": [
                    {
                        "id": "/subscriptions/xxx/resourceGroups/test3/providers/Microsoft.Network/virtualNetworks/rogertest3-vnet/subnets/default",
                        "action": "Allow",
                        "state": "Succeeded"
                    },
                    {
                        "id": "/subscriptions/xxx/resourceGroups/test3/providers/Microsoft.Network/virtualNetworks/rogertest3-vnet/subnets/AzureBastionSubnet",
                        "action": "Allow",
                        "state": "Succeeded"
                    }
                ]
            }

效果如下

"then": {
                "effect": "[parameters('effect')]",
                "details": {
                    "roleDefinitionIds": [
                        "/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
                    ],
                    "conflictEffect": "audit",
                    "operations": [
                        {
                            "operation": "addOrReplace",
                            "field": "Microsoft.Storage/storageAccounts/networkAcls.virtualNetworkRules",
                            "value": "[parameters('allowednetworks')]"
                        },
                        {
                            "operation": "addOrReplace",
                            "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
                            "value": "Deny"
                        }
                    ]
                }
            }

效果很好,但是我对这个修改效果的一些行为感到有点困惑。

  1. 如果我创建了一个新的存储帐户,并且它属于本政策的范围。我注意到它会自动添加此 VNet 集成,即使我在创建时选择“所有网络”

  2. 如果我尝试手动将任何存储帐户更改为所有网络,UI 将很快恢复为 VNet 集成,因此它什么也不做,也不会给出错误消息。使用 powershell 会得到相同的结果。

这和我理解的修改效果有点矛盾,我认为修改效果不是强制性的,它只适用于存储帐户,如果你去补救

【问题讨论】:

  • 这很奇怪。当您使用 Powershell 执行此操作时,您是使用 Powershell 命令还是从 UI 进行检查?我建议你使用私人导航器,它可能与cookie有关

标签: azure azure-policy


【解决方案1】:

实际上这是设计使然,刚刚发现。 修改效果给出了这个想要的状态配置效果,所以当你创建东西的时候,policy会评估它,如果它符合policy,policy就会生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2011-04-28
    • 1970-01-01
    相关资源
    最近更新 更多