Tutorial: Zugreifen auf Speicher mit einer verwalteten Media Services-Identität

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.

Hinweis

Verwaltete Identitäten sind nur für Media Services-Konten verfügbar, die mit der v3-API erstellt wurden. Wenn Sie die v2-API verwenden und verwaltete Identitäten verwenden möchten, migrieren Sie von v2 zu v3 Einführung in die Migration von Media Services V2 zu V3.

Wenn Sie auf ein Speicherkonto zugreifen möchten und das Speicherkonto so konfiguriert ist, dass Anforderungen von unbekannten IP-Adressen blockiert werden, muss dem Media Services-Konto Zugriff auf das Speicherkonto gewährt werden. Führen Sie die folgenden Schritte aus, um mithilfe der Media Services-CLI eine verwaltete Identität für das Media Services-Konto zu erstellen und dieser Identität Speicherzugriff zu gewähren.

Verwendung einer verwalteten Identität für den Speicherzugriff durch das Media Services-Konto

In diesem Tutorial wird die Media Services-API 2020-05-01 verwendet.

Übersicht

Warnung

JobInputHTTP- und SAS-URLs können nur mit Speicherkonten verwendet werden, die einem Media Services-Konto zugeordnet sind. Diese URLs sind des Komforts wegen ausschließlich für Kunden vorgesehen, die über bestehende Inhalte verfügen, auf die über HTTP(S) zugegriffen werden kann – beispielsweise Mediendateien, die auf einem öffentlichen Server bereitgestellt werden oder bei einem anderen Cloudanbieter gespeichert sind. Wenn Sie neue Lösungen erstellen, sollten Sie als Auftragseingaben Medienobjekte verwenden.

So schützen Sie ein von Media Services verwendetes Speicherkonto vor unberechtigtem Zugriff:

  • Konfigurieren Sie das Speicherkonto so, dass alle IP-Adressen blockiert werden (oder lassen Sie nur IP-Adressen des Kundennetzwerks zu).
  • Konfigurieren Sie das Speicherkonto so, dass der Zugriff auf „AzureServices“ erlaubt ist.
  • Konfigurieren Sie Media Services so, dass der Zugriff auf das Speicherkonto über eine verwaltete Identität erfolgt.
  • Laden Sie Medieninhalte in Media Services-Medienobjekte hoch
  • Erstellen Sie Codierungsaufträge, die als Auftragseingabe Media Services-Medienobjekte verwenden. Verwenden Sie KEINE SAS-URLs oder JobInputHTTP.

Anmelden bei Azure

Um die Befehle in diesem Artikel verwenden zu können, müssen Sie bei dem Abonnement angemeldet sein, das Sie verwenden möchten.

Melden Sie sich bei Azure an. Wenn Sie diesen Befehl verwenden, werden Sie zur Eingabe des Abonnements aufgefordert, das Sie verwenden möchten.

az login

Festlegen des Abonnements

Verwenden Sie den folgenden Befehl, um das Abonnement festzulegen, mit dem Sie arbeiten möchten.

Festlegen des Azure-Abonnements mit der CLI

Geben Sie im folgenden Befehle die ID des Azure-Abonnements an, das Sie für das Media Services-Konto verwenden möchten.

az account set --subscription <subscriptionName>

Ressourcennamen

Überlegen Sie sich zunächst, wie die von Ihnen erstellten Ressourcen heißen sollen. Sie sollten problemlos als Gruppe identifizierbar sein – insbesondere, wenn Sie nicht vorhaben, sie nach dem Testen weiter zu verwenden. Da sich Benennungsregeln für viele Ressourcentypen unterscheiden, empfiehlt es sich, nur Kleinbuchstaben zu verwenden. Beispiel: „mediatest1rg“ für den Namen Ihrer Ressourcengruppe und „mediatest1stor“ für den Namen Ihres Speicherkontos. Verwenden Sie für jeden Schritt in diesem Artikel die gleichen Namen.

Auf diese Namen wird in den Befehlen weiter unten verwiesen. Sie benötigen Namen für folgende Ressourcen:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • location

Hinweis

Die Bindestriche dienen lediglich zur besseren Lesbarkeit. Verwenden Sie aufgrund der Inkonsistenz bei der Benennung von Ressourcen in Azure-Diensten keine Bindestriche in Ihren Ressourcennamen. Der Regionsname wird außerdem nicht von Ihnen erstellt, sondern von Azure bestimmt.

Auflisten der Azure-Regionen

Falls Sie nicht genau wissen, welchen Regionsnamen Sie verwenden sollen, können Sie mithilfe des folgenden Befehls eine Liste abrufen:

Verwenden Sie diesen Befehl, um die für Ihr Konto verfügbaren Regionen aufzulisten.

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

Sequenz

Die folgenden Schritte werden in einer bestimmten Reihenfolge ausgeführt, da jeweils einzelne oder mehrere Werte aus den JSON-Antworten im nächsten Schritt der Sequenz verwendet werden.

Erstellen eines Speicherkontos

Dem von Ihnen erstellten Media Services-Konto muss ein Speicherkonto zugeordnet sein. Erstellen Sie zuerst das Speicherkonto für das Media Services-Konto. Sie verwenden den Speicherkontonamen, der in nachfolgenden Schritten myStorageAccount ersetzt.

Erstellen eines Azure Storage-Kontos mit der CLI

Erstellen Sie mit den folgenden Befehlen ein Azure-Speicherkonto.

Um ein Speicherkonto zu erstellen, müssen Sie zuerst eine Ressourcengruppe an einem Standort erstellen.

Zur Auflistung der verfügbaren Standorte verwenden Sie den folgenden Befehl:

Auflisten verfügbarer Standorte mit der CLI

Zur Auflistung der verfügbaren Standorte verwenden Sie den folgenden Befehl:

az account list-locations

Erstellen einer Ressourcengruppe mit der CLI

Führen Sie den folgenden Befehl aus, um eine Ressourcengruppe zu erstellen:

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

Auswählen einer SKU

Sie müssen auch eine SKU für Ihr Speicherkonto auswählen. Sie können Speicherkonten auflisten.

Wählen Sie eine SKU aus der folgenden Liste aus: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Ändern Sie myStorageAccount in einen eindeutigen Namen mit einer Länge von weniger als 24 Zeichen.
  • Ändern Sie chooseLocation in die Region, in der Sie arbeiten möchten.
  • Ändern Sie chooseSKU in Ihre bevorzugte SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Erstellen eines Media Services-Kontos mit einem Dienstprinzipal (verwaltete Identität)

Erstellen Sie nun das Media Services-Konto mit einem Dienstprinzipal. Dieser wird auch als verwaltete Identität bezeichnet.

Wichtig

Wichtig: In dem Befehl muss das Flag „--mi“ verwendet werden. Andernfalls finden Sie die für einen späteren Schritt benötigte Prinzipal-ID (principalId) nicht.

Der folgende Azure CLI-Befehl erstellt ein neues Media Services-Konto. Ersetzen Sie die Werte your-media-services-account-name, your-storage-account-name und your-resource-group-name durch die Namen, die Sie verwenden möchten. Der Befehl setzt voraus, dass Sie bereits eine Ressourcengruppe und ein Speicherkonto erstellt haben.

Durch ihn erhält das Media Services-Konto eine systemseitig zugewiesene verwaltete Identität mit dem Flag --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-Beispielantwort:

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

Gewähren von Speicherkontozugriff für die verwaltete Media Services-Identität

Gewähren Sie der verwalteten Media Services-Identität Zugriff auf das Speicherkonto. Es gibt drei Befehle:

Abrufen (Anzeigen) der verwalteten Identität des Media Services-Kontos

Der erste Befehl zeigt die verwaltete Identität des Media Services-Kontos an. Hierbei handelt es sich um die Prinzipal-ID (principalId) aus der JSON-Rückgabe des Befehls.

Dieser Befehl zeigt alle Eigenschaften eines Media Services-Kontos an.

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

Hinweis

Wenn Sie dem Media Services-Konto Zugriffsrollen zugewiesen haben, gibt diese Zeile "storageAuthentication": "ManagedIdentity" zurück.

JSON-Beispielantwort:

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

Erstellen der Rollenzuweisung vom Typ „Mitwirkender an Storage-Blobdaten“

Mit dem folgenden Befehl wird die Storage Blob-Rolle „Mitwirkender“ erstellt.

Ändern Sie assignee in principalId. Der Befehl setzt voraus, dass Sie bereits eine Ressourcengruppe und ein Speicherkonto erstellt haben. Verwenden Sie your-resource-group-name und your-storage-account-name als Teil des scope-Werts, wie im folgenden Befehl gezeigt:

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-Beispielantwort:

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

Erstellen der Rollenzuweisung vom Typ „Leser“

Der folgende Befehl erstellt eine Leser-Rolle.

Ändern Sie assignee in principalId. Der Befehl setzt voraus, dass Sie bereits eine Ressourcengruppe und ein Speicherkonto erstellt haben. Verwenden Sie your-resource-group-name und your-storage-account-name als Teil des scope-Werts, wie im folgenden Befehl gezeigt:

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-Beispielantwort:

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

Zugreifen auf das Speicherkonto mithilfe der verwalteten Identität

Der folgende Befehl gewährt einer verwalteten Media Services-Identität Zugriff auf ein Speicherkonto.

Ändern Sie your-resource-group-name im folgenden Befehl in den Namen der Ressourcengruppe und your-media-services-account-name in den Namen des Media Services-Kontos, mit dem Sie arbeiten möchten:

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

JSON-Beispielantwort:

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

Überprüfung

Überprüfen Sie anhand der Kontoverschlüsselungseigenschaften, ob das Konto mit einem kundenseitig verwalteten Schlüssel verschlüsselt ist:

Dieser Befehl zeigt alle Eigenschaften eines Media Services-Kontos an.

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

Hinweis

Wenn Sie dem Media Services-Konto Zugriffsrollen zugewiesen haben, gibt diese Zeile "storageAuthentication": "ManagedIdentity" zurück.

JSON-Beispielantwort:

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

Für die Eigenschaft storageAuthentication sollte „ManagedIdentity“ angezeigt werden.

Zur weiteren Überprüfung können Sie anhand der Azure Storage-Protokolle ermitteln, welche Authentifizierungsmethode für die einzelnen Anforderungen verwendet wird.

Bereinigen von Ressourcen

Wenn Sie die von Ihnen erstellten Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe.

Löschen einer Ressourcengruppe mit der Befehlszeilenschnittstelle

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

Anfordern von Hilfe und Support

Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen: