Определение причин несоответствия требованиям
Если ресурс Azure определен как не соответствующий правилу политики, полезно понять, какой части правила он не соответствует. Кроме того, полезно понять, какие изменения изменили ранее соответствующий ресурс, чтобы сделать его несоответствующим. Эту информацию можно найти через два источника:
Сведения о соответствии
Если ресурс не соответствует требованиям, сведения о соответствии для этого ресурса доступны на странице Соответствия политике. Область сведений о соответствии содержит следующие сведения:
- Сведения о ресурсе, такие как имя, тип, расположение и идентификатор ресурса.
- Состояние соответствия и метка времени последнего вычисления для текущего назначения политики.
- Список причин несоответствия ресурсов.
Внимание
Так как сведения о соответствии для Несоответствующего ресурса показывают текущее значение свойств этого ресурса, пользователь должен иметь операцию чтения для типа ресурса. Например, если ресурс Microsoft.Compute/virtualMachines
не соответствует требованиям, пользователь должен иметь Microsoft.Compute/virtualMachines/read
операцию. Если у пользователя нет необходимой операции, отображается ошибка доступа.
Чтобы просмотреть сведения о соответствии, выполните следующие действия.
Запустите службу "Политика Azure" на портале Azure. Для этого щелкните Все службы, выполните поиск по запросу Политика и выберите этот элемент.
На странице Обзор или Соответствие выберите политику, с состоянием соответствия Не соответствует.
На вкладке "Соответствие ресурсов" на странице соответствия политик выберите и удерживайте (или щелкните правой кнопкой мыши) или выберите многоточие ресурса в состоянии соответствия требованиям, которое не соответствует требованиям. Затем выберите Просмотреть сведения о соответствии.
Панель Сведения о соответствии отображает информацию от последней оценки ресурса до назначения текущей политики. В этом примере поле
Microsoft.Sql/servers/version
имеет значение 12.0 , а определение политики — 14.0. Если ресурс не соответствует требованиям по нескольким причинам, каждая из них отображается на этой панели.auditIfNotExists
Для определения илиdeployIfNotExists
определения политики сведения включают свойство details.type и любые необязательные свойства. Список см. в разделах свойства auditIfNotExists и свойства deployIfNotExists. Последний оцененный ресурс — это связанный ресурс из раздела сведений определения.Пример частичного
deployIfNotExists
определения:{ "if": { "field": "type", "equals": "[parameters('resourceType')]" }, "then": { "effect": "deployIfNotExists", "details": { "type": "Microsoft.Insights/metricAlerts", "existenceCondition": { "field": "name", "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]" }, "existenceScope": "subscription", "deployment": { ... } } } }
Примечание.
Для защиты данных, если значение свойства является секретом, текущее значение отображает звездочки.
В этих сведениях объясняется, почему ресурс в настоящее время не соответствует требованиям, но не показывается, когда было внесено изменение в ресурс, вызвавшее это несоответствие. Дополнительные сведения см. в разделе "Журнал изменений( предварительная версия)".
Причины соответствия
Режимы Диспетчер ресурсов и Поставщиков ресурсов могут не соответствовать требования по разным причинам.
Распространенные причины соответствия в режиме "Диспетчер ресурсов"
Следующая таблица сопоставляет каждую причину режима Resource Manager с ответственным условием в определении политики:
Причина | Condition |
---|---|
Текущее значение должно содержать целевое значение в качестве ключа. | containsKey или нет notContainsKey |
Текущее значение должно содержать целевое значение. | contains или нет notContains |
Текущее значение должно быть равно целевому значению. | equals или нет notEquals |
Текущее значение должно быть меньше целевого значения. | less или нет greaterOrEquals |
Текущее значение должно быть не меньше целевого значения. | greaterOrEquals или нет less |
Текущее значение должно быть больше целевого значения. | greater или нет lessOrEquals |
Текущее значение должно быть не больше целевого значения. | lessOrEquals или нет greater |
Текущее значение должно существовать. | существует |
Текущее значение должно быть включено в целевое значение. | in или нет notIn |
Текущее значение должно быть аналогично целевому значению. | Like или нет notLike |
Текущее значение должно соответствовать целевому значению с учетом регистра. | match или нет notMatch |
Текущее значение должно соответствовать целевому значению без учета регистра. | matchInsensitively или нет notMatchInsensitively |
Текущее значение не должно содержать целевое значение в качестве ключа. | notContainsKey или нет containsKey |
Текущее значение не должно содержать целевое значение. | notContains или нет contains |
Текущее значение не должно быть равно целевому значению. | notEquals или нет equals |
Текущее значение не должно существовать. | нет exists |
Текущее значение не должно быть включено в целевое значение. | notIn или нет in |
Текущее значение не должно быть аналогично целевому значению. | notLike или нет like |
Текущее значение не должно соответствовать целевому значению с учетом регистра. | notMatch или нет match |
Текущее значение не должно соответствовать целевому значению без учета регистра. | notMatchInsensitively или нет matchInsensitively |
Нет связанных ресурсов, соответствующих сведениям о воздействии в определении политики. | Ресурс типа, определенного и then.details.type связанный с ресурсом, определенным в том случае, если часть правила политики не существует. |
Причины соответствия требованиям режима Поставщика ресурсов политики Azure
В следующей таблице каждый код причины Microsoft.PolicyInsights
режима поставщика ресурсов сопоставляется с соответствующим объяснением:
Код причины соответствия требованиям | Сообщение об ошибке и объяснение |
---|---|
NonModifiablePolicyAlias | NonModifiableAliasConflict: псевдоним "{alias}" не изменяется в запросах с помощью версии API "{apiVersion}". Эта ошибка возникает, когда запрос с использованием версии API, где псевдоним не поддерживает эффект "изменить" или поддерживает только эффект "изменить" с другим типом маркера. |
AppendPoliciesNotApplicable | AppendPoliciesUnableToAppend: псевдонимы: "{ псевдонимы }" не изменяются в запросах с помощью версии API: "{ apiVersion }". Это может произойти в запросах с использованием версий API, для которых псевдонимы не поддерживают эффект "изменить" или поддерживают эффект "изменить" с другим типом токена. |
ConflictingAppendPolicies | ConflictingAppendPolicies: обнаружены конфликтующие назначения политик, которые изменяют поле "{notApplicableFields}". Идентификаторы политик: "{policy}". Обратитесь к администратору подписки, чтобы обновить назначения политик. |
AppendPoliciesFieldsExist | AppendPoliciesFieldsExistWithDifferentValues: назначения политик пытались добавить поля, которые уже существуют в запросе, с другими значениями. Поля: "{existingFields}". Идентификаторы политик: "{policy}". Чтобы обновить политики, обратитесь к администратору подписки. |
AppendPoliciesUndefinedFields | AppendPoliciesUndefinedFields: найдено определение политики, ссылающееся на неопределенное свойство поля для версии API "{apiVersion}". Поля: "{nonExistingFields}". Идентификаторы политик: "{policy}". Чтобы обновить политики, обратитесь к администратору подписки. |
MissingRegistrationForType | MissingRegistrationForResourceType: подписка не зарегистрирована для типа ресурса "{ResourceType}". Убедитесь, что тип ресурса существует и что тип ресурса зарегистрирован. |
AmbiguousPolicyEvaluationPaths | В содержимом запроса имеется один или несколько неоднозначных путей: "{0}" требуется в соответствии с политиками: "{1}". |
InvalidResourceNameWildcardPosition | Назначение политики "{0}", связанное с определением политики"{1}, не удалось оценить. Имя ресурса "{2}" в условии ifNotExists содержит подстановочный знак "?" в недопустимой позиции. Подстановочные знаки могут располагаться только в конце имени в отдельном сегменте (например, TopLevelResourceName/?). Исправьте политику или удалите назначение политики для разблокировки. |
TooManyResourceNameSegments | Назначение политики "{0}", связанное с определением политики"{1}, не удалось оценить. Имя ресурса "{2}" в условии ifNotExists содержит слишком много сегментов имени. Число сегментов имени должно быть меньше или равно числу сегментов типа (за исключением пространства имен поставщика ресурсов). Исправьте определение политики или удалите назначение политики для разблокировки. |
InvalidPolicyFieldPath | Недопустимый путь поля "{0}" в политике. Пути полей не должны содержать пустые сегменты. Они могут содержать только буквенно-цифровые символы, за исключением символа "." для разделения сегментов и последовательности символов "[*]" для доступа к свойствам массива. |
Причины соответствия режима Поставщика ресурсов AKS
Следующая таблица сопоставляет каждую Microsoft.Kubernetes.Data
причину режима поставщика ресурсов с ответственным состоянием шаблона ограничения в определении политики:
Причина | Описание причины для шаблона ограничения |
---|---|
Constraint/TemplateCreateFailed | Не удалось создать ресурс для определения политики с ограничением или шаблоном, который не соответствует существующему ограничению или шаблону в кластере по имени метаданных ресурса. |
Constraint/TemplateUpdateFailed | Не удалось обновить ограничение или шаблон для определения политики с ограничением или шаблоном, который соответствует существующему ограничению или шаблону в кластере по имени метаданных ресурса. |
Constraint/TemplateInstallFailed | Не удалось выполнить сборку ограничения или шаблона, и его не удалось установить в кластере для операций создания или обновления. |
ConstraintTemplateConflicts | Шаблон конфликтует с одним или несколькими определениями политик, использующих одно и то же имя шаблона для разных источников. |
ConstraintStatusStale | Существует существующее состояние "Аудит", но Gatekeeper не выполнил аудит в течение последнего часа. |
ConstraintNotProcessed | Нет состояния, и Gatekeeper не выполнил аудит в течение последнего часа. |
InvalidConstraint/Template | Ресурс был отклонен из-за одной из следующих причин: недопустимое содержимое шаблона ограничения Rego, недопустимое YAML или несоответствие типа параметра между ограничением и шаблоном ограничения (предоставление строкового значения при ожидаемом значении целого числа). |
Примечание.
В случае сбоя этого ограничения или шаблона для защиты существующих назначений политик и шаблонов ограничений в кластере сохраняется существующее ограничение или шаблон. Кластер сообщает о несоответствии, пока ошибка не будет устранена путем назначения политики или автоматического восстановления надстройки. Дополнительные сведения об обработке конфликтов см. в разделе Конфликты шаблонов ограничений.
Сведения о компонентах для режимов поставщика ресурсов
Для назначений с режимом поставщика ресурсов выберите несоответствующий ресурс, чтобы просмотреть свои записи соответствия компонентам. На вкладке "Соответствие компонентам" отображаются дополнительные сведения, относящиеся к режиму поставщика ресурсов, например имя компонента, идентификатор компонента и тип.
Сведения о соответствии для гостевой конфигурации
Для определений политик в категории гостевой конфигурации может быть несколько параметров, вычисляемых внутри виртуальной машины, и необходимо просмотреть сведения о параметрах. Например, если вы выполняете аудит для списка параметров безопасности и только один из них имеет состояние не соответствует требованиям, необходимо знать, какие конкретные параметры не соответствуют требованиям и почему.
У вас также может не быть доступа для входа на виртуальную машину напрямую при необходимости сообщить о том, почему виртуальная машина Не соответствует.
Портал Azure
Для начала выполните те же действия, что и в разделе сведений о соответствии требованиям, чтобы просмотреть сведения о соответствии политике.
В представлении области "Сведения о соответствии" щелкните ссылку Последний оцененный ресурс.
На странице Назначение гостей отображаются все доступные сведения о соответствии. Каждая строка в представлении представляет собой оценку выполненную внутри виртуальной машины. В столбце Причина отображается фраза, в которой описывается, почему назначение гостя Не соответствует требованиям. Например, при аудите политик паролей в столбце Причина будет отображаться текст, включающий текущее значение для каждого параметра.
Просмотр сведений о назначении конфигурации в большом масштабе
Функцию гостевой конфигурации можно использовать не только для назначений политик Azure. Например, служба "Автоуменаж Azure" создает назначения гостевой конфигурации или при развертывании компьютеров можно назначать конфигурации.
Чтобы просмотреть все назначения гостевой конфигурации в арендаторе,откройте страницу Гостевые назначения на портале Azure. Чтобы просмотреть подробные сведения о соответствии, выберите каждое назначение, используя ссылку в имени столбца.
Журнал изменений (предварительная версия)
В рамках новой общедоступной предварительной версии последние 14 дней в журнале изменений теперь доступны для всех ресурсов Azure, поддерживающих полное удаление режимов. Журнал изменений содержит подробные сведения о том, когда было обнаружено изменение и отличия между визуальными элементами для каждого изменения. Обнаружение изменений активируется, когда свойства Azure Resource Manager добавляются, удаляются или изменяются.
Запустите службу "Политика Azure" на портале Azure. Для этого щелкните Все службы, выполните поиск по запросу Политика и выберите этот элемент.
На странице Обзор или Соответствие выберите политику в любом состоянии соответствия.
На вкладке "Соответствие ресурсам" на странице соответствия политик выберите ресурс.
На странице Соответствие ресурсов выберите вкладку Журнал изменений (предварительная версия). После этого отобразится список обнаруженных изменений (при наличии).
Выберите одно из обнаруженных изменений. Отличия между визуальными элементами для ресурса представлены на странице Журнал изменений.
Отличия между визуальными элементами позволяют обнаружить изменения ресурса. Обнаруженные изменения могут не быть связаны с текущим состоянием соответствия ресурса.
Данные журнала изменений предоставляются Azure Resource Graph. Чтобы запросить эти сведения за пределами портала Azure, см. Получение изменений ресурсов.
Следующие шаги
- Изучите примеры на странице примеров Политики Azure.
- Изучите статью о структуре определения Политики Azure.
- Изучите сведения о действии политик.
- Узнайте о программном создании политик.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.
- Дополнительные сведения о группе управления см. в статье Упорядочивание ресурсов с помощью групп управления Azure.