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


Что собой представляют управляемые удостоверения для ресурсов Azure?

Управление секретами, учетными данными, сертификатами и ключами, используемыми для защиты обмена данными между различными службами, зачастую представляет трудности для разработчиков. Ручная обработка секретов и сертификатов — известный источник проблем безопасности и сбоев. Управляемые удостоверения избавляют разработчиков от необходимости управлять учетными данными. Приложения могут использовать управляемые удостоверения для получения маркеров Microsoft Entra, и при этом им не нужно управлять учетными данными.

Что такое управляемые удостоверения?

На высоком уровне существует два типа идентичностей: человеческие и машинные или не человеческие. Идентичности машины/нечеловеческих сущностей состоят из идентичностей устройств и рабочих нагрузок. В Microsoft Entra удостоверения рабочей нагрузки — это приложения, служебные принципы и управляемые удостоверения.

Управляемое удостоверение — это удостоверение, которое можно назначить вычислительному ресурсу Azure (виртуальной машине Azure, масштабируемому набору виртуальных машин Azure, кластеру Service Fabric, кластеру Azure Kubernetes) или любой платформе размещения приложений, поддерживаемой Azure. После назначения управляемого удостоверения на вычислительный объект, оно может быть авторизовано, напрямую или косвенно, для доступа к зависимым ресурсам, таким как учетная запись хранения, база данных SQL, Cosmos DB и т. д. Управляемое удостоверение заменяет секреты, такие как ключи доступа или пароли. Кроме того, управляемые удостоверения могут заменить сертификаты или другие формы аутентификации для зависимостей между службами.

В следующем видео показано, как использовать управляемые удостоверения:

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

  • Управлять учетными данными не нужно. Даже у вас нет доступа к учетным данным.
  • Управляемые удостоверения можно использовать для аутентификации в любом ресурсе, поддерживающем аутентификацию Microsoft Entra, включая собственные приложения.
  • Управляемые удостоверения можно использовать без дополнительных затрат.

Типы управляемых удостоверений

Существует два типа управляемых удостоверений:

  • Назначаемые системой. Некоторые ресурсы Azure, такие как виртуальные машины, позволяют включить управляемое удостоверение непосредственно в ресурсе. Когда вы включаете управляемое удостоверение, назначаемое системой:

    • Для идентичности создается учетная запись службы специального типа в Microsoft Entra ID. Субъект-служба привязан к жизненному циклу этого ресурса Azure. При удалении ресурса Azure, Azure автоматически удаляет служебный принципал для вас.
    • Только один конкретный ресурс Azure может использовать это удостоверение для получения токенов Microsoft Entra ID.
    • Вы авторизуете управляемое удостоверение для доступа к одной или нескольким службам.
    • Имя служебного принципала, назначенного системой, всегда совпадает с именем ресурса Azure, для которого он создан. Для слота развертывания имя управляемого удостоверения, назначаемого системой, — <app-name>/slots/<slot-name>.
  • Назначенный пользователем. Вы также можете создать управляемое удостоверение как автономный ресурс Azure. Вы можете создать управляемое удостоверение, назначаемое пользователем, и назначить его одному или нескольким ресурсам Azure. Когда вы включаете управляемую идентичность, назначаемую пользователем:

    • Для идентичности создается учетная запись службы специального типа в Microsoft Entra ID. Субъект-служба управляется отдельно от ресурсов, которые его используют.
    • Управляемые удостоверения, назначаемые пользователем, могут использоваться несколькими ресурсами.
    • Вы авторизуете управляемое удостоверение для доступа к одной или нескольким службам.

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

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

  • Включать или отключать управляемые удостоверения на уровне ресурса.
  • Используйте управление доступом на основе ролей (RBAC) для предоставления разрешений.
  • Просмотр операций создания, чтения, обновления и удаления (CRUD) в журналах действий Azure.
  • Просмотр активности входов в журналах Microsoft Entra ID.

Если вы выберете назначаемое пользователем управляемое удостоверение:

  • Вы можете создавать, читать, обновлять и удалять идентификации.
  • Можно использовать назначения ролей RBAC для предоставления разрешений.
  • Управляемые удостоверения пользователя можно использовать на нескольких ресурсах.
  • Операции CRUD доступны для проверки в журналах действий Azure.
  • Просмотр активности входа в журналах входа в Microsoft Entra ID.

Операции с управляемыми удостоверениями можно выполнять с помощью шаблона Azure Resource Manager, на портале Azure, Azure CLI, PowerShell и REST API.

Различия между управляемыми идентичностями, назначаемыми системой и назначаемыми пользователем

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

Имущество Системно назначаемое управляемое удостоверение Управляемое удостоверение, назначаемое пользователем
Создание Создается как часть ресурса Azure (например, виртуальной машины Azure или Службы приложений Azure). Создано в качестве автономного ресурса Azure.
Жизненный цикл Совместный жизненный цикл с ресурсом Azure, с которым создается управляемое удостоверение.
При удалении родительского ресурса также удаляется управляемое удостоверение.
Независимый жизненный цикл.
Должен быть явно удален.
Совместное использование ресурсов Azure Нельзя поделиться.
Может быть связано только с одним ресурсом Azure.
Может быть в общем доступе.
Одно и то же назначаемое пользователем управляемое удостоверение может быть связано с несколькими ресурсами Azure.
Распространенные варианты использования Рабочие нагрузки, содержащиеся в одном ресурсе Azure.
Рабочие нагрузки, требующие независимых идентификаторов.
Например, приложение, выполняющееся на одной виртуальной машине.
Рабочие нагрузки, которые выполняются на нескольких ресурсах и могут делить одну идентичность.
Рабочие нагрузки, требующие предавторизации для безопасного ресурса, как часть процесса подготовки.
Рабочие нагрузки, где ресурсы часто перераспределяются, но разрешения должны оставаться постоянными.
Например, рабочая нагрузка, где нескольким виртуальным машинам требуется доступ к одному и тому же ресурсу.

Использование управляемых удостоверений для ресурсов Azure

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

Код службы, работающий на вычислительной мощности Azure, использует библиотеку аутентификации Microsoft (MSAL) или Azure.Identity SDK для получения токена управляемого удостоверения из Entra ID, который обеспечивается управляемым удостоверением. Получение этого токена не требует секретов, а аутентификация выполняется автоматически в зависимости от среды выполнения кода. Если управляемое удостоверение авторизовано, код службы может получить доступ к нижестоящим зависимостям, поддерживающим аутентификацию через Entra ID.

Например, вы можете использовать виртуальную машину Azure в качестве вычислений Azure. Затем вы можете создать управляемое пользователем удостоверение и назначить его виртуальной машине. Рабочая нагрузка, выполняемая на интерфейсах виртуальной машины, взаимодействует как с библиотеками Azure.Identity (или MSAL), так и с клиентскими SDK для Azure Storage, чтобы получить доступ к аккаунту хранения. Управляемое удостоверение, назначаемое пользователем, авторизовано для доступа к учетной записи хранения.

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

  1. Создайте управляемое удостоверение в Azure. Вы можете выбрать управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем.
    1. При использовании управляемого удостоверения, назначаемого пользователем, вы назначаете управляемое удостоверение исходному ресурсу Azure, например виртуальной машине, приложению логики Azure или веб-приложению Azure.
  2. Авторизуйте управляемое удостоверение для доступа к целевой службе.
  3. Используйте управляемое удостоверение для доступа к ресурсу. На этом шаге можно использовать пакет SDK Azure с библиотекой Azure.Identity или библиотекой проверки подлинности Майкрософт (MSAL). Некоторые "исходные" ресурсы предлагают коннекторы, которые умеют использовать управляемые сущности для подключений. В этом случае вы используете идентификационную информацию как характеристику этого исходного ресурса.

Использование управляемого удостоверения в качестве федеративного удостоверения (FIC) в приложении идентификатора записи

Федерация удостоверений рабочей нагрузки для обеспечения позволяет использовать управляемое удостоверение в качестве аутентификационных данных, как сертификат или пароль, в приложениях Entra ID. Каждый раз, когда требуется приложение Entra ID, рекомендуется использовать способ, не требующий учетных данных. Существует ограничение в 20 FIC при использовании управляемых удостоверений в качестве FIC в приложении Entra ID.

Рабочая нагрузка, действующая в качестве приложения Entra ID, может размещаться в любом вычислительном ресурсе Azure с управляемым удостоверением. Рабочая нагрузка использует управляемую идентичность для получения токена, который будет обменен на токен приложения Entra ID через федерацию идентичностей рабочей нагрузки. Эта функция также называется управляемой идентификацией, или FIC (федеративные учетные данные идентификации). Для получения дополнительной информации см. раздел Настройка приложения для доверия к управляемому удостоверению.

Службы Azure, поддерживающие управляемые удостоверения

Управляемые удостоверения для ресурсов Azure можно использовать для проверки подлинности в службах, поддерживающих проверку подлинности Microsoft Entra. Список поддерживаемых служб Azure см. в статье Службы с поддержкой управляемых удостоверений для ресурсов Azure.