Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini membahas pembuatan solusi di mana Anda mengenkripsi disk-disk terkelola dengan kunci yang dikelola pelanggan menggunakan Azure Key Vault yang disimpan di tenant Microsoft Entra yang berbeda. Konfigurasi ini dapat ideal untuk beberapa skenario, salah satu contohnya adalah Azure support untuk penyedia layanan yang ingin menawarkan kunci enkripsi bawa sendiri kepada pelanggan mereka di mana sumber daya dari penyewa penyedia layanan dienkripsi dengan kunci dari penyewa pelanggan mereka.
Satu set enkripsi disk dengan identitas federasi dalam alur kerja kunci yang dikelola pelanggan lintas-penyewa mencakup sumber daya tenant penyedia layanan/ISV (set enkripsi disk, identitas terkelola, dan pendaftaran aplikasi) serta sumber daya tenant pelanggan (aplikasi perusahaan, penetapan peran pengguna, dan Key Vault). Dalam hal ini, sumber daya Azure tersebut adalah set enkripsi cakram milik penyedia layanan.
Jika Anda memiliki pertanyaan tentang kunci yang dikelola pelanggan antarpenyewa dengan disk terkelola, silakan kirim email ke crosstenantcmkvteam@service.microsoft.com.
Keterbatasan
- Disk terkelola dan Key Vault pelanggan harus berada di wilayah Azure yang sama, tetapi dapat berada di langganan yang berbeda.
Ketersediaan kunci yang dikelola pelanggan lintas penyewa untuk Ultra Disk dan Premium SSD v2
Fitur ini tersedia untuk Disk Ultra dan disk Premium SSD v2 di semua wilayah kecuali:
- US Gov Virginia
- US Gov Arizona
- US Gov Texas
- Tiongkok Utara 3
Tentang kunci yang dikelola pelanggan lintas penyewa
Banyak penyedia layanan yang membangun penawaran Software as a Service (SaaS) di Azure ingin menawarkan opsi kepada pelanggan mereka untuk mengelola kunci enkripsi mereka sendiri. Kunci yang dikelola pelanggan memungkinkan penyedia layanan mengenkripsi data pelanggan menggunakan kunci enkripsi yang dikelola oleh pelanggan penyedia layanan dan yang tidak dapat diakses oleh penyedia layanan. Dalam Azure, pelanggan penyedia layanan dapat menggunakan Azure Key Vault untuk mengelola kunci enkripsi mereka di penyewa dan langganan Microsoft Entra mereka sendiri.
Layanan platform Azure dan sumber daya yang dimiliki penyedia layanan yang berada di tenant penyedia layanan memerlukan akses ke kunci dari tenant pelanggan untuk melakukan operasi enkripsi/dekripsi.
Gambar di bawah ini menunjukkan enkripsi data saat disimpan dengan identitas federasi dalam alur kerja kunci yang dikelola pelanggan lintas penyewa yang mencakup penyedia layanan dan pelanggannya.
Dalam contoh di atas, ada dua penyewa Microsoft Entra: penyewa penyedia layanan independen (Tenant 1), dan penyewa pelanggan (Tenant 2). Tenant 1 menghosting layanan platform Azure dan Tenant 2 menghosting brankas kunci pelanggan.
Pendaftaran aplikasi multipenyewa dibuat oleh penyedia layanan di Penyewa 1. Kredensial identitas federasi dibuat pada aplikasi ini menggunakan identitas terkelola yang ditetapkan pengguna. Lalu, ID aplikasi dan nama dari aplikasi tersebut dibagikan kepada pelanggan.
Pengguna dengan izin yang sesuai menginstal aplikasi penyedia layanan di penyewa pelanggan, Penyewa 2. Lalu pengguna memberikan akses kepada perwakilan layanan yang terkait dengan aplikasi yang diinstal ke key vault pelanggan. Pelanggan juga menyimpan kunci enkripsi, atau kunci yang dikelola pelanggan, di key vault. Pelanggan berbagi lokasi kunci (URL kunci) dengan penyedia layanan.
Penyedia layanan kini memiliki:
- ID aplikasi dari aplikasi multipenyewa yang diinstal di penyewa pelanggan dan telah diberikan akses ke kunci yang dikelola oleh pelanggan.
- Identitas terkelola yang telah dikonfigurasi sebagai kredensial untuk aplikasi multitenant.
- Lokasi kunci di brankas kunci pelanggan.
Dengan ketiga parameter ini, penyedia layanan menyediakan Azure sumber daya di Tenant 1 yang dapat dienkripsi dengan kunci yang dikelola pelanggan di Tenant 2.
Mari kita bagi solusi menyeluruh di atas menjadi tiga fase:
- Penyedia layanan mengonfigurasikan identitas.
- Pelanggan memberikan akses aplikasi multipenyewa penyedia layanan ke kunci enkripsi di Azure Key Vault.
- Penyedia layanan mengenkripsi data dalam sumber daya Azure menggunakan kunci yang dikelola pelanggan.
Operasi dalam Fase 1 akan menjadi penyiapan satu kali untuk sebagian besar aplikasi penyedia layanan. Operasi dalam Fase 2 dan 3 akan diulang untuk setiap pelanggan.
Fase 1 - Penyedia layanan mengonfigurasi aplikasi Microsoft Entra
| Langkah | Deskripsi | Peran minimum pada Azure RBAC | Peran Minimum Microsoft Entra dalam RBAC |
|---|---|---|---|
| 1. | Buat pendaftaran aplikasi Microsoft Entra multipenyewa baru atau mulailah dengan pendaftaran aplikasi yang ada. Perhatikan ID aplikasi (ID klien) pendaftaran aplikasi menggunakan portal Azure, Microsoft Graph API, Azure PowerShell, atau Azure CLI | Tidak ada | Pengembang Aplikasi |
| 2. | Buat identitas terkelola yang ditetapkan pengguna (untuk digunakan sebagai Kredensial Identitas Gabungan). Azure portal / Azure CLI / Azure PowerShell/ Azure Resource Manager Template |
Kontributor identitas yang dikelola | Tidak ada |
| 3 | Konfigurasikan identitas terkelola yang ditetapkan pengguna sebagai kredensial identitas gabungan pada aplikasi, sehingga dapat meniru identitas aplikasi. referensi Graph API/ Azure portal/ Azure CLI/ Azure PowerShell |
Tidak ada | Pemilik aplikasi |
| 4 | Bagikan nama aplikasi dan ID aplikasi kepada pelanggan, sehingga mereka dapat menginstal dan mengotorisasi aplikasi. | Tidak ada | Tidak ada |
Pertimbangan untuk penyedia layanan
- templat Azure Resource Manager (ARM) tidak disarankan untuk membuat aplikasi Microsoft Entra.
- Aplikasi multipenyewa yang sama dapat digunakan untuk mengakses kunci di sejumlah penyewa, seperti Penyewa 2, Penyewa 3, Penyewa 4, dan sebagainya. Di setiap penyewa, instans independen aplikasi dibuat yang memiliki ID aplikasi yang sama, tetapi ID objeknya berbeda. Dengan demikian setiap instans aplikasi ini diotorisasi secara independen. Pertimbangkan bagaimana objek aplikasi yang diterapkan untuk fitur ini mempartisi aplikasi Anda untuk semua pelanggan.
- Aplikasi dapat memiliki maksimal 20 kredensial identitas federasi, yang mengharuskan penyedia layanan untuk berbagi identitas federasi di antara pelanggannya. Untuk informasi selengkapnya tentang pertimbangan dan pembatasan desain identitas federasi, lihat Mengonfigurasi aplikasi untuk mempercayai penyedia identitas eksternal
- Dalam skenario yang jarang terjadi, penyedia layanan mungkin menggunakan satu objek Aplikasi per pelanggannya, tetapi itu memerlukan biaya pemeliharaan yang signifikan untuk mengelola aplikasi dalam skala besar di semua pelanggan.
- Di penyewa penyedia layanan, tidak dimungkinkan untuk mengotomatiskan verifikasi Publisher.
Fase 2 - Pelanggan mengotorisasi akses ke key vault
| Langkah | Deskripsi | Peran RBAC Azure dengan hak akses paling terbatas | Peran Microsoft Entra dengan hak istimewa paling sedikit |
|---|---|---|---|
| 1. | Tidak ada | Pengguna dengan izin untuk menginstal aplikasi | |
| 2. | Buat Azure Key Vault dan kunci yang digunakan sebagai kunci yang dikelola oleh pelanggan. | Pengguna harus diberi peran Key Vault Contributor untuk membuat key vault Pengguna harus diberi peran Key Vault Crypto Officer untuk menambahkan kunci ke key vault |
Tidak ada |
| 3 | Berikan akses identitas aplikasi yang disetujui ke Azure key vault dengan menetapkan peran Key Vault Pengguna Enkripsi Layanan Kripto | Untuk menetapkan peran Key Vault Crypto Service Encryption User ke aplikasi, Anda harus sudah ditugaskan sebagai User Access Administrator. | Tidak ada |
| 4 | Tempelkan URL key vault dan nama kunci ke konfigurasi kunci yang dikelola pelanggan dalam penawaran SaaS. | Tidak ada | Tidak ada |
Nota
Untuk mengotorisasi akses ke HSM Terkelola untuk enkripsi menggunakan kunci yang dikelola pelanggan, lihat contoh untuk Akun Penyimpanan di sini. Untuk informasi selengkapnya tentang mengelola kunci dengan HSM Terkelola, lihat Kelola HSM Terkelola menggunakan Azure CLI
Pertimbangan untuk pelanggan penyedia layanan
- Di penyewa pelanggan, Penyewa 2, admin dapat mengatur kebijakan untuk memblokir pengguna non-admin agar tidak menginstal aplikasi. Kebijakan ini dapat mencegah pengguna non-admin membuat prinsipal layanan. Jika kebijakan seperti itu dikonfigurasi, maka pengguna dengan izin untuk membuat prinsipal layanan perlu terlibat.
- Akses ke Azure Key Vault dapat diotorisasi menggunakan Azure RBAC atau kebijakan akses. Saat memberikan akses ke brankas kunci, pastikan untuk menggunakan mekanisme yang aktif untuk brankas kunci Anda.
- Pendaftaran aplikasi Microsoft Entra memiliki ID aplikasi (ID klien). Saat aplikasi diinstal pada tenant Anda, sebuah principal layanan dibuat. Perwakilan layanan berbagi ID aplikasi yang sama dengan pendaftaran aplikasi, tetapi membuat ID objeknya sendiri. Saat Anda mengotorisasi aplikasi untuk memiliki akses ke sumber daya, Anda mungkin perlu menggunakan prinsipal layanan
Nameatau propertiObjectID.
Fase 3 - Penyedia layanan mengenkripsi data dalam sumber daya Azure menggunakan kunci yang dikelola pelanggan
Setelah fase 1 dan 2 selesai, penyedia layanan dapat mengonfigurasi enkripsi pada sumber daya Azure dengan kunci dan brankas kunci di penyewa pelanggan dan sumber daya Azure di penyewa ISV. Penyedia layanan dapat mengonfigurasi kunci antarpenyewa yang dikelola pelanggan dengan menggunakan alat klien yang didukung oleh sumber daya Azure tersebut, atau dengan templat ARM, atau dengan REST API.
Mengonfigurasi kunci pelanggan yang dikelola lintas penyewa
Bagian ini menjelaskan cara mengonfigurasi kunci yang dikelola pelanggan lintas penyewa dan mengenkripsi data pelanggan. Anda mempelajari cara mengenkripsi data pelanggan dalam sumber daya di Tenant1 menggunakan kunci yang dikelola pelanggan yang disimpan dalam brankas kunci di Penyewa2. Anda dapat menggunakan portal Azure, Azure PowerShell, atau Azure CLI.
Masuk ke portal Azure dan ikuti langkah-langkah ini.
Penyedia layanan mengonfigurasi identitas
Langkah-langkah berikut dilakukan oleh penyedia layanan di penyewa penyedia layanan Tenant1.
Penyedia layanan membuat registrasi aplikasi multi-tenant yang baru.
Anda dapat membuat registrasi aplikasi Microsoft Entra multi-tenant baru atau mulai dengan registrasi aplikasi multi-tenant yang sudah ada. Jika memulai dengan pendaftaran aplikasi yang ada, perhatikan ID aplikasi (ID klien) aplikasi.
Untuk membuat pendaftaran baru:
Cari Microsoft Entra ID di kotak pencarian. Temukan dan pilih ekstensi Microsoft Entra ID.
Pilih Kelola > Pendaftaran aplikasi dari panel kiri.
Pilih + Pendaftaran baru.
Berikan nama untuk pendaftaran aplikasi dan pilih Akun di direktori organisasi mana pun (direktori Microsoft Entra mana pun – multipenyewa).
Pilih Daftarkan.
Perhatikan ApplicationId/ClientId aplikasi.
Penyedia layanan membuat identitas terkelola yang ditetapkan pengguna
Buat identitas terkelola yang ditetapkan pengguna untuk digunakan sebagai kredensial identitas federasi.
Cari Identitas Terkelola di kotak pencarian. Temukan dan pilih ekstensi Identitas Terkelola.
Pilih + Buat.
Menyediakan grup sumber daya, wilayah, dan nama untuk identitas terkelola.
Pilih Tinjau + kreasikan.
Pada penyebaran yang berhasil, perhatikan Azure ResourceId dari identitas terkelola yang ditetapkan oleh pengguna, yang tersedia di bawah Properties. Contohnya:
/subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA
Penyedia layanan mengonfigurasi identitas terkelola yang ditetapkan pengguna sebagai kredensial federasi pada aplikasi
Konfigurasikan identitas terkelola yang ditetapkan pengguna sebagai kredensial identitas federasi pada aplikasi, sehingga dapat meniru identitas aplikasi.
Navigasi ke Microsoft Entra ID > pendaftaran aplikasi > aplikasi Anda.
Pilih Sertifikat & rahasia.
Pilih Kredensial Tergabung.
Pilih + Tambahkan kredensial.
Dalam skenario kredensial terfederasi, pilih Identitas Terkelola.
Klik Pilih identitas terkelola. Dari panel, pilih langganan. Di bagian Identitas terkelola, pilih Identitas terkelola yang ditetapkan pengguna. Di kotak Pilih, cari identitas terkelola yang Anda buat sebelumnya, lalu klik Pilih di bagian bawah panel.
Di bagian Detail kredensial, berikan nama dan deskripsi opsional untuk kredensial, lalu pilih Tambahkan.
Penyedia layanan berbagi ID aplikasi dengan pelanggan
Temukan ID aplikasi (ID klien) untuk aplikasi multitenan dan bagikan dengan pelanggan.
Pelanggan memberikan akses aplikasi penyedia layanan ke kunci di brankas kunci
Langkah-langkah berikut dilakukan oleh pelanggan di penyewa milik pelanggan Tenant2. Pelanggan dapat menggunakan portal Azure, Azure PowerShell, atau Azure CLI.
Pengguna yang menjalankan langkah-langkah harus menjadi administrator dengan peran istimewa seperti Administrator Aplikasi, Administrator Aplikasi Cloud, atau Administrator Global.
Masuk ke portal Azure dan ikuti langkah-langkah ini.
Pelanggan menginstal aplikasi penyedia layanan di penyewa pelanggan
Untuk menginstal aplikasi terdaftar dari penyedia layanan di tenant pelanggan, buat perwakilan layanan dengan ID aplikasi dari app yang terdaftar. Anda dapat membuat service principal dengan menggunakan salah satu cara berikut:
- Gunakan Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell, atau Azure CLI untuk membuat entitas layanan dengan manual.
- Buat URL persetujuan admin dan berikan persetujuan tenant seluruhnya untuk membuat service principal. Anda harus memberikan AppId Anda kepada mereka.
Pelanggan membuat brankas penyimpanan kunci
Untuk membuat key vault, akun pengguna harus diberi peran Key Vault Contributor atau peran lain yang mengizinkan pembuatan key vault.
Dari menu portal Azure, atau dari halaman Beranda, pilih + Buat sumber daya. Di kotak pencarian, masukkan Key Vaults. Dari daftar hasil, pilih Key Vault. Pada halaman Brankas kunci, pilih Buat.
Pada tab Dasar-dasar, pilih langganan. Di bagian Grup sumber daya, pilih Buat baru dan masukkan nama grup sumber daya.
Masukkan nama unik untuk brankas kunci.
Pilih wilayah dan tingkat harga.
Aktifkan perlindungan penghapusan untuk brankas kunci baru.
Pada tab Akses kebijakan, pilih kontrol akses berbasis peran Azure untuk Model Izin.
Pilih Ulas + buat, lalu pilih Buat.
Perhatikan nama dan URI brankas kunci. Aplikasi yang mengakses brankas kunci Anda harus menggunakan URI ini.
Untuk informasi selengkapnya, lihat Quickstart - Membuat Azure Key Vault dengan portal Azure.
Pelanggan menetapkan peran Petugas Kripto Key Vault ke akun pengguna
Langkah ini memastikan bahwa Anda dapat membuat kunci enkripsi.
- Navigasi ke brankas kunci Anda dan pilih Access Control (IAM) dari panel kiri.
- Di bagian Berikan akses ke sumber daya ini, pilih Tambahkan penetapan peran.
- Cari dan pilih Key Vault Crypto Officer.
- Di bagian Anggota, pilih Pengguna, grup, atau perwakilan layanan.
- Pilih Anggota dan cari akun pengguna Anda.
- Pilih Tinjau + Tentukan.
Pelanggan membuat kunci enkripsi
Untuk membuat kunci enkripsi, akun pengguna harus diberi peran Key Vault Crypto Officer atau peran lain yang mengizinkan pembuatan kunci.
- Pada halaman properti Key Vault, pilih Keys.
- Pilih Buat/impor.
- Pada layar Buat kunci, tentukan nama untuk kunci. Biarkan nilai lainnya tetap pada default.
- Pilih Buat.
- Salin URI kunci.
Pelanggan memberikan akses aplikasi penyedia layanan ke brankas kunci
Tetapkan peran RBAC Azure Pengguna Enkripsi Layanan Kripto di Key Vault ke aplikasi terdaftar penyedia layanan sehingga dapat mengakses key vault.
- Navigasi ke brankas kunci Anda dan pilih Access Control (IAM) dari panel kiri.
- Di bagian Berikan akses ke sumber daya ini, pilih Tambahkan penetapan peran.
- Cari dan pilih Key Vault Crypto Service Encryption User.
- Di bagian Anggota, pilih Pengguna, grup, atau perwakilan layanan.
- Pilih Anggota dan cari nama aplikasi di aplikasi yang Anda instal dari penyedia layanan.
- Pilih Tinjau + Tentukan.
Sekarang Anda dapat mengonfigurasi kunci yang dikelola oleh pelanggan dengan URI penyimpanan kunci dan kunci.
Buat set enkripsi disk dengan kunci yang dikelola pelanggan lintas penyewa
Setelah Anda membuat Azure Key Vault dan melakukan konfigurasi Microsoft Entra yang diperlukan, sebarkan satu set enkripsi disk yang dikonfigurasi untuk berfungsi lintas penyewa dan mengasosiasikannya dengan kunci di Azure Key Vault. Anda dapat melakukan ini menggunakan portal Azure, Azure PowerShell, atau Azure CLI. Anda juga dapat menggunakan templat ARM atau REST API.
Untuk menggunakan portal Azure, masuk ke portal dan ikuti langkah-langkah ini.
Pilih + Buat sumber daya, cari Set enkripsi disk, dan pilih Buat > set enkripsi Disk.
Di bawah detail Project, pilih grup langganan dan sumber daya untuk membuat kumpulan enkripsi disk.
Di bawah Detail instans, berikan nama untuk set enkripsi disk.
Pilih Wilayah dalam rangka membuat set enkripsi disk.
Untuk Jenis Enkripsi, pilih Enkripsi saat istirahat dengan kunci yang dikelola pelanggan.
Di bawah Kunci enkripsi, pilih tombol radio Masukkan kunci dari URI, lalu masukkan URI Kunci yang dibuat di penyewa milik pelanggan.
Di bawah Identitas yang ditetapkan pengguna, pilih Pilih identitas.
Pilih identitas terkelola yang ditetapkan pengguna yang Anda buat sebelumnya di penyewa ISV, lalu pilih Tambahkan.
Di bawah Aplikasi multipenyewa, pilih Pilih aplikasi.
Pilih aplikasi terdaftar multi-tenant yang Anda buat sebelumnya di tenant ISV (Vendor Perangkat Lunak Independen), lalu klik Pilih.
Pilih Tinjau + kreasikan.
Gunakan templat ARM
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"desname": {
"defaultValue": "<Enter ISV disk encryption set name>",
"type": "String"
},
"region": {
"defaultValue": "WestCentralUS",
"type": "String"
},
"userassignedmicmk": {
"defaultValue": "/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<Enter ISV User Assigned Identity Name>",
"type": "String"
},
"cmkfederatedclientId": {
"defaultValue": "<Enter ISV Multi-Tenant App Id>",
"type": "String"
},
"keyVaultURL": {
"defaultValue": "<Enter Client Key URL>",
"type": "String"
},
"encryptionType": {
"defaultValue": "EncryptionAtRestWithCustomerKey",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Compute/diskEncryptionSets",
"apiVersion": "2021-12-01",
"name": "[parameters('desname')]",
"location": "[parameters('region')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('userassignedmicmk')]": {}
}
},
"properties": {
"activeKey": {
"keyUrl": "[parameters('keyVaultURL')]"
},
"federatedClientId": "[parameters('cmkfederatedclientId')]",
"encryptionType": "[parameters('encryptionType')]"
}
}
]
}
Menggunakan REST API
Gunakan token pembawa sebagai header otorisasi dan aplikasi/JSON sebagai jenis konten di BODY. (Tab Jaringan, saring ke management.azure saat melakukan permintaan ARM apapun di portal.)
PUT https://management.azure.com/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV Resource Group Name>/providers/Microsoft.Compute/diskEncryptionSets/<Enter ISV Disk Encryption Set Name>?api-version=2021-12-01
Authorization: Bearer ...
Content-Type: application/json
{
"name": "<Enter ISV disk encryption set name>",
"id": "/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.Compute/diskEncryptionSets/<Enter ISV disk encryption set name>/",
"type": "Microsoft.Compute/diskEncryptionSets",
"location": "westcentralus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<Enter ISV User Assigned Identity Name>
": {}
}
},
"properties": {
"activeKey": {
"keyUrl": "<Enter Client Key URL>"
},
"encryptionType": "EncryptionAtRestWithCustomerKey",
"federatedClientId": "<Enter ISV Multi-Tenant App Id>"
}
}
Langkah berikutnya
Lihat juga: