1

我对违反 Azure Policy 的资源有疑问。假设在我的订阅中,我在英国西部有一台 VM,在英国南部有另一台 VM。如果我制定了将 VM 限制为仅 UK south 的策略,那么 UK West 的 VM 会发生什么情况?它是否变得无法运行或将被迫移至英国南部或仅报告为不合规?此外,对 UK west 的新请求会发生什么情况,这些请求会被拒绝吗?

4

1 回答 1

1

如果您在现有资源存在时分配策略,则默认情况下它们不会发生任何事情,如果您使用的是内置策略。

如果您从门户分配策略,您应该看到以下语句:

默认情况下,该分配只对新创建的资源生效。分配策略后,可以通过修复任务更新现有资源。对于 deployIfNotExists 策略,修复任务将部署指定的模板。对于修改策略,修复任务将编辑现有资源上的标签。

简而言之,英国西部的现有虚拟机应被标记为不合规,并且未来在英国南部以外的部署将被该政策阻止。

您可以在内置的“允许位置”策略中看到这一点:

{
  "properties": {
    "displayName": "Allowed locations",
    "policyType": "BuiltIn",
    "mode": "Indexed",
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources. Use to enforce your geo-compliance requirements. Excludes resource groups, Microsoft.AzureActiveDirectory/b2cDirectories, and resources that use the 'global' region.",
    "metadata": {
      "version": "1.0.0",
      "category": "General"
    },
    "parameters": {
      "listOfAllowedLocations": {
        "type": "Array",
        "metadata": {
          "description": "The list of locations that can be specified when deploying resources.",
          "strongType": "location",
          "displayName": "Allowed locations"
        }
      }
    },
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "location",
            "notIn": "[parameters('listOfAllowedLocations')]"
          },
          {
            "field": "location",
            "notEquals": "global"
          },
          {
            "field": "type",
            "notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
          }
        ]
      },
      "then": {
        "effect": "deny"
      }
    }
  },
  "id": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "e56962a6-4747-49cd-b67b-bf8b01975c4c"
}

Deny如果条件不满足,它只会执行 a 。当然,如果您使用自定义策略,则可能还会执行其他操作。

于 2020-05-05T13:27:41.413 回答