Определение причин несоответствия требованиям

Если ресурс Azure определен как не соответствующий правилу политики, полезно понять, какой части правила он не соответствует. Также полезно понять, какое изменение ранее соответствовавшего ресурса сделало его несоответствующим. Эту информацию можно найти через два источника:

Сведения о соответствии

Если ресурс не соответствует требованиям, сведения о соответствии для этого ресурса доступны на странице Соответствия политике. Область сведений о соответствии содержит следующие сведения:

  • Сведения о ресурсе, такие как имя, тип, расположение и идентификатор ресурса.
  • Состояние соответствия и отметка времени последней оценки для текущего назначения политики.
  • Список причин несоответствия ресурса.

Важно!

Так как сведения о соответствии для Несоответствующего ресурса показывают текущее значение свойств этого ресурса, пользователь должен иметь операцию чтения для типа ресурса. Например, если Несоответствующий ресурсом является Microsoft.Compute/virtualMachines, то пользователь должен иметь операцию Microsoft.Compute/virtualMachines/read. Если у пользователя нет необходимой операции, отображается ошибка доступа.

Чтобы просмотреть сведения о соответствии, выполните следующие действия.

  1. Запустите службу "Политика Azure" на портале Azure. Для этого щелкните Все службы, выполните поиск по запросу Политика и выберите этот элемент.

  2. На странице Обзор или Соответствие выберите политику, с состоянием соответствияНе соответствует.

  3. На вкладке Соответствие ресурса страницы Соответствие политике выберите и удерживайте (или щелкните правой кнопкой мыши) либо просто выберите многоточие ресурса с состоянием соответствияНе соответствует. Затем выберите Просмотреть сведения о соответствии.

    Снимок экрана: ссылка

  4. Панель Сведения о соответствии отображает информацию от последней оценки ресурса до назначения текущей политики. В этом примере поле 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": {
                    ...
                }
            }
        }
    }
    

    Снимок экрана: область сведений о соответствии ifNotExists, включая расчетное количество ресурсов.

Примечание

Для защиты данных, если значение свойства является секретом, текущее значение отображает звездочки.

В этих сведениях объясняется, почему ресурс в настоящее время не соответствует требованиям, но не показывается, когда было внесено изменение в ресурс, вызвавшее это несоответствие. Информацию о последнем см. в разделе Журнал изменений (предварительная версия) ниже.

Причины соответствия

Режимы Диспетчер ресурсов и Поставщиков ресурсов могут не соответствовать требования по разным причинам.

Распространенные причины соответствия в режиме "Диспетчер ресурсов"

В следующей таблице сопоставлены все причинырежима Диспетчера ресурсов с соответствующими условиями в определении политики:

Причина Условие
Текущее значение должно содержать целевое значение в качестве ключа. containsKey или нет notContainsKey
Текущее значение должно содержать целевое значение. contains или нет notContains
Текущее значение должно быть равно целевому значению. equals или нет notEquals
Текущее значение должно быть меньше целевого значения. less или нет greaterOrEquals
Текущее значение должно быть не меньше целевого значения. greaterOrEquals или нет less
Текущее значение должно быть больше целевого значения. greater или нет lessOrEquals
Текущее значение должно быть не больше целевого значения. lessOrEquals или нет greater
Текущее значение должно существовать. exists (существует)
Текущее значение должно быть включено в целевое значение. 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 и связанный с ресурсом, определенным в части if правила политики, не существует.

Причины соответствия требованиям режима Поставщика ресурсов политики Azure

В следующей таблице каждый код причины Microsoft.PolicyInsightsрежима поставщика ресурсов сопоставляется с соответствующим объяснением:

Код причины соответствия требованиям Сообщение об ошибке и объяснение
NonModifiablePolicyAlias NonModifiableAliasConflict: псевдоним "{alias}" не изменяется в запросах с использованием версии API "{apiVersion}". Эта ошибка возникает, когда запрос использует версию API, в которой псевдоним не поддерживает эффект modify или поддерживает эффект modify только с другим типом маркера.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: псевдонимы: "{aliases}" нельзя изменить в запросах, использующих версию API: "{apiVersion}". Это может произойти в запросах с использованием версий API, для которых псевдонимы не поддерживают эффект modify или поддерживают эффект modify с другим типом маркера.
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 Сервер API отклонил ресурс из-за неправильного файла YAML. Эта причина также может быть вызвана несоответствием типа параметра (пример: строка для целого числа)

