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

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

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

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

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

Важно!

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

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

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

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

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

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. Панель Сведения о соответствии отображает информацию от последней оценки ресурса до назначения текущей политики. В этом примере поле Microsoft.Sql/servers/version имеет значение 12.0 , а определение политики — 14.0. Если ресурс не соответствует требованиям по нескольким причинам, каждая из них отображается на этой панели.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    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": {
            ...
          }
        }
      }
    }
    

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

Примечание.

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

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

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

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

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

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

Причина 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 или несоответствие типа параметра между ограничением и шаблоном ограничения (предоставление строкового значения при ожидаемом значении целого числа).

Примечание.

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

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

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

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

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

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

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

Портал Azure

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

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

Screenshot of viewing the auditIfNotExists definition compliance details.

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

Screenshot of the Guest Assignment compliance details.

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

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

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

Screenshot of the Guest Assignment page.

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

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

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

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

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

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

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

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

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

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

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

Следующие шаги