Tutorial: Mengakses penyimpanan dengan Identitas Terkelola Media Services

Logo Azure Media Services v3


Peringatan

Azure Media Services akan dihentikan pada 30 Juni 2024. Untuk informasi selengkapnya, lihat Panduan Penghentian AMS.

Catatan

Identitas terkelola hanya tersedia untuk akun Azure Media Services yang dibuat menggunakan API v3. Jika Anda menggunakan API v2 dan ingin menggunakan identitas terkelola, lakukan migrasi dari v2 ke v3 Pengantar migrasi dari Media Services v2 ke v3.

Jika Anda ingin mengakses akun penyimpanan saat akun penyimpanan dikonfigurasi untuk memblokir permintaan dari alamat IP yang tidak dikenal, akun Media Services harus diberikan akses ke akun Penyimpanan. Ikuti langkah-langkah di bawah ini untuk membuat Identitas Terkelola untuk akun Media Services dan berikan akses identitas ini ke penyimpanan menggunakan CLI Media Services.

Akun Media Services menggunakan Identitas Terkelola untuk mengakses penyimpanan

Tutorial ini menggunakan API Media Services 2020-05-01.

Gambaran Umum

Peringatan

Anda tidak dapat menggunakan URL JobInputHTTP atau SAS dengan akun penyimpanan yang tidak terkait dengan akun Azure Media Services. Ini dimaksudkan sebagai kenyamanan bagi pelanggan yang memiliki konten yang ada yang dapat diakses menggunakan HTTP, misalnya jika Anda memiliki file media di server yang menghadap publik atau disimpan dengan penyedia cloud lain. Jika Anda membangun solusi baru, gunakan Aset untuk input pekerjaan.

Untuk mengamankan akses ke akun penyimpanan yang digunakan oleh Azure Media Services:

  • Konfigurasikan akun penyimpanan untuk menolak semua alamat IP (atau hanya mengizinkan alamat IP di jaringan pelanggan)
  • Mengonfigurasi akun penyimpanan untuk mengizinkan akses ke “AzureServices”
  • Azure Media Services dikonfigurasi untuk mengakses akun penyimpanan menggunakan Identitas Terkelola
  • Mengunggah konten media ke Media Services Assets
  • Buat pekerjaan pengodean yang menggunakan Media Services Assets sebagai input pekerjaan. JANGAN gunakan URL SAS atau JobInputHTTP.

Masuk ke Azure

Untuk menggunakan salah satu perintah dalam artikel ini, pertama-tama Anda harus masuk ke langganan yang ingin Anda gunakan.

Masuk ke Azure. Saat Anda menggunakan perintah ini, Anda akan diminta untuk berlangganan yang ingin Anda gunakan.

az login

Atur langganan

Jalankan perintah berikut untuk memilih langganan yang ingin Anda kerjakan.

Mengatur langganan Azure dengan CLI

Dalam perintah berikut ini, berikan ID langganan Azure yang ingin Anda gunakan untuk akun Media Services.

az account set --subscription <subscriptionName>

Nama sumber daya

Sebelum memulai, tentukan nama sumber daya yang akan Anda buat. Mereka harus mudah diidentifikasi sebagai satu set, terutama jika Anda tidak berencana untuk menggunakannya setelah Anda selesai pengujian. Aturan penamaan berbeda untuk banyak jenis sumber daya sehingga yang terbaik adalah tetap dengan semua huruf kecil. Misalnya, "mediatest1rg" untuk nama grup sumber daya Anda dan "mediatest1stor" untuk nama akun penyimpanan Anda. Gunakan nama yang sama untuk setiap langkah dalam artikel ini.

Anda akan melihat nama-nama ini direferensikan dalam perintah di bawah ini. Nama sumber daya yang Anda perlukan adalah:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • lokasi

Catatan

Tanda hubung di atas hanya digunakan untuk memisahkan kata-kata penjelas. Karena ketidakkonsistenan penamaan sumber daya di layanan Azure, jangan gunakan tanda hubung saat Anda memberi nama sumber daya Anda. Selain itu, Anda tidak membuat nama wilayah. Nama wilayah ditentukan oleh Azure.

Daftar wilayah Azure

Jika Anda tidak yakin nama kawasan aktual untuk digunakan, gunakan perintah ini untuk mendapatkan daftar:

Gunakan perintah ini untuk mencantumkan wilayah yang tersedia untuk akun Anda.

az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

Urutan

Setiap langkah di bawah ini dilakukan dalam urutan tertentu karena satu atau beberapa nilai dari respons JSON digunakan dalam langkah berikutnya dalam urutan.

Membuat akun Penyimpanan

Akun Media Services yang akan Anda buat harus memiliki akun penyimpanan yang terkait dengannya. Buat akun penyimpanan untuk akun Media Services terlebih dahulu. Anda akan menggunakan nama akun penyimpanan yang menggantikan myStorageAccount untuk langkah selanjutnya.

Membuat akun Azure Storage dengan CLI

