Bagikan melalui


Mengonfigurasi kunci lintas penyewa yang dikelola pelanggan untuk akun Azure Cosmos DB Anda dengan Azure Key Vault

BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja

Data yang disimpan di akun Azure Cosmos DB Anda dienkripsi secara otomatis dan mulus dengan kunci yang dikelola layanan yang dikelola oleh Microsoft. Namun, Anda dapat memilih untuk menambahkan enkripsi lapisan kedua dengan kunci yang Anda kelola. Kunci ini dikenal sebagai kunci yang dikelola pelanggan (atau CMK). Kunci yang dikelola pelanggan disimpan dalam instans Azure Key Vault.

Artikel ini menjelaskan cara mengonfigurasi enkripsi dengan kunci yang dikelola pelanggan pada saat Anda membuat akun Azure Cosmos DB. Dalam contoh skenario lintas penyewa ini, akun Azure Cosmos DB berada di penyewa yang dikelola oleh Vendor Perangkat Lunak Independen (ISV) yang disebut sebagai penyedia layanan. Kunci yang digunakan untuk enkripsi akun Azure Cosmos DB berada di brankas kunci di penyewa berbeda yang dikelola oleh pelanggan.

Tentang kunci yang dikelola pelanggan lintas penyewa

Banyak penyedia layanan yang membuat 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. Di 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 oleh penyedia layanan dan yang berada di penyewa penyedia layanan memerlukan akses ke kunci dari penyewa pelanggan untuk melakukan operasi enkripsi/dekripsi.

Gambar di bawah ini menunjukkan enkripsi data tidak aktif dengan identitas federasi dalam alur kerja kunci yang dikelola pelanggan lintas penyewa yang mencakup penyedia layanan dan pelanggannya.

Cuplikan layar menunjukkan kunci yang dikelola pelanggan lintas penyewa dengan identitas gabungan.

Dalam contoh di atas, ada dua penyewa Microsoft Entra: penyewa penyedia layanan independen (Penyewa 1), dan penyewa pelanggan (Penyewa 2). Penyewa 1 menghosting layanan platform Azure dan Penyewa 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 perwakilan layanan yang terkait dengan akses 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 untuk aplikasi multipenyewa yang diinstal di penyewa pelanggan, yang telah diberikan akses ke kunci yang dikelola pelanggan.
  • Identitas terkelola yang dikonfigurasi sebagai kredensial pada aplikasi multipenyewa.
  • Lokasi kunci di key vault pelanggan.

Dengan ketiga parameter ini, penyedia layanan menyediakan sumber daya Azure di Penyewa 1 yang dapat dienkripsi dengan kunci yang dikelola pelanggan di Penyewa 2.

Mari kita bagi solusi menyeluruh di atas menjadi tiga fase:

  1. Penyedia layanan mengonfigurasikan identitas.
  2. Pelanggan memberikan akses aplikasi multipenyewa penyedia layanan ke kunci enkripsi di Azure Key Vault.
  3. Penyedia layanan mengenkripsi data dalam sumber daya Azure menggunakan CMK.

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 di Azure RBAC Peran minimum dalam Microsoft Entra RBAC
1. Buat pendaftaran aplikasi Microsoft Entra multipenyewa baru atau mulailah dengan pendaftaran aplikasi yang ada. Perhatikan bahwa ID aplikasi (ID klien) pendaftaran aplikasi menggunakan portal Azure, Microsoft Graph API, Azure PowerShell, atau Azure CLI Tidak Pengembang Aplikasi
2. Buat identitas terkelola yang ditetapkan pengguna (untuk digunakan sebagai Kredensial Identitas Gabungan).
Portal Azure / Azure CLI / Azure PowerShell/ Template Azure Resource Manager
Kontributor identitas terkelola Tidak
3. Konfigurasikan identitas terkelola yang ditetapkan pengguna sebagai kredensial identitas gabungan pada aplikasi, sehingga dapat meniru identitas aplikasi.
Referensi Graph API/ portal Azure/ Azure CLI/ Azure PowerShell
Tidak Pemilik aplikasi
4. Bagikan nama aplikasi dan ID aplikasi kepada pelanggan, sehingga mereka dapat menginstal dan mengotorisasi aplikasi. Tidak Tidak

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 cara objek aplikasi yang digunakan untuk fitur ini digunakan guna mempartisi aplikasi Anda di semua pelanggan.
  • 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 Penerbit.

Fase 2 - Pelanggan mengotorisasi akses ke key vault

Langkah Deskripsi Peran Azure RBAC dengan hak istimewa paling sedikit Peran Microsoft Entra dengan hak istimewa paling sedikit
1.
  • Disarankan: Arahkan pengguna untuk masuk ke aplikasi Anda. Jika pengguna dapat masuk, perwakilan layanan untuk aplikasi Anda ada di penyewa mereka.
  • Gunakan Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell, atau Azure CLI untuk membuat perwakilan layanan.
  • Buat URL persetujuan admin dan berikan persetujuan seluruh penyewa untuk membuat perwakilan layanan menggunakan ID aplikasi.
  • Tidak Pengguna dengan izin untuk menginstal aplikasi
    2. Buat Azure Key Vault dan kunci yang digunakan sebagai kunci yang dikelola pelanggan. Pengguna harus diberi peran Kontributor Key Vault untuk membuat brankas kunci

    Pengguna harus diberi peran Petugas Kripto Key Vault untuk menambahkan kunci ke key vault
    Tidak
    3. Berikan akses identitas aplikasi yang disetujui ke key vault Azure dengan menetapkan peran Pengguna Enkripsi Layanan Kripto Key Vault Untuk menetapkan peran Pengguna Enkripsi Layanan Kripto Key Vault ke aplikasi, Anda harus diberi peran Administrator Akses Pengguna. Tidak
    4. Salin URL key vault dan nama kunci ke dalam konfigurasi kunci yang dikelola pelanggan dari penawaran SaaS. Tidak Tidak ada

    Catatan

    Untuk mengotorisasi akses ke HSM Terkelola untuk enkripsi menggunakan CMK, lihat contoh untuk Akun Penyimpanan di sini. Untuk informasi selengkapnya tentang mengelola kunci dengan HSM Terkelola, lihat Mengelola 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 perwakilan layanan. Jika kebijakan seperti itu dikonfigurasi, maka pengguna dengan izin untuk membuat perwakilan layanan perlu terlibat.
    • Akses ke Azure Key Vault dapat diotorisasi menggunakan Azure RBAC atau kebijakan akses. Saat memberikan akses ke key vault, pastikan untuk menggunakan mekanisme aktif untuk key vault Anda.
    • Pendaftaran aplikasi Microsoft Entra memiliki ID aplikasi (ID klien). Saat aplikasi diinstal di penyewa Anda, perwakilan 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 perwakilan Name layanan atau ObjectID properti.

    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 yang dikelola pelanggan lintas penyewa dengan alat klien yang didukung oleh sumber daya Azure tersebut, dengan templat ARM, atau dengan REST API.

    Mengonfigurasi kunci yang dikelola pelanggan lintas penyewa

    Bagian ini menjelaskan cara mengonfigurasi kunci yang dikelola pelanggan (CMK) lintas penyewa dan mengenkripsi data pelanggan. Anda akan mempelajari cara mengenkripsi data pelanggan dalam sumber daya di Tenant1 menggunakan CMK yang disimpan dalam brankas kunci di Tenant2. Anda dapat menggunakan portal Azure, Azure PowerShell, atau Azure CLI.

    Masuk ke portal Azure dan ikuti langkah-langkah berikut.

    Penyedia layanan mengonfigurasi identitas

    Langkah-langkah berikut dilakukan oleh penyedia layanan di penyewa penyedia layanan Tenant1.

    Penyedia layanan membuat pendaftaran aplikasi multi-penyewa baru

    Anda dapat membuat pendaftaran aplikasi Microsoft Entra multi-penyewa baru atau mulai dengan pendaftaran aplikasi multi-penyewa yang ada. Jika memulai dengan pendaftaran aplikasi yang ada, perhatikan ID aplikasi (ID klien) aplikasi.

    Untuk membuat pendaftaran baru:

    1. Cari ID Microsoft Entra di kotak pencarian. Temukan dan pilih ekstensi ID Microsoft Entra.

    2. Pilih Kelola > Pendaftaran aplikasi dari panel kiri.

    3. Pilih + Pendaftaran baru.

    4. Berikan nama untuk pendaftaran aplikasi dan pilih Akun di direktori organisasi apa pun (Direktori Microsoft Entra apa pun – Multipenyewa).

    5. Pilih Daftarkan.

    6. Perhatikan ApplicationId/ClientId aplikasi.

      Cuplikan layar yang menampilkan cara membuat pendaftaran aplikasi multi penyewa baru.

    Penyedia layanan membuat identitas terkelola yang ditetapkan pengguna

    Buat identitas terkelola yang ditetapkan pengguna untuk digunakan sebagai kredensial identitas federasi.

    1. Cari Identitas Terkelola di kotak pencarian. Temukan dan pilih ekstensi Identitas Terkelola.

    2. Pilih + Buat.

    3. Menyediakan grup sumber daya, wilayah, dan nama untuk identitas terkelola.

    4. Pilih Tinjau + buat.

    5. Pada penyebaran yang berhasil, perhatikan Azure ResourceId dari identitas terkelola yang ditetapkan pengguna, yang tersedia di bagian Properti. Contohnya:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      Cuplikan layar yang menampilkan cara membuat grup sumber daya dan identitas terkelola yang ditetapkan pengguna.

    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.

    1. Navigasikan ke ID > Microsoft Entra Pendaftaran aplikasi > aplikasi Anda.

    2. Pilih Sertifikat & rahasia.

    3. Pilih Kredensial federasi.

      Cuplikan layar yang menampilkan cara membuka Sertifikat dan rahasia.

    4. Pilih + Tambahkan kredensial.

    5. Di bagian Skenario kredensial federasi, pilih Kunci yang Dikelola Pelanggan.

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

      Cuplikan layar yang menampilkan cara memilih identitas terkelola.

    7. Di bagian Detail kredensial, berikan nama dan deskripsi opsional untuk kredensial, lalu pilih Tambahkan.

      Cuplikan layar yang menampilkan cara menambahkan kredensial.

    Penyedia layanan berbagi ID aplikasi dengan pelanggan

    Temukan ID aplikasi (ID klien) aplikasi multi-penyewa dan bagikan dengan pelanggan.

    Pelanggan memberikan akses aplikasi penyedia layanan ke kunci di brankas kunci

    Langkah-langkah berikut dilakukan oleh pelanggan di penyewa 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 berikut.

    Pelanggan menginstal aplikasi penyedia layanan di penyewa pelanggan

    Untuk menginstal aplikasi terdaftar penyedia layanan di penyewa pelanggan, buat perwakilan layanan dengan ID aplikasi dari aplikasi terdaftar. Anda dapat membuat perwakilan layanan dengan salah satu cara berikut:

    Pelanggan membuat brankas kunci

    Untuk membuat brankas kunci, akun pengguna harus diberi peran Kontributor Key Vault atau peran lain yang mengizinkan pembuatan brankas kunci.

    1. Dari menu portal Azure, atau dari halaman Beranda, pilih + Buat sumber daya. Di kotak Pencarian, masukkan Brankas kunci. Dari daftar hasil, pilih Brankas kunci. Pada halaman Brankas kunci, pilih Buat.

    2. Pada tab Dasar-dasar, pilih langganan. Di bagian Grup sumber daya, pilih Buat baru dan masukkan nama grup sumber daya.

    3. Masukkan nama unik untuk brankas kunci.

    4. Pilih wilayah dan tingkat harga.

    5. Aktifkan perlindungan penghapusan menyeluruh untuk brankas kunci baru.

    6. Pada tab Kebijakan akses, pilih Kontrol akses berbasis peran Azure untuk Model izin.

    7. Pilih Ulas + buat, lalu pilih Buat.

      Cuplikan layar yang menampilkan cara membuat brankas kunci.

    Perhatikan nama brankas kunci dan Aplikasi URI yang mengakses brankas kunci Anda harus menggunakan URI ini.

    Untuk informasi selengkapnya, lihat Mulai Cepat - 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.

    1. Buka brankas kunci Anda dan pilih Access Control (IAM) dari panel kiri.
    2. Di bagian Berikan akses ke sumber daya ini, pilih Tambahkan penetapan peran.
    3. Cari dan pilih Petugas Kripto Key Vault.
    4. Di bagian Anggota, pilih Pengguna, grup, atau perwakilan layanan.
    5. Pilih Anggota dan cari akun pengguna Anda.
    6. Pilih Tinjau + Tetapkan.

    Pelanggan membuat kunci enkripsi

    Untuk membuat kunci enkripsi, akun pengguna harus diberi peran Petugas Kripto Key Vault atau peran lain yang mengizinkan pembuatan kunci.

    1. Pada halaman properti Key Vault, pilih Kunci.
    2. Pilih Buat/impor.
    3. Pada layar Buat kunci, tentukan nama untuk kunci. Biarkan nilai lainnya mengikuti default.
    4. Pilih Buat.
    5. Salin URI kunci.

    Pelanggan memberikan akses aplikasi penyedia layanan ke brankas kunci

    Tetapkan peran Azure RBAC Pengguna Enkripsi Layanan Kripto Key Vault ke aplikasi terdaftar penyedia layanan sehingga dapat mengakses brankas kunci.

    1. Buka brankas kunci Anda dan pilih Access Control (IAM) dari panel kiri.
    2. Di bagian Berikan akses ke sumber daya ini, pilih Tambahkan penetapan peran.
    3. Cari dan pilih Pengguna Enkripsi Layanan Kripto Key Vault.
    4. Di bagian Anggota, pilih Pengguna, grup, atau perwakilan layanan.
    5. Pilih Anggota dan cari nama aplikasi di aplikasi yang Anda instal dari penyedia layanan.
    6. Pilih Tinjau + Tetapkan.

    Sekarang Anda dapat mengonfigurasi kunci yang dikelola pelanggan dengan kunci dan URI brankas kunci.

    Membuat akun Azure Cosmos DB baru yang dienkripsi dengan kunci dari penyewa yang berbeda

    Hingga saat ini, Anda telah mengonfigurasi aplikasi multi-penyewa pada penyewa penyedia layanan. Anda juga telah menginstal aplikasi pada penyewa pelanggan dan mengonfigurasi brankas kunci dan kunci pada penyewa pelanggan. Selanjutnya Anda dapat membuat akun Azure Cosmos DB di penyewa penyedia layanan dan mengonfigurasi kunci yang dikelola pelanggan dengan kunci dari penyewa pelanggan.

    Saat membuat akun Azure Cosmos DB dengan kunci yang dikelola pelanggan, kita harus memastikan bahwa akun tersebut memiliki akses ke kunci yang digunakan pelanggan. Dalam skenario penyewa tunggal, berikan akses brankas kunci langsung ke perwakilan Azure Cosmos DB atau gunakan identitas terkelola tertentu. Dalam skenario lintas penyewa, kita tidak dapat lagi bergantung pada akses langsung ke brankas kunci seperti di penyewa lain yang dikelola oleh pelanggan. Kendala ini adalah alasan di bagian sebelumnya kami membuat aplikasi lintas penyewa dan mendaftarkan identitas terkelola di dalam aplikasi untuk memberinya akses ke brankas kunci pelanggan. Identitas terkelola ini, ditambah dengan ID aplikasi lintas penyewa, adalah apa yang akan kita gunakan saat membuat Akun CMK Azure Cosmos DB lintas penyewa. Untuk informasi selengkapnya, lihat bagian Fase 3 - Penyedia layanan mengenkripsi data di sumber daya Azure menggunakan bagian kunci yang dikelola pelanggan di artikel ini.

    Setiap kali versi baru kunci tersedia di brankas kunci, kunci akan diperbarui secara otomatis pada akun Azure Cosmos DB.

    Menggunakan templat JSON Azure Resource Manager

    Sebarkan templat ARM dengan parameter tertentu berikut:

    Catatan

    Jika Anda membuat ulang sampel ini di salah satu templat Azure Resource Manager Anda, gunakan apiVersion dari 2022-05-15.

    Parameter Deskripsi Contoh nilai
    keyVaultKeyUri Pengidentifikasi kunci yang dikelola pelanggan yang berada di brankas kunci penyedia layanan. https://my-vault.vault.azure.com/keys/my-key
    identity Objek yang menentukan bahwa identitas terkelola harus ditetapkan ke akun Azure Cosmos DB. "identity":{"type":"UserAssigned","userAssignedIdentities":{"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity":{}}}
    defaultIdentity Kombinasi ID sumber daya identitas terkelola dan ID aplikasi aplikasi Microsoft Entra multi-penyewa. UserAssignedIdentity=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity&FederatedClientId=11111111-1111-1111-1111-111111111111

    Berikut adalah contoh segmen templat dengan tiga parameter yang dikonfigurasi:

    {
      "kind": "GlobalDocumentDB",
      "location": "East US 2",
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity": {}
        }
      },
      "properties": {
        "locations": [
          {
            "locationName": "East US 2",
            "failoverPriority": 0,
            "isZoneRedundant": false
          }
        ],
        "databaseAccountOfferType": "Standard",
        "keyVaultKeyUri": "https://my-vault.vault.azure.com/keys/my-key",
        "defaultIdentity": "UserAssignedIdentity=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity&FederatedClientId=11111111-1111-1111-1111-111111111111"
      }
    }
    

    Penting

    Fitur ini belum didukung di Azure PowerShell, Azure CLI, atau portal Azure.

    Anda tidak dapat mengonfigurasi kunci yang dikelola pelanggan dengan versi kunci tertentu saat membuat akun Azure Cosmos DB baru. Kunci itu sendiri harus diteruskan tanpa versi dan tidak ada garis miring terbalik berikutnya.

    Untuk Mencabut atau Menonaktifkan kunci yang dikelola pelanggan, lihat mengonfigurasi kunci yang dikelola pelanggan untuk akun Azure Cosmos DB Anda dengan Azure Key Vault

    Lihat juga