Zelfstudie: Toegang tot opslag met een beheerde identiteit van Media Services

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de Handleiding voor buitengebruikstelling van AMS voor meer informatie.

Notitie

Beheerde identiteiten zijn alleen beschikbaar voor Media Services-accounts die zijn gemaakt met de v3-API. Als u de v2-API gebruikt en beheerde identiteiten wilt gebruiken, migreert u van v2 naar v3 Migreren van Media Services v2 naar v3 inleiding.

Als u toegang wilt krijgen tot een opslagaccount wanneer het opslagaccount is geconfigureerd om aanvragen van onbekende IP-adressen te blokkeren, moet het Media Services-account toegang krijgen tot het opslagaccount. Volg de onderstaande stappen om een beheerde identiteit voor het Media Services-account te maken en deze identiteit toegang te verlenen tot opslag met behulp van de Media Services CLI.

Media Services-account gebruikt een beheerde identiteit voor toegang tot opslag

In deze zelfstudie wordt de Media Services-API 2020-05-01 gebruikt.

Overzicht

Waarschuwing

U kunt JobInputHTTP- of SAS-URL's niet gebruiken met een opslagaccount dat niet is gekoppeld aan een Media Services-account. Deze zijn bedoeld als een gemak voor klanten die bestaande inhoud hebben die kan worden geopend via HTTP(S), bijvoorbeeld als u mediabestanden op een openbare server hebt of bij een andere cloudprovider hebt opgeslagen. Als u nieuwe oplossingen bouwt, gebruikt u Assets voor taakinvoer.

De toegang tot een opslagaccount beveiligen dat wordt gebruikt door Media Services:

  • Configureer het opslagaccount om alle IP-adressen te weigeren (of alleen IP-adressen in het netwerk van de klant toe te staan)
  • Het opslagaccount configureren om toegang tot 'AzureServices' toe te staan
  • Media Services configureren voor toegang tot het opslagaccount met behulp van beheerde identiteit
  • Media-inhoud uploaden naar Media Services-assets
  • Maak coderingstaken die Media Services-assets gebruiken als taakinvoer. GEBRUIK GEEN SAS-URL'S of JobInputHTTP.

Aanmelden bij Azure

Als u een van de opdrachten in dit artikel wilt gebruiken, moet u eerst zijn aangemeld bij het abonnement dat u wilt gebruiken.

Meld u aan bij Azure. Wanneer u deze opdracht gebruikt, wordt u gevraagd om het abonnement dat u wilt gebruiken.

az login

Abonnement instellen

Gebruik deze opdracht om het abonnement in te stellen waarmee u wilt werken.

Het Azure-abonnement instellen met de CLI

Geef in de volgende opdracht de id van het Azure-abonnement op dat u wilt gebruiken voor het Media Services-account.

az account set --subscription <subscriptionName>

Resourcenamen

Voordat u begint, bepaalt u de namen van de resources die u gaat maken. Ze moeten gemakkelijk te herkennen zijn als een set, vooral als u niet van plan bent om ze te gebruiken nadat u klaar bent met testen. Naamgevingsregels verschillen voor veel resourcetypen, dus het is het beste om alleen kleine letters te gebruiken. Bijvoorbeeld 'mediatest1rg' voor de naam van de resourcegroep en 'mediatest1stor' voor de naam van uw opslagaccount. Gebruik dezelfde namen voor elke stap in dit artikel.

U ziet dat naar deze namen wordt verwezen in de onderstaande opdrachten. De namen van resources die u nodig hebt, zijn:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • location

Notitie

De bovenstaande afbreekstreepjes worden alleen gebruikt om hulpwoorden van elkaar te scheiden. Vanwege de inconsistentie van de naamgeving van resources in Azure-services, mag u geen afbreekstreepjes gebruiken wanneer u uw resources een naam geeft. U maakt ook geen regionaam. De regionaam wordt bepaald door Azure.

Azure-regio's weergeven

Als u niet zeker weet welke regionaam u daadwerkelijk wilt gebruiken, gebruikt u deze opdracht om een vermelding op te halen:

Gebruik deze opdracht om de regio's weer te geven die beschikbaar zijn voor uw account.

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

Reeks

Elk van de onderstaande stappen wordt uitgevoerd in een bepaalde volgorde, omdat een of meer waarden uit de JSON-antwoorden worden gebruikt in de volgende stap in de reeks.

Een opslagaccount maken

Aan het Media Services-account dat u maakt, moet een opslagaccount zijn gekoppeld. Maak eerst het opslagaccount voor het Media Services-account. U gebruikt de naam van het opslagaccount die myStorageAccount vervangt voor de volgende stappen.

Een Azure Storage-account maken met de CLI

Gebruik de volgende opdrachten om een Azure Storage-account te maken.

