Freigeben über


Lernprogramm: Zugreifen auf Speicher mit verwalteter Mediendiensteidentität

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im AMS Retirement Guide.

Anmerkung

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 bitte von v2 zu v3 Migrieren von Media Services v2 zu v3 Einführung.

Wenn Sie auf ein Speicherkonto zugreifen möchten, wenn 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 eine verwaltete Identität für das Media Services-Konto zu erstellen und dieser Identität Zugriff auf den Speicher mithilfe der Media Services CLI zu gewähren.

Media Services-Konto verwendet eine verwaltete Identität für den Zugriff auf speicher

In diesem Lernprogramm wird die Mediendienste-API 2020-05-01 verwendet.

Überblick

Warnung

Sie können keine JobInputHTTP- oder SAS-URLs mit einem Speicherkonto verwenden, das keinem Media Services-Konto zugeordnet ist. Dies ist eine Benutzerfreundlichkeit für Kunden, die vorhandenen Inhalte haben, auf die mit HTTP(S) zugegriffen werden kann, z. B. wenn Sie Mediendateien auf einem öffentlich zugänglichen Server haben oder mit einem anderen Cloudanbieter gespeichert sind. Wenn Sie neue Lösungen erstellen, verwenden Sie "Assets" für Auftragseingaben.

So sichern Sie den Zugriff auf ein speicherkonto, das von Media Services verwendet wird:

  • Konfigurieren Des Speicherkontos, um alle IP-Adressen zu verweigern (oder nur IP-Adressen im Netzwerk des Kunden zulassen)
  • Konfigurieren des Speicherkontos für den Zugriff auf "AzureServices"
  • Konfigurieren von Mediendiensten für den Zugriff auf das Speicherkonto mithilfe der verwalteten Identität
  • Hochladen von Medieninhalten in Mediendiensteobjekte
  • Erstellen Sie Codierungsaufträge, die Media Services Assets als Auftragseingabe verwenden. NICHT SAS-URLS oder JobInputHTTP verwenden.

Anmelden bei Azure

Wenn Sie einen der Befehle in diesem Artikel verwenden möchten, müssen Sie sich zuerst bei dem Abonnement anmelden, 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

Abonnement festlegen

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

Festlegen des Azure-Abonnements mit der CLI

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

az account set --subscription <subscriptionName>

Ressourcennamen

Bevor Sie beginnen, entscheiden Sie sich für die Namen der Ressourcen, die Sie erstellen möchten. Sie sollten leicht als Satz identifizierbar sein, insbesondere, wenn Sie nicht planen, sie nach Abschluss des Tests zu verwenden. Benennungsregeln sind für viele Ressourcentypen unterschiedlich, daher empfiehlt es sich, bei allen Kleinbuchstaben zu bleiben. Beispiel: "mediatest1rg" für den Ressourcengruppennamen und "mediatest1stor" für den Namen Ihres Speicherkontos. Verwenden Sie für jeden Schritt in diesem Artikel dieselben Namen.

Auf diese Namen wird in den folgenden Befehlen verwiesen. Die Namen der benötigten Ressourcen sind:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • Ort

Anmerkung

Die vorstehenden Bindestriche werden nur zum Trennen von Leitwörtern verwendet. Verwenden Sie aufgrund der Inkonsistenz der Benennung von Ressourcen in Azure-Diensten keine Bindestriche, wenn Sie Ihre Ressourcen benennen. Außerdem erstellen Sie den Regionsnamen nicht. Der Regionsname wird von Azure bestimmt.

Azure-Regionen auflisten

Wenn Sie nicht sicher sind, dass der tatsächliche Regionsname verwendet werden soll, verwenden Sie diesen Befehl, um einen Eintrag zu erhalten:

Mit diesem Befehl können Sie die für Ihr Konto verfügbaren Regionen auflisten.

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

Reihenfolge

Jeder der folgenden Schritte erfolgt in einer bestimmten Reihenfolge, da mindestens ein Wert aus den JSON-Antworten im nächsten Schritt in der Sequenz verwendet wird.

Erstellen eines Speicherkontos

Das Mediendienste-Konto, das Sie erstellen, muss ein Speicherkonto zugeordnet sein. Erstellen Sie zuerst das Speicherkonto für das Media Services-Konto. Sie verwenden den Namen des Speicherkontos, der myStorageAccount für nachfolgende Schritte ersetzt.

Erstellen eines Azure Storage-Kontos mit der CLI

Verwenden Sie die folgenden Befehle, um ein Azure Storage-Konto zu erstellen.

Um ein Speicherkonto zu erstellen, müssen Sie zuerst eine Ressourcengruppe innerhalb eines Speicherorts erstellen.

Verwenden Sie den folgenden Befehl, um die verfügbaren Speicherorte auflisten zu können:

Auflisten der verfügbaren Speicherorte mit der CLI

Verwenden Sie den folgenden Befehl, um die verfügbaren Speicherorte auflisten zu können:

az account list-locations

Erstellen einer Ressourcengruppe mit der CLI

Verwenden Sie zum Erstellen einer Ressourcengruppe den folgenden Befehl:

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 zu Ihrer bevorzugten 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, das auch als verwaltete Identität bezeichnet wird.

Wichtig

Es ist wichtig, dass Sie daran denken, das --mi-Flag im Befehl zu verwenden. Andernfalls können Sie die principalId für einen späteren Schritt nicht finden.

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

Es gibt dem Media Services-Konto eine vom System zugewiesene verwaltete Identität mit dem --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>

Beispiel-JSON-Antwort:

{
  "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 des verwalteten Identitätszugriffs für Mediendienste auf das Speicherkonto

Gewähren Sie den verwalteten Media Services-Identitätszugriff auf das Speicherkonto. Es gibt drei Befehle:

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

Der erste Befehl unten zeigt die verwaltete Identität des Media Services-Kontos, bei dem es sich um die im JSON-Code aufgeführte principalId handelt, die vom Befehl zurückgegeben wird.

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>

Anmerkung

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

Beispiel-JSON-Antwort:

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

Erstellen der Rollenzuweisung "Storage Blob-Mitwirkender"

Mit dem folgenden Befehl wird eine Rolle "Storage Blob Contributor" erstellt.

Ändern Sie assignee in den principalId. Der Befehl geht davon aus, 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>"

Beispiel-JSON-Antwort:

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

Mit dem folgenden Befehl wird eine Reader-Rolle erstellt.

Ändern Sie assignee in den principalId. Der Befehl geht davon aus, 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"

Beispiel-JSON-Antwort:

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

Verwenden der verwalteten Identität für den Zugriff auf das Speicherkonto

Mit dem folgenden Befehl erhält ein Media Services Managed Identity Zugriff auf ein Speicherkonto.

Ändern Sie im folgenden Befehl your-resource-group-name in den Ressourcengruppennamen, und your-media-services-account-nameSie zum 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>

Beispiel-JSON-Antwort:

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

Validierung

Um zu überprüfen, ob das Konto mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, zeigen Sie die Kontoverschlüsselungseigenschaften an:

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>

Anmerkung

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

Beispiel-JSON-Antwort:

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

Die storageAuthentication-Eigenschaft sollte "ManagedIdentity" anzeigen.

Für eine zusätzliche Überprüfung können Sie die Azure Storage-Protokolle überprüfen, um festzustellen, welche Authentifizierungsmethode für jede Anforderung verwendet wird.

Bereinigen von Ressourcen

Wenn Sie nicht planen, die von Ihnen erstellten Ressourcen zu verwenden, löschen Sie die Ressourcengruppe.

Löschen einer Ressourcengruppe mit der CLI

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

Hilfe und Support erhalten

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