Tutorial: Gunakan kunci Vault Kunci untuk mengenkripsi data ke akun Media Services
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 Media Services mengenkripsi data menggunakan kunci dari Key Vault Anda, akun Media Services harus diberikan akses ke Key Vault. Ikuti langkah-langkah di bawah ini untuk membuat Identitas Terkelola untuk akun Media Services dan berikan akses identitas ini ke Key Vault Anda menggunakan CLI Media Services.
Tutorial ini menggunakan API Media Services 2020-05-01.
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
- myKeyVault
- myKey
- 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 your-storage-account-name
untuk langkah berikutnya.
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-name
your-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"
}
Membuat Key Vault
Membuat Key Vault. Key Vault digunakan untuk mengenkripsi data media. Anda akan menggunakan your-keyvault-name
untuk membuat kunci dan untuk langkah-langkah selanjutnya.
Gunakan perintah berikut untuk membuat Key Vault dan kunci. Ubah your-resource-group-name
, your-keyvault-name
, dan your-key-name
menjadi nilai yang ingin Anda gunakan. Perintah mengasumsikan bahwa Anda telah membuat grup sumber daya.
Catatan
--bypass AzureServices
memungkinkan Media Services (dan Layanan Azure lainnya) untuk mengakses Key Vault ketika akses tersebut biasanya akan diblokir oleh ACL jaringan Key Vault --enable-purge-protection
Jika tidak diatur, Anda tidak akan dapat menggunakan kunci Anda.
Membuat Key Vault
az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>
Contoh respons JSON:
{
"id": "/subscriptions/the-subscription-id/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Membuat kunci
az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name
Contoh respons JSON:
{
"attributes": {
"created": "2021-05-12T22:41:29+00:00",
"enabled": true,
"expires": null,
"notBefore": null,
"recoveryLevel": "Recoverable",
"updated": "2021-05-12T22:41:29+00:00"
},
"key": {
"crv": null,
"d": null,
"dp": null,
"dq": null,
"e": "AQAB",
"k": null,
"keyOps": [
"encrypt",
"decrypt",
"sign",
"verify",
"wrapKey",
"unwrapKey"
],
"kid": "https://your-keyvault-name.vault.azure.net/keys/your-key-name/your-subsription-id",
"kty": "RSA",
"n": "THISISTHEKEY51V9thvU7KsBUo/q1mEOcuxqt0qUcnx0IRO9YCL32fPjD/nnS8hKS5qkgUKfe2NRAtzVQ+elQAha65l7OsHu+TXmH/n/RPCgstpqSdCfiUR1JTmFYFRWdxCPwoKJMYaqlCEhn2Dkon3StTN0Id0sjRSA/YOLjgWU7YnVbntg5/048HgcTKn3PCWCuJc+P8hI/8Os5EAIpun62PffYwPX0/NIA1PY8wIB+sYEY0zxVGwWrCu7VgCo9xeqbMQEq5OenYmYpc+cjLozU/ohGhfWTpQU8d7fFypTHQraENDOFKEY",
"p": null,
"q": null,
"qi": null,
"t": null,
"x": null,
"y": null
},
"managed": null,
"tags": null
}
Berikan Sistem Media Services Yang Diberi Akses Identitas Terkelola ke Key Vault
Berikan akses Identitas Terkelola Media Services ke Key Vault. Terdapat dua perintah:
Dapatkan (tampilkan) 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"
}
Atur kebijakan Key Vault
Perintah kedua memberi ID Utama akses ke Key Vault. Atur object-id
ke nilai principalId
yang Anda dapatkan dari langkah sebelumnya.
Untuk menggunakan perintah ini, Anda harus menyertakan Azure Media Services principalId
sebagai object-id
. jika Anda belum melakukannya, gunakan az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
untuk mendapatkan ID ini.
az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey
Contoh respons JSON:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "00000000-0000-0000-000000000000"
},
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "00000000-0000-0000-000000000000"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "00000000-0000-0000-000000000000",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Atur Media Services untuk menggunakan kunci dari Key Vault
Atur Media Services untuk menggunakan kunci yang telah Anda buat. Nilai properti key-identifier
berasal dari output ketika kunci dibuat. Perintah ini mungkin gagal karena waktu yang diperlukan untuk menyebarluaskan perubahan kontrol akses. Jika ini terjadi, coba lagi setelah beberapa menit.
Untuk menggunakan perintah ini, Anda harus sudah membuat Vault Kunci dan kunci.
az ams account encryption set --account-name <your-media-services-account-name> --resource-group <your-resource-group> --key-type CustomerKey --key-identifier https://<your-keyvault-name>.vault.azure.net/keys/<your-key-name>
Contoh respons JSON:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
},
{
"applicationId": null,
"objectId": "the-media-services-account-id",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Validasi
Untuk memverifikasi bahwa akun dienkripsi menggunakan Kunci Terkelola Pelanggan, lihat properti enkripsi akun:
Menampilkan enkripsi akun dengan CLI
Untuk informasi selengkapnya tentang perintah ini, lihat Referensi CLI Azure Media Services.
Properti type
harus menampilkan CustomerKey
dan currentKeyIdentifier
harus diatur ke jalur kunci di Key Vault pelanggan.
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:
- T & A
- Stack Overflow. Beri tag pertanyaan dengan
azure-media-services
. - @MSFTAzureMedia atau gunakan @AzureSupport untuk meminta dukungan.
- Buka tiket dukungan melalui portal Azure.