Примечание

В случае сбоя этого ограничения или шаблона для защиты существующих назначений политик и шаблонов ограничений в кластере сохраняется существующее ограничение или шаблон. Кластер сообщает о несоответствии, пока ошибка не будет устранена путем назначения политики или автоматического восстановления надстройки. Дополнительные сведения об обработке конфликтов см. в разделе Конфликты шаблонов ограничений.

Сведения о компонентах для режимов поставщика ресурсов

Для назначений в режиме поставщика ресурсов выберите несоответствующий ресурс, чтобы открыть более глубокое представление. На вкладке Соответствие компонентов представлены дополнительные сведения о режиме поставщика ресурсов в назначенной политике, включая данные о несоответствующемкомпоненте и идентификаторе компонента.

Снимок экрана: вкладка

Сведения о соответствии для гостевой конфигурации

Для определений политик в категории Гостевая конфигурация могут существовать несколько параметров, оцениваемых в виртуальной машине, и необходимо будет просмотреть подробные сведения о каждом параметре. Например, если вы выполняете аудит списка параметров безопасности и только один из них имеет состояние Не соответствует, необходимо знать, какие именно параметры не соответствуют требованиям и почему.

У вас также может не быть доступа для входа на виртуальную машину напрямую при необходимости сообщить о том, почему виртуальная машина Не соответствует.

Портал Azure

Сначала выполните действия, описанные в предыдущем разделе, чтобы просмотреть сведения о соответствии политике.

В представлении области "Сведения о соответствии" щелкните ссылку Последний оцененный ресурс.

Снимок экрана: просмотр сведений о соответствии определения auditIfNotExists.

На странице Назначение гостей отображаются все доступные сведения о соответствии. Каждая строка в представлении представляет собой оценку выполненную внутри виртуальной машины. В столбце Причина отображается фраза, в которой описывается, почему назначение гостя Не соответствует требованиям. Например, при аудите политик паролей в столбце Причина будет отображаться текст, включающий текущее значение для каждого параметра.

Снимок экрана: сведения о соответствии для назначения гостей.

Просмотр сведений о назначении конфигурации в большом масштабе

Функцию гостевой конфигурации можно использовать не только для назначений политик Azure. Например, служба Azure AutoManage создает назначения гостевой конфигурации, или вы можете назначать конфигурации при развертывании компьютеров.

Чтобы просмотреть все назначения гостевой конфигурации в арендаторе,откройте страницу Гостевые назначения на портале Azure. Чтобы просмотреть подробные сведения о соответствии, выбирайте каждое назначение, используя ссылку в столбце "Имя".

Снимок экрана со страницей

Журнал изменений (предварительная версия)

В рамках новой общедоступной предварительной версии последние 14 дней в журнале изменений теперь доступны для всех ресурсов Azure, поддерживающих полное удаление режимов. Журнал изменений содержит подробные сведения о том, когда было обнаружено изменение и отличия между визуальными элементами для каждого изменения. Обнаружение изменений активируется, когда свойства Azure Resource Manager добавляются, удаляются или изменяются.

  1. Запустите службу "Политика Azure" на портале Azure. Для этого щелкните Все службы, выполните поиск по запросу Политика и выберите этот элемент.

  2. На странице Обзор или Соответствие выберите политику в любом состоянии соответствия.

  3. На вкладке Соответствие ресурсов страницы Соответствие политики выберите ресурс.

  4. На странице Соответствие ресурсов выберите вкладку Журнал изменений (предварительная версия) . После этого отобразится список обнаруженных изменений (при наличии).

    Снимок экрана: вкладка

  5. Выберите одно из обнаруженных изменений. Отличия между визуальными элементами для ресурса представлены на странице Журнал изменений.

    Снимок экрана: отличия между визуальными элементами в журнале изменений для состояния до и после на странице

Отличия между визуальными элементами позволяют обнаружить изменения ресурса. Обнаруженные изменения могут не быть связаны с текущим состоянием соответствия ресурса.

Данные журнала изменений предоставляются Azure Resource Graph. Чтобы запросить эти сведения за пределами портала Azure, см. Получение изменений ресурсов.

Дальнейшие действия