Gunakan perintah berikut untuk membuat akun Azure Storage.

Untuk membuat akun penyimpanan, Anda harus terlebih dahulu membuat grup sumber daya dalam suatu lokasi.

Untuk mencantumkan lokasi yang tersedia, gunakan perintah berikut:

Mencantumkan lokasi yang tersedia dengan CLI

Untuk mencantumkan lokasi yang tersedia, gunakan perintah berikut:

az account list-locations

Membuat grup sumber daya dengan CLI

Untuk membuat grup sumber daya, gunakan perintah berikut:

az group create -n <resourceGroupName> --location chooseLocation

Pilih SKU

Anda juga perlu memilih SKU untuk akun penyimpanan. Anda dapat mencantumkan akun penyimpanan.

Pilih SKU dari daftar berikut: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Ubah myStorageAccount menjadi nama unik dengan panjang kurang dari 24 karakter.
  • Ubah chooseLocation menjadi wilayah tempat Anda ingin bekerja.
  • Ubah chooseSKU menjadi SKU pilihan Anda.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Membuat akun Media Services dengan Perwakilan Layanan (Identitas Terkelola)

Sekarang buat akun Media Services dengan Perwakilan Layanan, atau dikenal sebagai Identitas Terkelola.

Penting

Penting bagi Anda untuk ingat untuk menggunakan bendera --mi dalam perintah. Jika tidak, Anda tidak akan dapat menemukan principalId untuk langkah selanjutnya.

Perintah Azure CLI berikut membuat akun Layanan Media baru. Ganti nilai berikut: your-media-services-account-nameyour-storage-account-name, dan your-resource-group-name dengan nama yang ingin Anda gunakan. Perintah mengasumsikan bahwa Anda telah membuat grup sumber daya dan akun Penyimpanan.

Hal ini memberi akun Media Services identitas terkelola yang ditetapkan sistem dengan bendera --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>

Contoh respons 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"
}

Memberikan akses Identitas Terkelola Media Services ke akun Penyimpanan

Berikan akses Identitas Terkelola Media Services ke akun Penyimpanan. Ada tiga perintah:

Dapatkan (memperlihatkan) Identitas Terkelola dari akun Media Services

Perintah pertama di bawah ini menunjukkan Identitas Terkelola dari akun Media Services yang merupakan principalId yang tercantum dalam JSON yang dikembalikan oleh perintah.

Perintah ini memperlihatkan semua properti akun Media Services.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Catatan

Jika Anda memiliki peran akses yang ditetapkan ke akun Media Services, baris ini akan menghasilkan "storageAuthentication": "ManagedIdentity".

Contoh respons 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"
}

Membuat penetapan peran Kontributor Blob Penyimpanan

Perintah berikut membuat peran Kontributor Blob Penyimpanan.

Ubah assignee menjadi principalId. Perintah mengasumsikan bahwa Anda telah membuat grup sumber daya dan akun Penyimpanan. Gunakan your-resource-group-name dan your-storage-account-name sebagai bagian dari nilai scope seperti yang ditunjukkan pada perintah di bawah ini:

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

Example JSON response:

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

Membuat penetapan Peran Pembaca

Perintah berikut membuat peran Pembaca.

Ubah assignee menjadi principalId. Perintah mengasumsikan bahwa Anda telah membuat grup sumber daya dan akun Penyimpanan. Gunakan your-resource-group-name dan your-storage-account-name sebagai bagian dari nilai scope seperti yang ditunjukkan pada perintah di bawah ini:

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"

Example JSON response:

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

Menggunakan Identitas Terkelola untuk mengakses akun Penyimpanan

Perintah berikut ini memberikan akses Identitas Terkelola Azure Media Services ke akun penyimpanan.

Dalam perintah di bawah ini, ubah your-resource-group-name ke nama grup sumber daya, dan your-media-services-account-name ke nama akun Azure Media Services yang ingin Anda kerjakan:

az ams account storage set-authentication --storage-auth ManagedIdentity --resource-group <your-resource-group_name> --account-name <your-media-services-account-name>

Contoh respons 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"
}

Validasi

Untuk memverifikasi bahwa akun dienkripsi menggunakan Kunci Terkelola Pelanggan, lihat properti enkripsi akun:

Perintah ini memperlihatkan semua properti akun Media Services.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Catatan

Jika Anda memiliki peran akses yang ditetapkan ke akun Media Services, baris ini akan menghasilkan "storageAuthentication": "ManagedIdentity".

Contoh respons 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"
}

Properti storageAuthentication harus menampilkan "ManagedIdentity".

Untuk validasi tambahan, Anda dapat memeriksa log Azure Storage untuk melihat metode autentikasi mana yang digunakan untuk setiap permintaan.

Membersihkan sumber daya

Jika Anda tidak berencana menggunakan sumber daya yang Anda buat, hapus grup sumber daya.

Menghapus grup sumber daya dengan CLI

az group delete --name <your-resource-group-name>

Dapatkan bantuan dan dukungan

Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut: