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


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

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

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

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

Назначения политик используют управляемые удостоверения для авторизации ресурсов в Azure в процессе исправления. Вы можете использовать управляемое удостоверение, назначенное системой и созданное службой политик, либо удостоверение, назначенное пользователем и предоставленное им. Управляемое удостоверение должно быть назначено минимальной роли управления доступом на основе ролей Azure (Azure RBAC), необходимой для исправления ресурсов. Если в управляемом удостоверении отсутствуют роли, ошибка отображается на портале во время назначения политики или инициативы. При использовании портала, Политика Azure автоматически назначает управляемому удостоверению перечисленные роли сразу после начала назначения. При использовании пакета SDK для разработки программного обеспечения Azure роли необходимо вручную назначать управляемому удостоверению. Расположение управляемого удостоверения не влияет на его работу Политики 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 Policy может быть связано только с одним управляемым удостоверением. Однако управляемому удостоверению можно назначить несколько ролей. Конфигурация выполняется за два шага: сначала создайте управляемое удостоверение, назначаемое системой или пользователем, а затем предоставьте ему необходимые роли.

Примечание.

При создании управляемого удостоверения на портале роли будут автоматически предоставлены управляемому удостоверению. Если 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. На странице сведений задачи по устранению щелкните ресурс правой кнопкой мыши, чтобы просмотреть развертывание задачи или сам ресурс. В конце записи щелкните Связанные события, чтобы просмотреть сведения, например сообщение об ошибке.

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

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

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