Udostępnij za pośrednictwem


Samouczek: uzyskiwanie dostępu do magazynu przy użyciu 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.

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 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.

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-nameyour-storage-account-namei 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-namena 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: