Структура исключения из Политики Azure
Функция исключений из Политики Azure используется для исключения иерархии ресурсов или отдельного ресурса из оценки инициатив или определений. Исключенные ресурсы учитываются при определении общего соответствия, но не могут оцениваться или временно опускаться. Дополнительные сведения см. в разделе "Применимость" в Политика Azure. Политика Azure исключения также работают со следующими исключениями.Режимы Resource Manager: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
и Microsoft.Network.Data
.
Для создания исключения политики используется нотация объектов JavaScript (JSON). Исключение из политики содержит следующие элементы:
- display name
- описание
- metadata
- Назначение политики
- определения политик в рамках инициативы
- Категория исключения
- expiration
- селекторы ресурсов
- Проверка области назначения
Исключение политики создается как дочерний объект в иерархии ресурсов или отдельный ресурс, предоставленный исключению. Исключения невозможно создать на уровне компонента режима поставщика ресурсов. Если родительский ресурс, к которому применяется исключение, удаляется, то исключение также удаляется.
Например, в следующем JSON показано исключение из политики в категории ресурса waiver для назначения инициативы с именем resourceShouldBeCompliantInit
. Ресурс исключается только из двух определений политики в инициативе, customOrgPolicy
определения настраиваемой политики (:requiredTags
) и определения разрешенных расположений встроенной политики ( policyDefinitionReferenceId
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
максимальную длину 512 символов.
Метаданные
Свойство 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.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.