Публикация приложений виртуальной машины #REF! с использованием управляемого удостоверения

В этой статье объясняется, как использовать управляемые удостоверения с #REF! Compute Gallery для безопасной публикации приложений виртуальных машин #REF! с помощью URL-адресов BLOB-объектов, что исключает необходимость использования SAS URL-адресов или общедоступных учетных записей хранения данных.

Обзор

Для развертывания приложений с помощью приложений виртуальных машин #REF! требуется отправить пакет приложения в аккаунт хранения и указать URL-адрес BLOB-объекта. Галерея вычислений #REF! использует этот URL-адрес для доступа к объекту BLOB и опубликования его в качестве версии VM-приложения.

Без управляемого удостоверения у вас есть два варианта предоставления доступа к BLOB-объектам:

  • URL-адрес объекта Blob — требуется учетная запись хранилища для включения анонимного доступа.
  • URL-адрес SAS — маркер SAS хранится как обычный текст в ресурсе версии приложения, и необходимо управлять истечением срока действия маркера и его повторной генерацией.

Оба подхода небезопасны, так как URL-адреса BLOB предоставляют ваш аккаунт хранения общедоступному интернету, а URL-адреса SAS, являющиеся секретами, должны храниться в открытом виде.

Управляемое удостоверение — это функция безопасности, которая позволяет службе #REF! подтвердить свое удостоверение другим службам #REF! без хранения паролей, ключей или маркеров в коде или конфигурации. Вместо управления учетными данными Microsoft Entra ID автоматически обрабатывает проверку подлинности.

Подключив назначаемое пользователем управляемое удостоверение к Галерее вычислений #REF!, вы предоставляете галерее разрешение на доступ к объектам Blob в учетной записи хранения от вашего имени. Галерея показывает эту идентификацию, когда необходимо прочитать пакет приложения, и Microsoft Entra ID проверяет идентификацию и предоставляет доступ. Поскольку #REF! Compute Gallery является доверенным сервисом Microsoft, этот доступ работает даже в том случае, если учетная запись хранилища находится за виртуальной сетью.

Такой подход позволяет выполнять следующие действия.

  • Ограничение доступа учетной записи хранения к определенным виртуальным сетям.
  • Отключите доступ к общему ключу в учетной записи хранения и используйте URL-адреса обычных BLOB-объектов.
  • Убедитесь, что учетные данные доступа, такие как URL-адреса SAS, не хранятся в виде обычного текста.

Принцип работы

На высоком уровне поток проверки подлинности и доступа работает следующим образом:

  1. Вы загружаете пакет приложения в Blob в вашей учетной записи хранения.
  2. Вы создаете управляемое удостоверение, назначаемое пользователем, и предоставляете ему роль участника данных BLOB-объектов хранилища в учетной записи хранения.
  3. Вы присоединяете управляемое удостоверение к #REF! Compute Gallery.
  4. При публикации версии приложения виртуальной машины вы предоставляете обычный URL-адрес большого двоичного объекта вместо URL-адреса SAS.
  5. #REF! Compute Gallery пытается получить доступ к объекту BLOB напрямую, используя его URL-адрес.
  6. Microsoft Entra ID проверяет удостоверение и предоставляет галерее доступ к BLOB.

Необходимые условия

  • Галерея вычислений #REF!
  • Учетная запись хранения с пакетом приложения виртуальной машины, отправленного в BLOB-контейнер.

Шаг 1. Создайте управляемую учетную запись, назначенную пользователем

Создайте пользовательское управляемое удостоверение, которое коллекция вычислительных ресурсов #REF! использует для проверки подлинности в учетной записи хранения.

Подробные инструкции см. в статье "Создание управляемого удостоверения, назначаемого пользователем".

Шаг 2. Назначение разрешения на доступ к хранилищу для идентификатора

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

Подробные инструкции см. в разделе Назначение ролей #REF! с помощью портала #REF!. При назначении роли:

  1. Выберите участник данных хранилища Blob как роль.
  2. Назначьте доступ к управляемому удостоверению.
  3. Выберите управляемую идентичность, назначенную пользователем, которую вы создали на предыдущем шаге.

Обновите галерею вычислений #REF!, чтобы использовать управляемое удостоверение, назначенное пользователем. В настоящее время интерфейс портала недоступен для этого шага.

Использование REST API

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

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}?api-version=2025-04-01

{
    "location": "<location>",
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>": {}
        }
    }
}

Шаг 4. Получить blob URL для пакета вашего приложения

Получите URL-адрес объекта Blob для пакета приложения, хранящегося в аккаунте хранения. Формат URL-адреса:

https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>

Шаг 5. Публикация версии приложения виртуальной машины, используя URL-адрес BLOB

Используйте blob URL в свойстве профиля публикации при создании или обновлении версии приложения виртуальной машины. Галерея вычислений #REF! использует присоединенное управляемое удостоверение для проверки подлинности и доступа к объекту BLOB.

Подробные инструкции по созданию версии приложения виртуальной машины см. в статье "Создание версии приложения виртуальной машины".

Технические сведения

  • Аутентификационный поток — Галерея вычислений #REF! сначала пытается получить доступ к блобу, используя предоставленный URL-адрес. Если прямой доступ завершается сбоем из-за недостаточных прав, галерея переходит к использованию подключенной управляемой идентичности для аутентификации.
  • Доверенный доступ к службе — Галерея вычислений #REF! является доверенной службой Microsoft. Управляемое удостоверение предоставляет доверенный доступ, обходя ограничения виртуальной сети учетной записи хранилища, так что галерея не должна находиться внутри виртуальной сети, чтобы получить доступ к учетной записи хранилища с ограниченным доступом по сети.

Ограничения

  • Доступ к управляемому удостоверению поддерживается только в том случае, если публикуете версию приложения виртуальной машины в Галерею вычислений #REF!. Его нельзя использовать при развертывании приложения виртуальной машины на виртуальной машине или наборе масштабирования виртуальных машин (Масштабируемые наборы виртуальных машин).
  • Портальный интерфейс для привязки управляемой идентичности к галерее в настоящее время недоступен. Используйте REST API, Azure CLI или Azure PowerShell.