Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция исключений из Политики Azure используется для исключения иерархии ресурсов или отдельного ресурса из оценки инициатив или определений. Ресурсы, освобожденные от учёта, учитываются при определении общего соответствия, но не могут оцениваться или получить временное освобождение. Дополнительные сведения см. в разделе Применимость в Azure Policy. Исключения из политики Azure также применимы к следующим режимам диспетчера ресурсов: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
, и Microsoft.Network.Data
.
Для создания исключения политики используется нотация объектов JavaScript (JSON). Исключение из политики содержит следующие элементы:
- отображаемое имя
- описание
- metadata
- Назначение политики
- определения политик в рамках инициативы
- Категория исключения
- expiration
- селекторы ресурсов
- Проверка области назначения
Исключение политики создается как дочерний объект в иерархии ресурсов или для отдельного ресурса, для которого предоставлено исключение. Исключения невозможно создать на уровне компонента режима поставщика ресурсов. Если родительский ресурс, к которому применяется исключение, удаляется, то исключение также удаляется.
Например, в следующем JSON показано исключение из политики в категории waiver для ресурса в рамках назначения инициативы с именем resourceShouldBeCompliantInit
. Ресурс освобожден только от двух определений политики в инициативе: customOrgPolicy
от настраиваемого определения политики ( policyDefinitionReferenceId
: requiredTags
) и от встроенного определения политики Разрешенные расположения ( policyDefinitionReferenceId
: allowedLocations
).
{
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
"apiVersion": "2020-07-01-preview",
"name": "resourceIsNotApplicable",
"type": "Microsoft.Authorization/policyExemptions",
"properties": {
"displayName": "This resource is scheduled for deletion",
"description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
"metadata": {
"requestedBy": "Storage team",
"approvedBy": "IA",
"approvedOn": "2020-07-26T08:02:32.0000000Z",
"ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
},
"policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
"policyDefinitionReferenceId": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Отображаемое имя и описание
Вы используете displayName
и description
, чтобы определить исключение политики и предоставить контекст для его использования с определенным ресурсом.
displayName
имеет максимальную длину 128 символов и максимальную длину description
символов.
Метаданные
Свойство metadata
позволяет создавать любые дочерние свойства, необходимые для хранения соответствующей информации. В примере свойства requestedBy
, approvedBy
, approvedOn
и ticketRef
содержат значения клиентов для предоставления сведений о том, кто запрашивал исключение, кто одобрил его и когда, а также внутренний трекинговый тикет для запроса. Эти metadata
свойства являются примерами, но они не являются обязательными и metadata
не ограничиваются этими дочерними свойствами.
Идентификатор назначения политики
В этом поле должен быть указан полный путь к назначению политики или к назначению инициативы. Это policyAssignmentId
строка, а не массив. Это свойство определяет, из какого назначения будет исключена родительская иерархия ресурсов или отдельный ресурс.
Идентификаторы определения политик
Если policyAssignmentId
предназначено для назначения инициативы, то свойство policyDefinitionReferenceId
может использоваться для указания определения политики в инициативе, для которой ресурс рассматриваемого элемента имеет исключение. Так как ресурс может быть исключен из одного или нескольких включенных определений политик, это свойство является массивом. Значения должны соответствовать значениям в определении инициативы в полях policyDefinitions.policyDefinitionReferenceId
.
Категория исключения
Существуют две категории исключения, которые используются для группирования исключений:
- Устранено: исключение предоставляется, поскольку цель политики достигнута другом методом.
- Отказ: исключение предоставляется, поскольку состояние несоответствия ресурса временно принято. Еще одна причина использования этой категории заключается в исключении ресурса или иерархии ресурсов из одного или нескольких определений в инициативе, но не следует исключать из всей инициативы.
Истечение срока действия
Чтобы указать, что иерархия ресурсов или отдельный ресурс больше не исключены из назначения, настройте свойство expiresOn
. Это необязательное свойство должно представлять собой дату и время в универсальном формате ISO 8601: yyyy-MM-ddTHH:mm:ss.fffffffZ
.
Примечание.
Исключения из политик не удаляются по достижении даты expiresOn
. Объект сохраняется для учета, но исключение больше не выполняется.
Селекторы ресурсов
Исключения поддерживают необязательное свойство resourceSelectors
, которое работает так же, как и в назначениях. Свойство позволяет постепенно развертывать или откатывать освобождение для определенных подмножеств ресурсов управляемым образом на основе типа ресурса, местоположения ресурса или наличия у ресурса местоположения. Дополнительные сведения об использовании селекторов ресурсов можно найти в структуре назначения. Следующий код JSON является примером исключения, использующего селекторы ресурсов. В этом примере только ресурсы westcentralus
исключены из назначения политики:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"westcentralus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Регионы можно добавить или удалить из resourceLocation
списка в примере. Селекторы ресурсов обеспечивают большую гибкость в том, где и как можно создавать и управлять исключениями.
Проверка области назначения задания (предварительная версия)
В большинстве случаев область исключения проверяется, чтобы убедиться, что она находится в пределах области назначения политики или ниже. Необязательное свойство assignmentScopeValidation
может предоставить возможность для исключения обхода этого процесса проверки и быть созданным вне области назначения. Эта проверка предназначена для ситуаций, когда подписка должна быть перемещена из одной группы управления (MG) в другую, но перемещение будет заблокировано политикой из-за свойств ресурсов в подписке. В этом сценарии можно создать освобождение для подписки, находящейся в текущей MG, чтобы исключить её ресурсы из назначения политики на целевую MG. Таким образом, когда подписка перемещается в целевую MG, операция не блокируется, так как ресурсы уже освобождены от назначенной политики. Использование этого свойства показано в следующем примере:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Разрешены следующие значения для assignmentScopeValidation
: Default
и DoNotValidate
. Если не указано, происходит процесс проверки по умолчанию.
Необходимые разрешения
Разрешения управления доступом на основе ролей Azure (Azure RBAC), необходимые для управления объектами исключения политик, находятся в Microsoft.Authorization/policyExemptions
группе операций. Встроенные роли Участник политики ресурсов и Администратор безопасности имеют разрешения read
и write
, а Средство записи данных Policy Insights (предварительная версия) — разрешение read
.
Исключения имеют дополнительные меры безопасности из-за эффекта предоставления исключения. Помимо выполнения операции Microsoft.Authorization/policyExemptions/write
с иерархией ресурсов или отдельным ресурсом, создатель исключения должен включить в целевое назначение команду exempt/Action
.
Создание исключений и управление ими
Исключения рекомендуется применять в сценариях, ограниченных по времени или в особых ситуациях, когда необходимо отслеживать ресурсы или иерархию ресурсов, которые обычно подлежат оценке, но есть конкретная причина, по которой их не следует оценивать на соответствие требованиям. Например, если среда имеет встроенное определение Storage accounts should disable public network access
(идентификатор b2982f36-99f2-4db5-8eff-283140c09693
) с назначением эффекта на аудит. При оценке соответствия ресурс StorageAcc1
не соответствует требованиям, но StorageAcc1
должен иметь доступ к общедоступной сети для бизнес-целей. В тот момент необходимо отправить запрос на создание ресурса исключения, предназначенного для StorageAcc1
. После создания исключения StorageAcc1
отображается как освобождён в проверке соответствия требованиям.
Регулярно пересматривайте свои исключения, чтобы убедиться, что все соответствующие элементы надлежащим образом освобождены, и быстро удаляйте те, которые не соответствуют условиям для освобождения. В то время ресурсы исключения с истекшим сроком действия также можно удалить.
Следующие шаги
- Узнайте о запросах Azure Resource Graph по исключениям.
- Узнайте о разнице между исключениями и освобождениями.
- Просмотрите тип ресурса Microsoft.Authorization PolicyExemptions.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.