Исправление несоответствующих ресурсов с помощью службы "Политика Azure"

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

Как работает управление доступом к исправлению

Когда Политика Azure запускает развертывание шаблона при оценке политик deployIfNotExists или изменяет ресурс при оценке политик modify, она использует управляемое удостоверение, связанное с назначением политики. Назначения политик используют управляемые удостоверения для авторизации ресурсов Azure. Вы можете использовать управляемое удостоверение, назначаемое системой, которое создается службой политики, или удостоверение, назначаемое пользователем, которое предоставляет пользователь. Управляемому удостоверению необходимо назначить минимальные роли управления доступом на основе ролей (RBAC), необходимые для исправления ресурсов. Если в управляемом удостоверении отсутствуют роли, эта ошибка отображается на портале во время назначения политики или в инициативе. При использовании портала служба "Политика Azure" автоматически предоставляет управляемое удостоверение всем перечисленным ролям после начала процесса назначения. При использовании пакета средств разработки программного обеспечения Azure (SDK) роли необходимо предоставить управляемому удостоверению вручную. Расположение управляемого удостоверения не влияет на его использование в службе "Политика Azure".

Примечание.

Изменение определения политики не приводит к автоматическому обновлению назначения или связанного управляемого удостоверения.

Безопасность исправления можно настроить с помощью следующих шагов:

Настройка определения политики

Сначала определение политики должно определить роли, которые требуются deployIfNotExists или modify для успешного развертывания содержимого включенного шаблона. Для определения встроенной политики не требуется никаких действий, так как эти роли предварительно заполнены. Для определения настраиваемой политики под свойством details добавьте свойство roleDefinitionIds. Это свойство является массивом строк, соответствующих ролям в среде. См. полные примеры для deployIfNotExists и modify.

"details": {
    ...
    "roleDefinitionIds": [
        "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
        "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
    ]
}

Свойство roleDefinitionIds использует полный идентификатор ресурса и не принимает короткое имя роли roleName. Чтобы получить идентификатор для роли "Участник" в среде, используйте следующий код Azure CLI:

az role definition list --name "Contributor"

Важно!

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

Настройка управляемого удостоверения

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

Примечание.

При создании управляемого удостоверения на портале роли будут автоматически предоставлены управляемому удостоверению. Если roleDefinitionIds будут впоследствии отредактированы в определении политики, новые разрешения нужно будет предоставить вручную, даже на портале.

Создание управляемого удостоверения

При создании назначения с помощью портала Политика Azure может создать управляемое удостоверение, назначаемое системой, и предоставить ему роли, определенные в определении политики roleDefinitionIds. Кроме того, можно указать управляемое удостоверение, назначаемое пользователем, которое получает то же назначение ролей.

Screenshot of a policy assignment creating a system-assigned managed identity in East US with Log Analytics Contributor permissions.

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

  1. В разделе Types of Managed Identity (Типы управляемого удостоверения) на вкладке Исправление представления создания/изменения назначения выберите параметр Управляемое удостоверение, назначаемое системой.

  2. Укажите расположение, где будет находиться управляемое удостоверение.

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

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

  1. В разделе Types of Managed Identity (Типы управляемого удостоверения) на вкладке Исправление представления создания/изменения назначения выберите параметр Управляемое удостоверение, назначаемое пользователем.

  2. Укажите область, в которой размещается управляемое удостоверение. Область управляемого удостоверения необязательно должна обязана соответствовать области назначения, но должна находиться у того же арендатора.

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

Предоставление разрешений управляемому удостоверению с помощью определенных ролей

Важно!

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

При использовании всех других методов управляемому удостоверению назначения должен быть предоставлен доступ вручную путем добавления ролей. В противном случае развертывание исправления завершится сбоем.

Примеры сценариев, требующих предоставляемых вручную разрешений:

  • Если назначение создается с помощью пакета средств разработки программного обеспечения Azure (SDK)
  • Если ресурс, измененный с помощью deployIfNotExists или modify, находится за пределами области назначения политики.
  • Если шаблон обращается к свойствам ресурсов за пределами области назначения политики.

На портале управляемому удостоверению назначения можно присвоить определенные роли двумя способами: используя раздел Управление доступом (IAM) либо изменив назначение политики или инициативы и выбрав Сохранить.

Чтобы добавить роль для управляемого удостоверения назначения, выполните следующие действия:

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

  2. Выберите Назначения на странице службы Политики Azure слева.

  3. Найдите назначение, которое имеет управляемое удостоверение, и щелкните его имя.

  4. Найдите свойство Идентификатор назначения на странице изменения. Идентификатор назначения будет выглядеть примерно так:

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    Имя управляемого удостоверения — это последняя часть идентификатора ресурса назначения (в этом примере 2802056bfc094dfb95d4d7a5). Скопируйте эту часть идентификатора ресурса назначения.

  5. Перейдите к ресурсу или родительскому контейнеру ресурсов (группа ресурсов, подписка, группа управления), для которого нужно вручную добавить определение роли.

  6. Щелкните ссылку Управление доступом (IAM) на странице ресурсов и выберите + Добавить назначение ролей в верхней части страницы управления доступом.

  7. Выберите нужную роль, соответствующую roleDefinitionIds определения политики. В поле Назначение доступа к оставьте значение по умолчанию "Пользователь, группа или приложение Azure AD". В поле Выберите вставьте или введите часть идентификатора ресурса назначения, обнаруженного ранее. После завершения поиска щелкните объект с тем же именем, чтобы выбрать идентификатор, и нажмите кнопку Сохранить.

Создание задачи исправления

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

Screenshot of searching for Policy in All Services.

Шаг 1. Запуск создания задачи исправления

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

Вариант 1. Создание задачи исправления на странице "Исправление"

  1. Выберите Исправление на странице службы "Политика Azure" слева.

    Screenshot of the Remediation node on the Policy page.

  2. Все назначения политик deployIfNotExists и modify отображаются на вкладке Политики для исправления. Выберите назначение с ресурсами, которые не соответствуют требованиям, чтобы открыть страницу Новая задача исправления.

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

Вариант 2. Создание задачи исправления из несоответствующего назначения политики

  1. Выберите Соответствие на странице Политики Azure слева.

  2. Выберите несоответствующее назначение политики или инициативы, содержащее эффекты deployIfNotExists или modify.

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

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

Вариант 3. Создание задачи исправления в процессе назначения политики

Если определение политики или инициативы для назначения имеет эффект deployIfNotExists или Modify, вкладка Исправление мастера предлагает параметр Создать задачу исправления, который создает задачу исправления одновременно с назначением политики.

Примечание.

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

  1. В мастере назначения на портале перейдите на вкладку Исправление. Установите флажок Создать задачу исправления.

  2. Если задача исправления инициируется из назначения инициативы, выберите политику для исправления из раскрывающегося списка.

  3. Настройте управляемое удостоверение и укажите остальные сведения в мастере. Задача исправления будет создана при создании назначения.

Шаг 2. Указание сведений о задаче исправления

Этот шаг применим только при использовании варианта 1 или варианта 2 для запуска создания задачи исправления.

  1. Если задача исправления инициируется из назначения инициативы, выберите политику для исправления из раскрывающегося списка. Одновременно с помощью задачи исправления можно исправить одну политику deployIfNotExists или modify.

  2. При необходимости измените параметры исправления на странице. Сведения о том, какие элементы управления параметрами задаются, см . в структуре задач исправления.

  3. На странице той же странице отфильтруйте ресурсы, которые нужно исправить, используя многоточие возле поля Область, чтобы выбрать дочерние ресурсы, которым была присвоена политика (в том числе отдельные объекты ресурса). Кроме того, используйте раскрывающийся список Расположения, чтобы дополнительно отфильтровать ресурсы.

    Screenshot of the Remediate node and the grid of resources to remediate.

  4. Запустите задачу по исправлению после того, как ресурсы были отфильтрованы, щелкнув Исправить. Откроется страница соответствия политики со вкладкой Задачи исправления, где отображается состояние хода выполнения задач. Развертывания, созданные задачей исправления, немедленно запускаются.

    Screenshot of the Remediation tasks tab and progress of existing remediation tasks.

Шаг 3. Отслеживание хода выполнения задачи исправления

  1. Перейдите на вкладку Задачи исправления на странице Исправление. Щелкните задачу исправления, чтобы просмотреть сведения об используемом фильтре, текущем состоянии и списке исправляемых ресурсов.

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

    Screenshot of the context menu for a resource on the Remediate task tab.

Ресурсы, развернутые посредством задачи исправления, добавляются на вкладку Развернутые ресурсы на странице сведений о назначении политики.

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