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


Руководство. Доступ к хранилищу с помощью управляемого удостоверения служб мультимедиа

логотип служб мультимедиа версии 3


Предупреждение

Службы мультимедиа Azure будут прекращены 30 июня 2024 г. Дополнительные сведения см. в руководстве по выходу на пенсию AMS.

Заметка

Управляемые удостоверения доступны только для учетных записей служб мультимедиа, созданных с помощью API версии 3. Если вы используете API версии 2 и хотите использовать управляемые удостоверения, перейдите из версии 2 в версию 3 Миграция из служб мультимедиа версии 2 в введениеверсии 3.

Если вы хотите получить доступ к учетной записи хранения, если учетная запись хранения настроена для блокировки запросов с неизвестных IP-адресов, учетная запись служб мультимедиа должна быть предоставлена доступ к учетной записи хранения. Выполните приведенные ниже действия, чтобы создать управляемое удостоверение для учетной записи служб мультимедиа и предоставить этому удостоверению доступ к хранилищу с помощью интерфейса командной строки служб мультимедиа.

учетная запись служб мультимедиа использует управляемое удостоверение для доступа к хранилищу

В этом руководстве используется API служб мультимедиа 2020-05-01.

Обзор

Предупреждение

Нельзя использовать URL-адреса JobInputHTTP или SAS с учетной записью хранения, которая не связана с учетной записью служб мультимедиа. Они предназначены для удобства для клиентов, которые существующего содержимого, к которым можно получить доступ с помощью HTTP(S), например, если у вас есть файлы мультимедиа на общедоступном сервере или хранятся с другим поставщиком облачных служб. Если вы создаете новые решения, используйте ресурсы для входных данных задания.

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

  • Настройте учетную запись хранения, чтобы запретить все IP-адреса (или разрешить IP-адреса в сети клиента)
  • Настройка учетной записи хранения для разрешения доступа к AzureServices
  • Настройка служб мультимедиа для доступа к учетной записи хранения с помощью управляемого удостоверения
  • Отправка содержимого мультимедиа в ресурсы служб мультимедиа
  • Создайте задания кодирования, использующие ресурсы служб мультимедиа в качестве входных данных задания. НЕ использовать URL-адреса SAS или JobInputHTTP.

Вход в Azure

Чтобы использовать любую из команд в этой статье, сначала необходимо войти в подписку, которую вы хотите использовать.

Войдите в Azure. При использовании этой команды вам будет предложено использовать подписку.

az login

Настройка подписки

Используйте эту команду, чтобы задать подписку, с которой вы хотите работать.

Настройка подписки Azure с помощью интерфейса командной строки

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

az account set --subscription <subscriptionName>

Имена ресурсов

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

Эти имена отображаются в приведенных ниже командах. Имена необходимых ресурсов:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • местоположение

Заметка

Приведенные выше дефисы используются только для разделения слов руководства. Из-за несоответствия именования ресурсов в службах Azure не используйте дефисы при именовании ресурсов. Кроме того, вы не создаете имя региона. Имя региона определяется Azure.

Перечисление регионов Azure

Если вы не уверены в фактическом имени региона, используйте эту команду, чтобы получить список:

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

az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

Последовательность

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

Создание учетной записи хранения

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

Создание учетной записи хранения Azure с помощью интерфейса командной строки

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

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

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

Список доступных расположений с помощью интерфейса командной строки

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

az account list-locations

Создание группы ресурсов с помощью интерфейса командной строки

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

az group create -n <resourceGroupName> --location chooseLocation

Выбор номера SKU

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

Выберите номер SKU из следующего списка: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Измените myStorageAccount на уникальное имя с длиной менее 24 символов.
  • Измените chooseLocation в регион, в который вы хотите работать.
  • Измените chooseSKU на предпочитаемый номер SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Создание учетной записи служб мультимедиа с субъектом-службой (управляемым удостоверением)

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

Важный

Важно, чтобы в команде использовался флаг --mi. В противном случае вы не сможете найти principalId для последующего шага.

Следующая команда Azure CLI создает новую учетную запись служб мультимедиа. Замените следующие значения: your-media-services-account-nameyour-storage-account-nameи your-resource-group-name именами, которые вы хотите использовать. Команда предполагает, что вы уже создали группу ресурсов и учетную запись хранения.

Она предоставляет учетной записи служб мультимедиа управляемое удостоверение, назначенное системой, с флагом --mi-system-assigned.


az ams account create --name <your-media-services-account-name> --resource-group <your-resource-group-name> --mi-system-assigned --storage-account <your-storage-account-name>

Пример ответа JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/your-resource-group/providers/Microsoft.Media/mediaservices/your-media-services-account-name",
  "identity": {
    "principalId": "00000000-0000-0000-0000-00000000",
    "tenantId": "00000000-0000-0000-0000-00000000",
    "type": "SystemAssigned"
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-00000000",
  "name": "your-media-services-account-name",
  "resourceGroup": "your-resource-group",
  "storageAccounts": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/mediatest1rg/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System",
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Предоставление управляемому удостоверению служб мультимедиа доступ к учетной записи хранения

Предоставьте управляемому удостоверению служб мультимедиа доступ к учетной записи хранения. Существует три команды:

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

Первая команда ниже показывает управляемое удостоверение учетной записи служб мультимедиа, которая является principalId, указанной в JSON, возвращаемой командой.

Эта команда отображает все свойства учетной записи служб мультимедиа.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Заметка

Если у вас назначены роли доступа к учетной записи служб мультимедиа, эта строка вернет "storageAuthentication": "ManagedIdentity".

Пример ответа JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Создание назначения роли участника BLOB-объектов хранилища

Следующая команда создает роль участника BLOB-объектов хранилища.

Измените assignee на principalId. Команда предполагает, что вы уже создали группу ресурсов и учетную запись хранения. Используйте your-resource-group-name и your-storage-account-name как часть значения scope, как показано в следующей команде:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Storage Blob Data Contributor" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/<your-resource-group-name>/providers/Microsoft.Storage/storageAccounts/<your-storage-account-name>"

Пример ответа JSON:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "ServicePrincipal",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

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

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

Измените assignee на principalId. Команда предполагает, что вы уже создали группу ресурсов и учетную запись хранения. Используйте your-resource-group-name и your-storage-account-name как часть значения scope, как показано в следующей команде:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Reader" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name"

Пример ответа JSON:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "Reader",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

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

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

В приведенной ниже команде измените your-resource-group-name на имя группы ресурсов и your-media-services-account-nameв имя учетной записи служб мультимедиа, с которой вы хотите работать:

az ams account storage set-authentication --storage-auth ManagedIdentity --resource-group <your-resource-group_name> --account-name <your-media-services-account-name>

Пример ответа JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-00000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-storage-account-name",
  "identity": null,
  "location": "West US 2",
  "mediaServiceId": "00000000-0000-0000-00000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "ManagedIdentity",
  "systemData": {
    "createdAt": "2021-05-17T19:15:00.8850297Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-17T21:23:11.3863627Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Ратификация

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

Эта команда отображает все свойства учетной записи служб мультимедиа.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Заметка

Если у вас назначены роли доступа к учетной записи служб мультимедиа, эта строка вернет "storageAuthentication": "ManagedIdentity".

Пример ответа JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Свойство storageAuthentication должно отображаться "ManagedIdentity".

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

Очистка ресурсов

Если вы не планируете использовать созданные ресурсы, удалите группу ресурсов.

Удаление группы ресурсов с помощью интерфейса командной строки

az group delete --name <your-resource-group-name>

Получение справки и поддержки

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