Esercitazione: Accedere all'archiviazione con un'identità gestita di Servizi multimediali

Logo servizi multimediali v3


Avviso

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.

Nota

Le identità gestite sono disponibili solo per gli account di Servizi multimediali creati usando l'API v3. Se si usa l'API v2 e si desidera usare le identità gestite, eseguire la migrazione da v2 a v3 Eseguire la migrazione da Servizi multimediali v2 a v3 introduzione.

Se si vuole accedere a un account di archiviazione quando l'account di archiviazione è configurato per bloccare le richieste da indirizzi IP sconosciuti, l'account Servizi multimediali deve essere concesso l'accesso all'account di archiviazione. Seguire questa procedura per creare un'identità gestita per l'account servizi multimediali e concedere l'accesso all'archiviazione tramite l'interfaccia della riga di comando di Servizi multimediali.

L'account di Servizi multimediali usa un'identità gestita per accedere all'archiviazione

Questa esercitazione usa l'API Servizi multimediali 2020-05-01.

Panoramica

Avviso

Non è possibile usare URL JobInputHTTP o SAS con un account di archiviazione non associato a un account di Servizi multimediali. Questi sono progettati per praticità per i clienti che hanno contenuto esistente a cui è possibile accedere usando HTTP(S), ad esempio se si dispone di file multimediali in un server pubblico o archiviati con un altro provider cloud. Se si creano nuove soluzioni, usare Asset per gli input del processo.

Per proteggere l'accesso a un account di archiviazione usato da Servizi multimediali:

  • Configurare l'account di archiviazione per negare tutti gli indirizzi IP (o consentire solo gli indirizzi IP nella rete del cliente)
  • Configurare l'account di archiviazione per consentire l'accesso a "AzureServices"
  • Configurare Servizi multimediali per accedere all'account di archiviazione usando l'identità gestita
  • Caricare il contenuto multimediale in Asset di Servizi multimediali
  • Creare processi di codifica che usano asset di Servizi multimediali come input del processo. NON usare URL DI firma di accesso condiviso o JobInputHTTP.

Accedere ad Azure

Per usare uno dei comandi di questo articolo, è prima necessario accedere alla sottoscrizione che si vuole usare.

Accedere ad Azure. Quando si usa questo comando, verrà richiesto di specificare la sottoscrizione che si vuole usare.

az login

Impostare la sottoscrizione

Usare questo comando per impostare la sottoscrizione con cui si vuole usare.

Impostare la sottoscrizione di Azure con l'interfaccia della riga di comando

Nel comando seguente specificare l'ID della sottoscrizione di Azure che si vuole usare per l'account di Servizi multimediali.

az account set --subscription <subscriptionName>

Nomi di risorse

Prima di iniziare, decidere i nomi delle risorse create. Devono essere facilmente identificabili come set, soprattutto se non si prevede di usarli dopo aver eseguito il test. Le regole di denominazione sono diverse per molti tipi di risorse, quindi è consigliabile attenersi a tutte le minuscole. Ad esempio, "mediatest1rg" per il nome del gruppo di risorse e "mediatest1stor" per il nome dell'account di archiviazione. Usare gli stessi nomi per ogni passaggio di questo articolo.

Verranno visualizzati questi nomi a cui si fa riferimento nei comandi seguenti. I nomi delle risorse necessari sono:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • posizione

Nota

I trattini precedenti vengono usati solo per separare le parole guida. A causa della incoerenza della denominazione delle risorse nei servizi di Azure, non usare trattini quando si denominano le risorse. Inoltre, non si crea il nome dell'area. Il nome dell'area è determinato da Azure.

Elencare le aree di Azure

Se non si è certi del nome dell'area effettiva da usare, usare questo comando per ottenere un elenco:

Usare questo comando per elencare le aree disponibili per l'account.

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

Sequenza

Ognuno dei passaggi seguenti viene eseguito in un ordine specifico perché uno o più valori delle risposte JSON vengono usati nel passaggio successivo della sequenza.

Creare un account di archiviazione

L'account servizi multimediali creato deve avere un account di archiviazione associato. Creare prima l'account di archiviazione per l'account Servizi multimediali. Si userà il nome dell'account di archiviazione che sostituisce myStorageAccount per i passaggi successivi.

Creare un account di archiviazione di Azure con l'interfaccia della riga di comando

Usare i comandi seguenti per creare un account di archiviazione di Azure.

