Compartir a través de


Tutorial: Acceso al almacenamiento con una identidad administrada de Media Services

logotipo de Media Services v3


Advertencia

Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS de .

Nota

Las identidades administradas solo están disponibles para las cuentas de Media Services creadas mediante la API v3. Si usa la API v2 y desea usar identidades administradas, migre de v2 a v3 Migración de Media Services v2 a v3.

Si desea acceder a una cuenta de almacenamiento cuando la cuenta de almacenamiento está configurada para bloquear las solicitudes de direcciones IP desconocidas, se debe conceder acceso a la cuenta de Media Services a la cuenta de almacenamiento. Siga los pasos siguientes para crear una identidad administrada para la cuenta de Media Services y conceder a esta identidad acceso al almacenamiento mediante la CLI de Media Services.

cuenta de Media Services usa una identidad administrada para acceder al almacenamiento

En este tutorial se usa la API de Media Services 2020-05-01.

Visión general

Advertencia

No puede usar direcciones URL de JobInputHTTP o SAS con una cuenta de almacenamiento que no esté asociada a una cuenta de Media Services. Estos están diseñados como una comodidad para los clientes que tienen contenido existente a los que se puede acceder mediante HTTP(S), por ejemplo, si tiene archivos multimedia en un servidor público o almacenados con otro proveedor de nube. Si va a crear nuevas soluciones, use Activos para entradas de trabajo.

Para proteger el acceso a una cuenta de almacenamiento usada por Media Services:

  • Configure la cuenta de almacenamiento para denegar todas las direcciones IP (o solo permitir direcciones IP en la red del cliente).
  • Configuración de la cuenta de almacenamiento para permitir el acceso a "AzureServices"
  • Configuración de Media Services para acceder a la cuenta de almacenamiento mediante identidad administrada
  • Carga de contenido multimedia en recursos de Media Services
  • Cree trabajos de codificación que usen recursos de Media Services como entrada del trabajo. NO usar DIRECCIONES URL de SAS o JobInputHTTP.

Inicio de sesión en Azure

Para usar cualquiera de los comandos de este artículo, primero debe iniciar sesión en la suscripción que desea usar.

Inicie sesión en Azure. Al usar este comando, se le pedirá la suscripción que desea usar.

az login

Establecer suscripción

Use este comando para establecer la suscripción con la que desea trabajar.

Establecimiento de la suscripción de Azure con la CLI

En el comando siguiente, proporcione el identificador de suscripción de Azure que desea usar para la cuenta de Media Services.

az account set --subscription <subscriptionName>

Nombres de recursos

Antes de empezar, decida los nombres de los recursos que va a crear. Deben ser fácilmente identificables como un conjunto, especialmente si no planea usarlos después de que haya terminado las pruebas. Las reglas de nomenclatura son diferentes para muchos tipos de recursos, por lo que es mejor seguir con mayúsculas y minúsculas. Por ejemplo, "mediatest1rg" para el nombre del grupo de recursos y "mediatest1stor" para el nombre de la cuenta de almacenamiento. Use los mismos nombres para cada paso de este artículo.

Verá estos nombres a los que se hace referencia en los comandos siguientes. Los nombres de los recursos que necesitará son:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • ubicación

Nota

Los guiones anteriores solo se usan para separar las palabras de guía. Debido a la incoherencia de asignar nombres a los recursos en los servicios de Azure, no use guiones al asignar un nombre a los recursos. Además, no cree el nombre de la región. Azure determina el nombre de la región.

Enumeración de regiones de Azure

Si no está seguro del nombre de región real que se va a usar, use este comando para obtener una descripción:

Use este comando para enumerar las regiones disponibles para su cuenta.

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

Secuencia

Cada uno de los pasos siguientes se realiza en un orden determinado porque se usan uno o varios valores de las respuestas JSON en el siguiente paso de la secuencia.

Creación de una cuenta de almacenamiento

La cuenta de Media Services que va a crear debe tener una cuenta de almacenamiento asociada. Cree primero la cuenta de almacenamiento para la cuenta de Media Services. Usará el nombre de la cuenta de almacenamiento que reemplaza myStorageAccount para los pasos posteriores.

Creación de una cuenta de Azure Storage con la CLI

Use los comandos siguientes para crear una cuenta de Azure Storage.

