Samouczek: uzyskiwanie dostępu do magazynu przy użyciu tożsamości zarządzanej usługi Media Services
logo usługi
Ostrzeżenie
Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz przewodnik po wycofaniu usługi AMS.
Nuta
Tożsamości zarządzane są dostępne tylko dla kont usługi Media Services utworzonych przy użyciu interfejsu API w wersji 3. Jeśli używasz interfejsu API w wersji 2 i chcesz używać tożsamości zarządzanych, przeprowadź migrację z wersji 2 do wersji 3 Migrate from Media Services v2 to v3 introduction.
Jeśli chcesz uzyskać dostęp do konta magazynu, gdy konto magazynu jest skonfigurowane do blokowania żądań z nieznanych adresów IP, konto usługi Media Services musi mieć dostęp do konta magazynu. Wykonaj poniższe kroki, aby utworzyć tożsamość zarządzaną dla konta usługi Media Services i udzielić tej tożsamości dostępu do magazynu przy użyciu interfejsu wiersza polecenia usługi Media Services.
konto usługi magazynu
W tym samouczku jest używany interfejs API usługi Media Services 2020-05-01.
Przegląd
Ostrzeżenie
Nie można używać adresów URL JobInputHTTP lub SAS z kontem magazynu, które nie jest skojarzone z kontem usługi Media Services. Są one przeznaczone dla klientów, którzy mają istniejącą zawartość, do których można uzyskać dostęp przy użyciu protokołu HTTP(S), na przykład jeśli masz pliki multimedialne na publicznym serwerze lub są przechowywane u innego dostawcy usług w chmurze. Jeśli tworzysz nowe rozwiązania, użyj zasobów dla danych wejściowych zadań.
Aby zabezpieczyć dostęp do konta magazynu używanego przez usługę Media Services:
- Skonfiguruj konto magazynu tak, aby blokowało wszystkie adresy IP (lub zezwalało tylko na adresy IP w sieci klienta)
- Konfigurowanie konta magazynu w celu zezwolenia na dostęp do usługi "AzureServices"
- Konfigurowanie usługi Media Services w celu uzyskania dostępu do konta magazynu przy użyciu tożsamości zarządzanej
- Przekazywanie zawartości multimedialnej do zasobów usługi Media Services
- Utwórz zadania kodowania, które używają zasobów usługi Media Services jako danych wejściowych zadania. NIE należy używać adresów URL sygnatury dostępu współdzielonego ani jobInputHTTP.
Zaloguj się na platformie Azure
Aby użyć dowolnego polecenia w tym artykule, musisz najpierw zalogować się do subskrypcji, której chcesz użyć.
Zaloguj się do platformy Azure. Gdy używasz tego polecenia, zostanie wyświetlony monit o subskrypcję, której chcesz użyć.
az login
Ustawianie subskrypcji
Użyj tego polecenia, aby ustawić subskrypcję, z którą chcesz pracować.
Ustawianie subskrypcji platformy Azure przy użyciu interfejsu wiersza polecenia
W poniższym poleceniu podaj identyfikator subskrypcji platformy Azure, którego chcesz użyć dla konta usługi Media Services.
az account set --subscription <subscriptionName>
Nazwy zasobów
Przed rozpoczęciem zdecyduj o nazwach zasobów, które utworzysz. Powinny one być łatwe do zidentyfikowania jako zestaw, zwłaszcza jeśli nie planujesz ich używać po zakończeniu testowania. Reguły nazewnictwa różnią się w przypadku wielu typów zasobów, więc najlepiej trzymać się wszystkich małych liter. Na przykład "mediatest1rg" dla nazwy grupy zasobów i "mediatest1stor" dla nazwy konta magazynu. Użyj tych samych nazw dla każdego kroku w tym artykule.
Te nazwy zostaną wyświetlone w poniższych poleceniach. Nazwy potrzebnych zasobów to:
- myRG
- myStorageAccount
- myAmsAccount
- lokalizacja
Nuta
Powyższe łączniki są używane tylko do oddzielania wyrazów wskazówek. Ze względu na niespójność nazw zasobów w usługach platformy Azure nie używaj łączników podczas nadawania nazw zasobom. Ponadto nazwa regionu nie jest tworzona. Nazwa regionu jest określana przez platformę Azure.
Wyświetlanie listy regionów platformy Azure
Jeśli nie masz pewności co do rzeczywistej nazwy regionu do użycia, użyj tego polecenia, aby uzyskać listę:
Użyj tego polecenia, aby wyświetlić listę regionów dostępnych dla twojego konta.
az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table
Kolejność
Każdy z poniższych kroków jest wykonywany w określonej kolejności, ponieważ co najmniej jedna wartość odpowiedzi JSON jest używana w następnym kroku w sekwencji.
Tworzenie konta magazynu
Utworzone konto usługi Media Services musi mieć skojarzone z nim konto magazynu. Najpierw utwórz konto magazynu dla konta usługi Media Services. W kolejnych krokach użyjesz nazwy konta magazynu, która zastępuje myStorageAccount
.
Tworzenie konta usługi Azure Storage przy użyciu interfejsu wiersza polecenia
Użyj następujących poleceń, aby utworzyć konto usługi Azure Storage.
Aby utworzyć konto magazynu, należy najpierw utworzyć grupę zasobów w lokalizacji.
Aby wyświetlić listę dostępnych lokalizacji, użyj następującego polecenia:
Wyświetlanie listy dostępnych lokalizacji za pomocą interfejsu wiersza polecenia
Aby wyświetlić listę dostępnych lokalizacji, użyj następującego polecenia:
az account list-locations
Tworzenie grupy zasobów przy użyciu interfejsu wiersza polecenia
Aby utworzyć grupę zasobów, użyj następującego polecenia:
az group create -n <resourceGroupName> --location chooseLocation
Wybieranie jednostki SKU
Musisz również wybrać jednostkę SKU dla konta magazynu. Możesz wyświetlić listę kont magazynu.
Wybierz jednostkę SKU z następującej listy: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.
- Zmień
myStorageAccount
na unikatową nazwę o długości mniejszej niż 24 znaki. - Zmień
chooseLocation
na region, w którym chcesz pracować. - Zmień
chooseSKU
na preferowaną jednostkę SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup> --location <chooseLocation> --sku <chooseSKU>
Tworzenie konta usługi Media Services przy użyciu jednostki usługi (tożsamości zarządzanej)
Teraz utwórz konto usługi Media Services przy użyciu jednostki usługi, nazywanej inaczej tożsamością zarządzaną.
Ważny
Należy pamiętać o użyciu flagi --mi w poleceniu . W przeciwnym razie nie będzie można odnaleźć principalId
dla późniejszego kroku.
Następujące polecenie interfejsu wiersza polecenia platformy Azure tworzy nowe konto usługi Media Services. Zastąp następujące wartości: your-media-services-account-name
your-storage-account-name
i your-resource-group-name
nazwami, których chcesz użyć. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu.
Zapewnia konto usługi Media Services tożsamość zarządzaną przypisaną przez system z 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>
Przykładowa odpowiedź JSON:
{
"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"
}
Udzielanie tożsamości zarządzanej usługi Media Services dostępu do konta magazynu
Udziel tożsamości zarządzanej usługi Media Services dostępu do konta magazynu. Istnieją trzy polecenia:
Pobieranie (pokazywanie) tożsamości zarządzanej konta usługi Media Services
Pierwsze polecenie poniżej przedstawia tożsamość zarządzaną konta usługi Media Services, które jest principalId
wymienione w kodzie JSON zwróconym przez polecenie .
To polecenie pokazuje wszystkie właściwości konta usługi Media Services.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Nuta
Jeśli przypisano role dostępu do konta usługi Media Services, ten wiersz zwróci "storageAuthentication": "ManagedIdentity"
.
Przykładowa odpowiedź JSON:
{
"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"
}
Tworzenie przypisania roli Współautor obiektu blob usługi Storage
Następujące polecenie tworzy rolę współautora obiektu blob usługi Storage.
Zmień assignee
na principalId
. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu. Użyj your-resource-group-name
i your-storage-account-name
w ramach wartości scope
, jak pokazano w poniższym poleceniu:
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>"
Przykładowa odpowiedź JSON:
{
"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"
}
Tworzenie przypisania roli Czytelnik
Następujące polecenie tworzy rolę Czytelnik.
Zmień assignee
na principalId
. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu. Użyj your-resource-group-name
i your-storage-account-name
w ramach wartości scope
, jak pokazano w poniższym poleceniu:
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"
Przykładowa odpowiedź JSON:
{
"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"
}
Uzyskiwanie dostępu do konta magazynu przy użyciu tożsamości zarządzanej
Następujące polecenie zapewnia dostęp tożsamości zarządzanej usługi Media Services do konta magazynu.
W poniższym poleceniu zmień your-resource-group-name
na nazwę grupy zasobów, a your-media-services-account-name
na nazwę konta usługi Media Services, z którą chcesz pracować:
az ams account storage set-authentication --storage-auth ManagedIdentity --resource-group <your-resource-group_name> --account-name <your-media-services-account-name>
Przykładowa odpowiedź JSON:
{
"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"
}
Walidacja
Aby sprawdzić, czy konto jest szyfrowane przy użyciu klucza zarządzanego przez klienta, wyświetl właściwości szyfrowania konta:
To polecenie pokazuje wszystkie właściwości konta usługi Media Services.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Nuta
Jeśli przypisano role dostępu do konta usługi Media Services, ten wiersz zwróci "storageAuthentication": "ManagedIdentity"
.
Przykładowa odpowiedź JSON:
{
"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"
}
Właściwość storageAuthentication
powinna zawierać wartość "ManagedIdentity".
Aby uzyskać dodatkową walidację, możesz sprawdzić dzienniki usługi Azure Storage, aby sprawdzić, która metoda uwierzytelniania jest używana dla każdego żądania.
Czyszczenie zasobów
Jeśli nie planujesz używania utworzonych zasobów, usuń grupę zasobów.
Usuwanie grupy zasobów przy użyciu interfejsu wiersza polecenia
az group delete --name <your-resource-group-name>
Uzyskiwanie pomocy i obsługi technicznej
Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod:
- Q & A
-
Stack Overflow. Tagowanie pytań przy użyciu
azure-media-services
. - @MSFTAzureMedia lub użyj @AzureSupport, aby poprosić o pomoc techniczną.
- Otwórz bilet pomocy technicznej za pośrednictwem witryny Azure Portal.