Per creare un account di archiviazione, è prima necessario creare un gruppo di risorse all'interno di una posizione.

Per elencare i percorsi disponibili, usare il comando seguente:

Elencare le posizioni disponibili con l'interfaccia della riga di comando

Per elencare i percorsi disponibili, usare il comando seguente:

az account list-locations

Creare un gruppo di risorse con l'interfaccia della riga di comando

Per creare un gruppo di risorse, usare il comando seguente:

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

Scegliere uno SKU

È anche necessario scegliere uno SKU per l'account di archiviazione. È possibile elencare gli account di archiviazione.

Scegliere uno SKU dall'elenco seguente: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Passare myStorageAccount a un nome univoco con lunghezza inferiore a 24 caratteri.
  • Passare chooseLocation all'area in cui si vuole lavorare.
  • Passare chooseSKU allo SKU preferito.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Creare un account di Servizi multimediali con un'entità servizio (identità gestita)

Creare ora l'account servizi multimediali con un'entità servizio, altrimenti noto come identità gestita.

Importante

È importante ricordare di usare il flag --mi nel comando. In caso contrario, non sarà possibile trovare l'oggetto principalId per un passaggio successivo.

Il comando seguente dell'interfaccia della riga di comando di Azure consente di creare un nuovo account di Servizi multimediali. Sostituire i valori seguenti: your-media-services-account-nameyour-storage-account-namee your-resource-group-name con i nomi da usare. Il comando presuppone che sia già stato creato un gruppo di risorse e un account di archiviazione.

Fornisce all'account Servizi multimediali un'identità gestita assegnata dal sistema con il --mi-system-assigned flag.


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>

Risposta di esempio 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"
}

Concedere l'accesso all'identità gestita di Servizi multimediali all'account di archiviazione

Concedere l'accesso all'identità gestita di Servizi multimediali all'account di archiviazione. Sono disponibili tre comandi:

Ottenere (show) l'identità gestita dell'account servizi multimediali

Il primo comando seguente mostra l'identità gestita dell'account di Servizi multimediali che è l'elenco principalId nel codice JSON restituito dal comando.

Questo comando mostra tutte le proprietà di un account di Servizi multimediali.

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

Nota

Se sono stati assegnati ruoli di accesso all'account Servizi multimediali, questa riga restituirà "storageAuthentication": "ManagedIdentity".

Risposta di esempio 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"
}

Creare l'assegnazione di ruolo Collaboratore BLOB di archiviazione

Il comando seguente crea un ruolo Collaboratore BLOB di archiviazione.

Passare assignee a principalId. Il comando presuppone che sia già stato creato un gruppo di risorse e un account di archiviazione. Usare your-resource-group-name e your-storage-account-name come parte del scope valore come illustrato nel comando seguente:

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

Risposta di esempio 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"
}

Creare l'assegnazione di ruolo Lettore

Il comando seguente crea un ruolo Lettore.

Passare assignee a principalId. Il comando presuppone che sia già stato creato un gruppo di risorse e un account di archiviazione. Usare your-resource-group-name e your-storage-account-name come parte del scope valore come illustrato nel comando seguente:

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"

Risposta di esempio 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"
}

Usare l'identità gestita per accedere all'account di archiviazione

Il comando seguente consente a Un'identità gestita di Servizi multimediali di accedere a un account di archiviazione.

Nel comando seguente passare your-resource-group-name al nome del gruppo di risorse e your-media-services-account-nameal nome dell'account di Servizi multimediali con cui si vuole usare:

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

Risposta di esempio 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"
}

Convalida

Per verificare che l'account sia crittografato usando una chiave gestita dal cliente, visualizzare le proprietà di crittografia dell'account:

Questo comando mostra tutte le proprietà di un account di Servizi multimediali.

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

Nota

Se sono stati assegnati ruoli di accesso all'account Servizi multimediali, questa riga restituirà "storageAuthentication": "ManagedIdentity".

Risposta di esempio 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 storageAuthentication proprietà deve visualizzare "ManagedIdentity".

Per una convalida aggiuntiva, è possibile controllare i log di Archiviazione di Azure per vedere quale metodo di autenticazione viene usato per ogni richiesta.

Pulire le risorse

Se non si prevede di usare le risorse create, eliminare il gruppo di risorse.

Eliminare un gruppo di risorse con l'interfaccia della riga di comando

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

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in base a uno dei metodi seguenti: