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


Назначение управляемых удостоверений с помощью Политики Azure (предварительная версия)

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

  • Согласованность ресурсов
  • Соблюдение нормативных требований
  • Безопасность
  • Себестоимость
  • Управление

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

Для агентов Azure Monitor требуется управляемое удостоверение на отслеживаемых виртуальных машинах Azure. В этом документе описывается поведение встроенной Политики Azure, которая предоставляется корпорацией Майкрософт и помогает обеспечить назначение управляемого удостоверения, необходимого для этих сценариев, виртуальным машинам в большом масштабе.

Использование управляемого удостоверения, назначаемого системой, возможно, при использовании в масштабе (например, для всех виртуальных машин в подписке) приводит к значительному количеству удостоверений, созданных (и удаленных) в идентификаторе Microsoft Entra ID. Чтобы избежать такого оттока удостоверений, рекомендуется использовать управляемые удостоверения, назначаемые пользователем, которые можно создать один раз и совместно использовать на нескольких виртуальных машинах.

Определение политики и сведения о ней

Политика выполняет следующие действия.

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

Примечание.

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

Существует два сценария использования политики.

  • Разрешите политике создавать и использовать "встроенное" управляемое удостоверение, назначаемое пользователем.
  • Используйте собственное управляемое удостоверение, назначаемое пользователем.

Политика принимает следующие входные параметры.

  • Использовать собственное управляемое удостоверение, назначаемое пользователем? – Должна ли политика создать новое управляемое удостоверение, назначаемое пользователем, если его еще не существует?
    • Если задано значение true, необходимо указать следующее:
      • Имя управляемого удостоверения.
      • Группа ресурсов, содержащая управляемое удостоверение.
    • Если задано значение false, дополнительные входные данные не требуются.
      • Политика создаст требуемое управляемое удостоверение, назначаемое пользователем, с именем built-in-identity в группе ресурсов с именем built-in-identity-rg.
  • Ограничить доступ к подписке с помощью собственной учетной записью UAMI? — Если для параметра Bring-Your-Own-UAMI задано значение true, политика должна использовать централизованное управляемое удостоверение, назначаемое пользователем, или использовать удостоверение для каждой подписки?
    • Если задано значение true, то никаких дополнительных входных данных не требуется.
      • Политика будет использовать управляемое удостоверение, назначаемое пользователем для каждой подписки.
    • Если задано значение false, политика будет использовать одно централизованное управляемое удостоверение, назначаемое пользователем, которое будет применяться ко всем подпискам, охватываемым назначением политики. Необходимо указать следующее:
      • Идентификатор ресурса управляемого удостоверения, назначаемого пользователем

Использование политики

Создание назначения политики

Определение политики можно назначать разным областям в Azure: в подписке группы управления или в определенной группе ресурсов. Поскольку политики необходимо применять все время, операция назначения выполняется с помощью управляемого удостоверения, связанного с объектом назначения политики. Объект назначения политики поддерживает как управляемое удостоверение, назначаемое системой, так и управляемое удостоверение, назначаемое пользователем. Например, Джо может создать управляемое удостоверение, назначаемое пользователем, с именем PolicyAssignmentMI. Встроенная политика создает управляемое удостоверение, назначаемое пользователем, в каждой подписке и в каждом регионе с ресурсами, которые находятся в области назначения политики. Созданные политикой управляемые удостоверения, назначаемые пользователем, имеют следующий формат resourceId:

/subscriptions/your-subscription-id/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-{location}

Например:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-ee4e4e4e/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-eastus

Обязательная авторизация

Чтобы управляемое удостоверение PolicyAssignmentMI могло назначать встроенную политику в указанной области, ему требуются следующие разрешения, выраженные как назначение ролей Azure RBAC (управление доступом на основе ролей Azure).

Субъект Роль или действие Область Характер использования
PolicyAssigmentMI Оператор управляемого удостоверения /subscription/subscription-id/resourceGroups/встроенное удостоверение
ИЛИ
Использовать собственное управляемое удостоверение, назначаемое пользователем
Требуется для назначения встроенного удостоверения виртуальным машинам.
PolicyAssigmentMI Участник /subscription/subscription-id> Требуется для создания группы ресурсов, содержащей встроенное управляемое удостоверение в подписке.
PolicyAssigmentMI Участник управляемого удостоверения /subscription/subscription-id/resourceGroups/built-in-identity Требуется для создания управляемого удостоверения, назначаемого пользователем.
PolicyAssigmentMI Администратор доступа пользователей /subscription/subscription-id/resourceGroups/встроенное удостоверение
ИЛИ
Использовать собственное управляемое удостоверение, назначаемое пользователем
Требуется для блокировки созданного политикой управляемого удостоверения, назначаемого пользователем.

Так как объект назначения политики должен заранее получить это разрешение, в этом сценарии PolicyAssignmentMI не может быть управляемым удостоверением, назначаемым системой. Пользователь, выполняющий задачу назначения политики, должен заранее авторизовать PolicyAssignmentMI с использованием указанных выше назначений ролей.

Как видно, итоговая роль, соответствующая принципу минимальных привилегий, является "участником" в области действия подписки.

Известные проблемы

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

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

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