Lernprogramm: Zugreifen auf Speicher mit verwalteter Mediendiensteidentität
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.
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-name
your-storage-account-name
und 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-name
Sie 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:
- Q & A
-
Stack Overflow. Markieren Sie Fragen mit
azure-media-services
. - @MSFTAzureMedia oder verwenden Sie @AzureSupport, um Support anzufordern.
- Öffnen Sie ein Supportticket über das Azure-Portal.