Para crear una cuenta de almacenamiento, primero debe crear un grupo de recursos dentro de una ubicación.

Para enumerar las ubicaciones disponibles, use el siguiente comando:

Enumeración de ubicaciones disponibles con la CLI

Para enumerar las ubicaciones disponibles, use el siguiente comando:

az account list-locations

Creación de un grupo de recursos con la CLI

Para crear un grupo de recursos, use el siguiente comando:

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

Elección de una SKU

También debe elegir una SKU para la cuenta de almacenamiento. Puede enumerar las cuentas de almacenamiento.

Elija una SKU en la lista siguiente: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS Standard_RAGZRS.

  • Cambie myStorageAccount a un nombre único con una longitud de menos de 24 caracteres.
  • Cambie chooseLocation a la región en la que desea trabajar.
  • Cambie chooseSKU a su SKU preferida.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Creación de una cuenta de Media Services con una entidad de servicio (identidad administrada)

Ahora cree la cuenta de Media Services con una entidad de servicio, lo que se conoce como identidad administrada.

Importante

Es importante que recuerde usar la marca --mi en el comando . De lo contrario, no podrá encontrar el principalId para un paso posterior.

El siguiente comando de la CLI de Azure crea una nueva cuenta de Media Services. Reemplace los valores siguientes: your-media-services-account-nameyour-storage-account-namey your-resource-group-name por los nombres que desea usar. El comando supone que ya ha creado un grupo de recursos y una cuenta de almacenamiento.

Proporciona a la cuenta de Media Services una identidad administrada asignada por el sistema con la marca --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>

Respuesta JSON de ejemplo:

{
  "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"
}

Concesión de acceso a la identidad administrada de Media Services a la cuenta de almacenamiento

Conceda a la identidad administrada de Media Services acceso a la cuenta de almacenamiento. Hay tres comandos:

Obtener (mostrar) la identidad administrada de la cuenta de Media Services

El primer comando siguiente muestra la identidad administrada de la cuenta de Media Services, que es el principalId que aparece en el código JSON devuelto por el comando .

Este comando muestra todas las propiedades de una cuenta de Media Services.

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

Nota

Si ha asignado roles de acceso a la cuenta de Media Services, esta línea devolverá "storageAuthentication": "ManagedIdentity".

Respuesta JSON de ejemplo:

{
  "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"
}

Creación de la asignación de roles Colaborador de blobs de Storage

El comando siguiente crea un rol colaborador de Blob storage.

Cambie assignee a la principalId. El comando supone que ya ha creado un grupo de recursos y una cuenta de almacenamiento. Use your-resource-group-name y your-storage-account-name como parte del valor de scope como se muestra en el comando siguiente:

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>"

Respuesta JSON de ejemplo:

{
  "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"
}

Creación de la asignación de roles lector

El comando siguiente crea un rol lector.

Cambie assignee a la principalId. El comando supone que ya ha creado un grupo de recursos y una cuenta de almacenamiento. Use your-resource-group-name y your-storage-account-name como parte del valor de scope como se muestra en el comando siguiente:

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"

Respuesta JSON de ejemplo:

{
  "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"
}

Uso de la identidad administrada para acceder a la cuenta de almacenamiento

El comando siguiente proporciona acceso a la identidad administrada de Media Services a una cuenta de almacenamiento.

En el comando siguiente, cambie your-resource-group-name al nombre del grupo de recursos y your-media-services-account-nameal nombre de la cuenta de Media Services con el que desea trabajar:

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

Respuesta JSON de ejemplo:

{
  "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"
}

Validación

Para comprobar que la cuenta está cifrada mediante una clave administrada por el cliente, vea las propiedades de cifrado de la cuenta:

Este comando muestra todas las propiedades de una cuenta de Media Services.

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

Nota

Si ha asignado roles de acceso a la cuenta de Media Services, esta línea devolverá "storageAuthentication": "ManagedIdentity".

Respuesta JSON de ejemplo:

{
  "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"
}

La propiedad storageAuthentication debe mostrar "ManagedIdentity".

Para obtener una validación adicional, puede comprobar los registros de Azure Storage para ver qué método de autenticación se usa para cada solicitud.

Limpieza de recursos

Si no planea usar los recursos que ha creado, elimine el grupo de recursos.

Eliminación de un grupo de recursos con la CLI

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

Obtener ayuda y soporte técnico

Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes: