Что произойдет с существующим ресурсом, если он нарушит политику Azure?

У меня вопрос относительно ресурса, нарушающего политику Azure. Предположим, что в моей подписке у меня есть одна виртуальная машина на западе Великобритании и другая виртуальная машина на юге Великобритании. ЕСЛИ я создаю политику, ограничивающую ВМ только югом Великобритании, что произойдет с ВМ на западе Великобритании? Он перестанет функционировать или будет вынужден переехать на юг Великобритании или будет просто зарегистрирован как несоответствующий? И что будет с новыми запросами на запад Великобритании, будут ли они отклонены?


person Aravind Babu Konda    schedule 05.05.2020    source источник
comment
Интересно, что это тоже вопрос к экзамену по основам AZ-900, и на некоторых тестовых онлайн-страницах ответ неверен. Как пользователь, я был бы очень зол, если бы Azure уничтожила или изменила ресурсы в качестве побочного эффекта.   -  person kap    schedule 23.06.2020


Ответы (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, если условия не выполняются. Конечно, если вы используете настраиваемые политики, возможно, также могут выполняться другие действия.

person Setanta    schedule 05.05.2020
comment
Можно ли реализовать, не затрагивая старые ресурсы? Я все еще хочу продолжить развертывание старых ресурсов. (Мой сценарий - запретить людям создавать новые виртуальные машины в регионе, а также дать людям достаточно времени, чтобы перенести свои старые виртуальные машины в новый регион) - person Sriram; 26.06.2020