Als u een opslagaccount wilt maken, moet u eerst een resourcegroep binnen een locatie maken.

Gebruik de volgende opdracht om beschikbare locaties weer te geven:

Beschikbare locaties weergeven met de CLI

Gebruik de volgende opdracht om beschikbare locaties weer te geven:

az account list-locations

Een resourcegroep maken met de CLI

Gebruik de volgende opdracht om een resourcegroep te maken:

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

Een SKU kiezen

U moet ook een SKU voor uw opslagaccount kiezen. U kunt opslagaccounts weergeven.

Kies een SKU in de volgende lijst: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Wijzig myStorageAccount in een unieke naam met een lengte van minder dan 24 tekens.
  • Wijzig chooseLocation in de regio waar u wilt werken.
  • Wijzig in chooseSKU de SKU van uw voorkeur.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Een Media Services-account maken met een service-principal (beheerde identiteit)

Maak nu het Media Services-account met een service-principal, ook wel een beheerde identiteit genoemd.

Belangrijk

Het is belangrijk dat u de vlag --mi in de opdracht gebruikt. Anders kunt u de principalId niet vinden voor een latere stap.

Met de volgende Azure CLI-opdracht wordt een nieuwe Media Services-account gemaakt. Vervang de volgende waarden: your-media-services-account-nameyour-storage-account-name, en your-resource-group-name door de namen die u wilt gebruiken. Bij de opdracht wordt ervan uitgegaan dat u al een resourcegroep en een opslagaccount hebt gemaakt.

Hiermee krijgt het Media Services-account een door het systeem toegewezen beheerde identiteit met de --mi-system-assigned vlag.


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>

Voorbeeld van JSON-antwoord:

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

De beheerde identiteit van Media Services toegang verlenen tot het opslagaccount

De beheerde identiteit van Media Services toegang verlenen tot het opslagaccount. Er zijn drie opdrachten:

De beheerde identiteit van het Media Services-account ophalen (weergeven)

Met de eerste opdracht hieronder ziet u de beheerde identiteit van het Media Services-account. Deze wordt vermeld in de JSON die door de opdracht wordt principalId geretourneerd.

Met deze opdracht worden alle eigenschappen van een Media Services-account weergegeven.

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

Notitie

Als u toegangsrollen hebt toegewezen aan het Media Services-account, retourneert "storageAuthentication": "ManagedIdentity"deze regel .

Voorbeeld van JSON-antwoord:

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

De roltoewijzing Storage Blob-inzender maken

Met de volgende opdracht maakt u de rol Inzender voor opslagblob.

Wijzig assignee in de principalId. Bij de opdracht wordt ervan uitgegaan dat u al een resourcegroep en een opslagaccount hebt gemaakt. Gebruik your-resource-group-name en your-storage-account-name als onderdeel van de scope waarde, zoals wordt weergegeven in de onderstaande opdracht:

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

Voorbeeld van JSON-antwoord:

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

De roltoewijzing Lezer maken

Met de volgende opdracht maakt u de rol Lezer.

Wijzig assignee in de principalId. Bij de opdracht wordt ervan uitgegaan dat u al een resourcegroep en een opslagaccount hebt gemaakt. Gebruik your-resource-group-name en your-storage-account-name als onderdeel van de scope waarde, zoals wordt weergegeven in de onderstaande opdracht:

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"

Voorbeeld van JSON-antwoord:

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

Beheerde identiteit gebruiken voor toegang tot het opslagaccount

Met de volgende opdracht krijgt een beheerde identiteit van Media Services toegang tot een opslagaccount.

Wijzig in de onderstaande your-resource-group-name opdracht in de naam van de resourcegroep en your-media-services-account-namein de naam van het Media Services-account waarmee u wilt werken:

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

Voorbeeld van JSON-antwoord:

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

Validatie

Als u wilt controleren of het account is versleuteld met behulp van een door de klant beheerde sleutel, bekijkt u de eigenschappen van de accountversleuteling:

Met deze opdracht worden alle eigenschappen van een Media Services-account weergegeven.

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

Notitie

Als u toegangsrollen hebt toegewezen aan het Media Services-account, retourneert "storageAuthentication": "ManagedIdentity"deze regel .

Voorbeeld van JSON-antwoord:

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

De storageAuthentication eigenschap moet 'ManagedIdentity' weergeven.

Voor aanvullende validatie kunt u de Azure Storage-logboeken controleren om te zien welke verificatiemethode voor elke aanvraag wordt gebruikt.

Resources opschonen

Als u niet van plan bent om de resources te gebruiken die u hebt gemaakt, verwijdert u de resourcegroep.

Een resourcegroep verwijderen met de CLI

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

Help en ondersteuning

U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen: