У меня вопрос относительно ресурса, нарушающего политику Azure. Предположим, что в моей подписке у меня есть одна виртуальная машина на западе Великобритании и другая виртуальная машина на юге Великобритании. ЕСЛИ я создаю политику, ограничивающую ВМ только югом Великобритании, что произойдет с ВМ на западе Великобритании? Он перестанет функционировать или будет вынужден переехать на юг Великобритании или будет просто зарегистрирован как несоответствующий? И что будет с новыми запросами на запад Великобритании, будут ли они отклонены?
Что произойдет с существующим ресурсом, если он нарушит политику Azure?
Ответы (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
, если условия не выполняются. Конечно, если вы используете настраиваемые политики, возможно, также могут выполняться другие действия.