Share via


Tutoriel : Accéder à un stockage avec une identité managée Media Services

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Notes

Les identités managées sont uniquement disponibles pour les comptes Media Services créés à l’aide de l’API v3. Si vous utilisez l’API v2 et souhaitez utiliser des identités managées, effectuez une migration de la v2 vers la v3 Introduction à la migration de Media Services v2 vers la version 3.

Si vous souhaitez accéder à un compte de stockage configuré pour bloquer les demandes en provenance d’adresses IP inconnues, le compte Media Services doit avoir accès au compte de stockage. Suivez les étapes ci-dessous pour créer une identité managée pour le compte Media Services et accorder à celle-ci l’accès au stockage en utilisant l’interface de ligne de commande Media Services.

Le compte Media Services utilise une identité managée pour accéder au stockage

Ce tutoriel utilise l’API Media Services 2020-05-01.

Vue d’ensemble

Avertissement

Vous ne pouvez pas utiliser des URL JobInputHTTP ou SAS avec un compte de stockage qui n’est pas associé à un compte Media Services. Il s’agit d’une solution pratique pour les clients qui disposent d’un contenu existant accessible à l’aide de HTTP(S), par exemple si vous avez des fichiers multimédias sur un serveur public ou stockés avec un autre fournisseur de cloud. Si vous générez de nouvelles solutions, utilisez des ressources pour les entrées de travail.

Pour sécuriser l’accès à un compte de stockage utilisé par Media Services :

  • Configurez le compte de stockage pour refuser toutes les adresses IP (ou autoriser uniquement les adresses IP dans le réseau du client)
  • Configurez le compte de stockage pour autoriser l’accès à « AzureServices »
  • Configurez Media Services pour accéder au compte de stockage à l’aide d’une identité managée
  • Chargez du contenu multimédia dans les ressources Media Services
  • Créez des travaux d’encodage qui utilisent les ressources Media Services comme entrée de travail. N’utilisez PAS d’URL SAS ou JobInputHTTP.

Connexion à Azure

Pour utiliser l’une des commandes de cet article, vous devez d’abord être connecté à l’abonnement que vous souhaitez utiliser.

Connectez-vous à Azure. Lorsque vous utilisez cette commande, vous êtes invité à entrer l’abonnement que vous souhaitez utiliser.

az login

Définir l’abonnement

Utilisez cette commande pour définir l’abonnement que vous souhaitez utiliser.

Définir l’abonnement Azure avec l’interface CLI

Dans la commande suivante, fournissez l’ID d’abonnement Azure que vous souhaitez utiliser pour le compte Media Services.

az account set --subscription <subscriptionName>

Noms de ressource

Avant de commencer, choisissez les noms des ressources que vous allez créer. Ils doivent être aisément identifiables en tant qu’ensemble, surtout si vous ne prévoyez pas de les utiliser une fois les tests terminés. Les règles de nommage variant selon les types de ressources, l’idéal est de s’en tenir aux minuscules. Par exemple, « mediatest1rg » pour le nom de votre groupe de ressources et « mediatest1stor » pour le nom de votre compte de stockage. Utilisez les mêmes noms à chacune des étapes de cet article.

Vous verrez ces noms référencés dans les commandes ci-dessous. Les noms de ressources dont vous aurez besoin sont les suivants :

  • myRG
  • myStorageAccount
  • myAmsAccount
  • location

Notes

Les tirets ci-dessus sont uniquement utilisés pour séparer les mots. Compte tenu de l’incohérence de nommage des ressources dans les services Azure, n’utilisez pas de tirets lorsque vous nommez vos ressources. Par ailleurs, vous ne créez pas le nom de région. Celui-ci est déterminé par Azure.

Liste des régions Azure

Si besoin, utilisez cette commande pour accéder à la liste des régions :

Utilisez cette commande pour répertorier les régions disponibles pour votre compte.

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

Séquence

Chacune des étapes ci-dessous suit un ordre particulier car une ou plusieurs valeurs des réponses JSON sont utilisées à l’étape suivante de la séquence.

Créer un compte de stockage

Un compte de stockage doit être associé au compte Media Services que vous allez créer. Commencez par créer le compte de stockage à associer au compte Media Services. Vous utiliserez le nom du compte de stockage qui remplace myStorageAccount pour les étapes suivantes.

Créer un compte de stockage Azure avec l’interface CLI

Utilisez les commandes suivantes pour créer un compte Stockage Azure.

Pour créer un compte de stockage, vous devez d’abord créer un groupe de ressources dans un emplacement.

