Udostępnij za pośrednictwem


Samouczek: uzyskiwanie dostępu do magazynu za pomocą tożsamości zarządzanej usługi Media Services

Logo usługi Media Services w wersji 3


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.

Uwaga

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 Migrowanie z usługi Media Services w wersji 2 do wersji 3 wprowadzenie.

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 Media Services używa tożsamości zarządzanej do uzyskiwania dostępu do magazynu

W tym samouczku jest używany interfejs API usługi Media Services 2020-05-01.

Omówienie

Ostrzeżenie

Nie można używać adresów URL JobInputHTTP ani 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órej można uzyskać dostęp przy użyciu protokołu HTTP(S), na przykład jeśli masz pliki multimedialne na serwerze dostępnym publicznie 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 odrzucał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 UŻYWAJ adresów URL SYGNATURy dostępu współdzielonego ani jobInputHTTP.

Logowanie do platformy 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. Jeśli 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óry ma być używany dla konta usługi Media Services.

az account set --subscription <subscriptionName>

Nazwy zasobów

Przed rozpoczęciem zdecyduj o nazwach utworzonych zasobów. 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, dlatego 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
  • location

Uwaga

Powyższe łączniki są używane tylko do oddzielania słó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

Sequence

Każda z poniższych czynności jest wykonywana w określonej kolejności, ponieważ co najmniej jedna wartość z odpowiedzi JSON jest używana w następnym kroku w sekwencji.

Tworzenie konta usługi Storage

Utworzone konto usługi Media Services musi mieć skojarzone z nim konto magazynu. Najpierw utwórz konto magazynu dla konta usługi Media Services. Użyjesz nazwy konta magazynu, która zastępuje myStorageAccount kolejne kroki.

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.
  • Przejdź chooseLocation do regionu, w którym chcesz pracować.
  • Przejdź chooseSKU do preferowanej jednostki 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, inaczej znanej jako tożsamość zarządzana.

Ważne

Pamiętaj, aby użyć flagi --mi w poleceniu . W przeciwnym razie nie będzie można odnaleźć principalId elementu dla późniejszego kroku.

Poniższe polecenie interfejsu wiersza polecenia platformy Azure tworzy nowe konto usługi Media Services. Zastąp następujące wartości: your-media-services-account-nameyour-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 poniższe polecenie przedstawia tożsamość zarządzaną konta usługi Media Services, które jest principalId wymienione w kodzie JSON zwróconym przez polecenie .

To polecenie wyświetla 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>

Uwaga

Jeśli przypisano role dostępu do konta usługi Media Services, ten wiersz zwróci wartość "storageAuthentication": "ManagedIdentity".

Przykładowa odpowiedź JSON:

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

Tworzenie przypisania roli Współautor obiektu blob usługi Storage

Następujące polecenie tworzy rolę Współautor obiektu blob usługi Storage.

Zmień assignee wartość na principalId. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu. Użyj wartości your-resource-group-name i your-storage-account-name jako część scope wartości, 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 wartość na principalId. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu. Użyj your-resource-group-name wartości i your-storage-account-name jako część scope wartości, 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 tożsamości zarządzanej usługi Media Services dostęp do konta magazynu.

W poniższym poleceniu zmień your-resource-group-name nazwę grupy zasobów na nazwę konta your-media-services-account-nameusł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/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"
}

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>

Uwaga

Jeśli przypisano role dostępu do konta usługi Media Services, ten wiersz zwróci wartość "storageAuthentication": "ManagedIdentity".

Przykładowa odpowiedź JSON:

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

Właściwość storageAuthentication powinna pokazywać 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 przy użyciu jednej z następujących metod: