Поделиться через


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

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

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

Когда Политика Azure запускает развертывание шаблона при оценке политик или изменяет ресурс при оценке deployIfNotExists modify политик, он использует управляемое удостоверение, связанное с назначением политики. Назначения политик используют управляемые удостоверения для авторизации ресурсов Azure. Вы можете использовать управляемое удостоверение, назначаемое системой, созданное службой политик или назначаемым пользователем удостоверением, предоставленным пользователем. Управляемое удостоверение должно быть назначено минимальной роли управления доступом на основе ролей Azure (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политики. Кроме того, можно указать управляемое удостоверение, назначаемое пользователем, которое получает то же назначение ролей.

Снимок экрана: назначение политики, создающее управляемое удостоверение, назначаемое системой, в регионе

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

  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/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

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

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

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

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

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

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

Снимок экрана: поиск пункта

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

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

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

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

    Снимок экрана: узел

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

    Снимок экрана: узел

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

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

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

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

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

    Снимок экрана: контекстное меню для ресурса на вкладке

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

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