Pour répertorier les emplacements disponibles, utilisez la commande suivante :

Lister les emplacements disponibles avec l’interface CLI

Pour répertorier les emplacements disponibles, utilisez la commande suivante :

az account list-locations

Créer un groupe de ressources avec l’interface CLI

Pour créer un groupe de ressources, utilisez la commande suivante :

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

Choisir une référence (SKU)

Vous devez également choisir un niveau tarifaire pour votre compte de stockage. Vous pouvez répertorier les comptes de stockage.

Choisissez un niveau tarifaire dans la liste suivante : Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Remplacez myStorageAccount par un nom unique dont la longueur est inférieure à 24 caractères.
  • Remplacez chooseLocation par la région dans laquelle vous voulez travailler.
  • Remplacez chooseSKU par le niveau tarifaire de votre choix.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Créer un compte Media Services avec un principal de service (identité managée)

Créez maintenant le compte Media Services avec un principal de service, également appelé identité managée.

Important

N’oubliez surtout pas d’utiliser l’indicateur --mi dans la commande. Sinon, vous ne trouverez pas la propriété principalId nécessaire ultérieurement.

La commande suivante de Azure CLI crée un nouveau compte Media Services. Remplacez les valeurs suivantes : your-media-services-account-nameyour-storage-account-name et your-resource-group-name par les noms que vous voulez utiliser. La commande suppose que vous avez déjà créé un groupe de ressources et un compte de stockage.

Cela donne au compte Media Services une identité managée attribuée par le système avec l’indicateur --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>

Exemple de réponse 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"
}

Accorder à l’identité managée Media Services l’accès au compte de stockage

Accordez à l’identité managée Media Services l’accès au compte de stockage. Il y a trois commandes :

Obtenir (afficher) l’identité managée du compte Media Services

La première commande ci-dessous affiche l’identité managée du compte Media Services correspondant à la propriété principalId répertoriée dans le fichier JSON que la commande a retourné.

Cette commande affiche toutes les propriétés d’un compte Media Services.

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

Notes

Si vous avez attribué des rôles d’accès au compte Media Services, cette ligne retourne "storageAuthentication": "ManagedIdentity".

Exemple de réponse JSON :

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "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/00000000-0000-0000-0000-000000000000/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"
}

Créer l’attribution de rôle Contributeur de blob de stockage

La commande suivante crée un rôle Contributeur Storage Blob.

Remplacez assignee par principalId. La commande suppose que vous avez déjà créé un groupe de ressources et un compte de stockage. Utilisez your-resource-group-name et your-storage-account-name dans le cadre de la valeur scope, comme indiqué dans la commande ci-dessous :

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

Exemple de réponse 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"
}

Créer l’attribution de rôle Lecteur

La commande suivante crée un rôle Lecteur.

Remplacez assignee par principalId. La commande suppose que vous avez déjà créé un groupe de ressources et un compte de stockage. Utilisez your-resource-group-name et your-storage-account-name dans le cadre de la valeur scope, comme indiqué dans la commande ci-dessous :

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"

Exemple de réponse 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"
}

Utiliser l’identité managée pour accéder au compte de stockage

La commande suivante donne à une identité managée Media Services accès à un compte de stockage.

Dans la commande ci-dessous, remplacez your-resource-group-name par le nom du groupe de ressources et your-media-services-account-name par le nom du compte Media Services que vous souhaitez utiliser :

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

Exemple de réponse 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/2b461b25-f7b4-4a22-90cc-d640a14b5471/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"
}

Validation

Pour vérifier que le compte est chiffré à l’aide d’une clé gérée par le client, consultez les propriétés de chiffrement du compte :

Cette commande affiche toutes les propriétés d’un compte Media Services.

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

Notes

Si vous avez attribué des rôles d’accès au compte Media Services, cette ligne retourne "storageAuthentication": "ManagedIdentity".

Exemple de réponse JSON :

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "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/00000000-0000-0000-0000-000000000000/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 propriété storageAuthentication doit afficher « ManagedIdentity ».

Pour une validation supplémentaire, vous pouvez consulter les journaux du service Stockage Azure afin de voir quelle méthode d’authentification est utilisée pour chaque demande.

Nettoyer les ressources

Si vous n’avez pas l’intention d’utiliser les ressources que vous avez créées, supprimez le groupe de ressources.

Supprimer un groupe de ressources avec l’interface CLI

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

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour vous poser des questions ou suivre nos mises à jour en suivant l’une des méthodes suivantes :