Tutorial: Zugreifen auf Speicher mit einer verwalteten Media Services-Identität
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.
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:
- Q & A
- Stack Overflow. Markieren Sie Fragen mit
azure-media-services
. - @MSFTAzureMedia oder verwenden Sie @AzureSupport , um Support anzufordern.
- Öffnen Sie ein Supportticket über die Azure-Portal.