Tutorial: Gunakan kunci Vault Kunci untuk mengenkripsi data ke akun 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 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.

Akun Media Services menggunakan Key Vault dengan Identitas Terkelola

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

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: