Bagikan melalui


Aktifkan kunci yang dikelola pelanggan untuk layanan terkelola

Catatan

Fitur ini membutuhkan rencana Premium.

Untuk kontrol tambahan atas data, Anda dapat menambahkan kunci sendiri untuk melindungi dan mengontrol akses ke beberapa jenis data. Azure Databricks memiliki beberapa fitur utama yang dikelola pelanggan. Untuk membandingkan fitur terkait, lihat Kunci yang dikelola pelanggan untuk enkripsi.

Tip

Artikel ini menjelaskan cara mengonfigurasi kunci Anda sendiri dari vault Azure Key Vault untuk layanan terkelola. Untuk instruksi tentang menggunakan kunci dari Azure Key Vault Managed HSM, lihat Mengaktifkan kunci yang dikelola pelanggan HSM untuk layanan terkelola.

Data layanan terkelola di sarana kontrol Azure Databricks dienkripsi saat tidak aktif. Anda dapat menambahkan kunci yang dikelola pelanggan untuk layanan terkelola untuk membantu melindungi dan mengontrol akses ke jenis data terenkripsi berikut:

Setelah Anda menambahkan enkripsi kunci yang dikelola pelanggan untuk ruang kerja, Azure Databricks menggunakan kunci Anda untuk mengontrol akses ke kunci yang mengenkripsi operasi tulis di masa mendatang ke data layanan terkelola ruang kerja Anda. Data yang ada tidak dienkripsi ulang. Kunci enkripsi data di-cache dalam memori untuk beberapa operasi baca dan tulis dan dikeluarkan dari memori secara berkala. Permintaan baru untuk data tersebut memerlukan permintaan lain ke sistem manajemen kunci layanan cloud Anda. Jika Anda menghapus atau mencabut kunci Anda, membaca atau menulis ke data yang dilindungi gagal di akhir interval waktu cache.

Anda dapat memutar (memperbarui) kunci yang dikelola pelanggan di lain waktu. Lihat Memutar kunci di lain waktu.

Fitur ini tidak mengenkripsi penyimpanan data di luar sarana kontrol. Untuk fitur kunci lain yang dikelola pelanggan, lihat Kunci yang dikelola pelanggan untuk enkripsi

Persyaratan

  • Untuk menggunakan Azure CLI untuk tugas-tugas ini, instal alat Azure CLI dan instal ekstensi Databricks:

    az extension add --name databricks
    
  • Untuk menggunakan Powershell untuk tugas-tugas ini, instal Azure PowerShell dan instal modul Databricks Powershell. Anda juga harus masuk:

    Connect-AzAccount
    

    Untuk masuk ke akun Azure Anda sebagai pengguna, lihat Masuk PowerShell dengan akun pengguna Azure Databricks. Untuk masuk ke akun Azure Anda sebagai perwakilan layanan, lihat Login PowerShell dengan perwakilan layanan ID Microsoft Entra.

Langkah 1: Menyiapkan Key Vault

Anda harus membuat instans Azure Key Vault dan mengatur izinnya. Anda dapat melakukan ini melalui portal Azure, CLI, atau API.

Penting

Key Vault harus berada di penyewa Azure yang sama dengan ruang kerja Azure Databricks Anda.

Instruksi ini menawarkan detail beberapa opsi penyebaran:

Menggunakan portal Microsoft Azure

  1. Buat atau pilih Key Vault:
    • Untuk membuat Key Vault, buka halaman portal Azure untuk membuat Key Vault. Klik + Buat. Masukkan nama grup sumber daya, nama Key Vault, wilayah, dan tingkat harga. Klik Tinjau + buat lalu klik Buat.
    • Untuk menggunakan Key Vault yang ada, salin nama Key Vault-nya untuk langkah berikutnya.
  2. Dapatkan ID objek aplikasi AzureDatabricks :
    1. Di portal Azure, buka Microsoft Entra ID.
    2. Pilih Aplikasi Enterprise dari menu bilah sisi.
    3. Cari AzureDatabricks dan klik Aplikasi Perusahaan di hasilnya.
    4. Dari Properti, salin ID objek.
  3. Tambahkan kebijakan akses ke Key Vault menggunakan portal Azure:
    1. Navigasi ke Azure Key Vault yang akan Anda gunakan untuk mengonfigurasi kunci yang dikelola pelanggan untuk layanan terkelola untuk ruang kerja Anda.

    2. Klik tab Kebijakan akses dari panel sisi kiri.

    3. Pilih tombol Buat yang ditemukan di bagian atas halaman.

    4. Pada bagian izin kunci di tab izin, aktifkan Dapatkan, Buka Bungkus Kunci, dan Bungkus kunci.

    5. Klik Berikutnya.

    6. Pada tab Utama , ketik AzureDatabricks dan gulir ke hasil Aplikasi Perusahaan pertama yang memiliki ID 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d Aplikasi dan pilih.

      Pilih aplikasi AzureDatabricks dengan ID 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d

    7. Lanjutkan ke tab Tinjau + buat dan klik b.

Menggunakan Azure CLI

Gunakan Azure CLI untuk menyelesaikan instruksi berikut.

  1. Buat Key Vault atau pilih Key Vault yang sudah ada:

    • Untuk membuat Key Vault, gunakan perintah Azure CLI berikut dan ganti item dalam tanda kurung dengan wilayah Anda, nama Key Vault, nama grup sumber daya, dan lokasi:

      az keyvault create --location <region> \
                         --name <key-vault-name> \
                         --resource-group <resource-group-name> \
                         --location <location> \
                         --enable-purge-protection
      
    • Untuk menggunakan Key Vault yang ada, salin nama Key Vault untuk langkah berikutnya.

  2. Dapatkan ID objek aplikasi AzureDatabricks dengan Azure CLI.

    az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \
                  --query "id" \
                  --output tsv
    
  3. Konfirmasikan bahwa Anda menggunakan langganan Azure yang benar:

    az account set --subscription {subscription_id}
    

Menggunakan Azure Powershell

Anda dapat membuat Key Vault baru atau menggunakan key vault yang sudah ada.

Buat Key Vault:

$keyVault = New-AzKeyVault -Name <key-vault-name> \
-ResourceGroupName <resource-group-name> \
-Location <location> \
-sku <sku> \
-EnablePurgeProtection

Gunakan Key Vault yang ada:

$keyVault = Get-AzKeyVault -VaultName <key-vault-name>

Langkah 2: Menyiapkan kunci

Anda dapat membuat kunci atau menggunakan kunci yang ada. Gunakan alat apa pun yang ingin Anda gunakan: portal Azure, Azure CLI, atau alat lainnya.

Gunakan Azure CLI

Buat kunci di bawah Key Vault. KeyType harus RSA.

Untuk membuat kunci di CLI, jalankan perintah ini:

az keyvault key create --name <key-name> \
                       --vault-name <key-vault-name> \
                       --protection software

Catat nilai-nilai berikut, yang bisa Anda dapatkan dari ID kunci di properti kid dalam respons. Anda akan menggunakannya pada langkah berikutnya:

  • URL brankas kunci: Bagian awal ID kunci yang menyertakan nama Key Vault. URL ini memiliki format https://<key-vault-name>.vault.azure.net.
  • Nama kunci: Nama kunci Anda.
  • Versi kunci: Versi kunci tersebut.

ID kunci lengkap biasanya memiliki formulir https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Kunci Azure Key Vault yang berada di cloud non-publik memiliki bentuk yang berbeda.

Untuk menggunakan kunci yang sudah ada alih-alih membuatnya, dapatkan dan salin nilai-nilai ini untuk kunci Anda sehingga Anda dapat menggunakannya di langkah berikutnya. Periksa untuk mengonfirmasi bahwa kunci yang ada diaktifkan sebelum melanjutkan.

Menggunakan Azure Powershell

  1. Jika Anda berencana untuk membuat kunci, Anda mungkin perlu mengatur kebijakan akses, tergantung pada bagaimana dan kapan Anda membuatnya. Misalnya, jika Anda baru saja membuat Key Vault menggunakan PowerShell, Key Vault baru Anda mungkin tidak memiliki kebijakan akses yang diperlukan untuk membuat kunci. Contoh berikut menggunakan EmailAddress parameter untuk mengatur kebijakan. Untuk detail terkait, lihat artikel Microsoft tentang Set-AzKeyVaultAccessPolicy.

    Atur kebijakan akses pada Key Vault baru:

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. Anda dapat membuat kunci atau mengambil kunci yang ada:

    • Buat kunci:

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • Ambil kunci yang ada:

      $key = Get-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name>
      
  3. Tambahkan kebijakan akses dengan izin ke Key Vault:

    $managedService = Get-AzureADServicePrincipal \
    -Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'"
    
    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $managedService.ObjectId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

Langkah 3: Menambahkan kunci ke ruang kerja

Anda dapat menyebarkan ruang kerja baru dengan kunci yang dikelola pelanggan untuk layanan terkelola atau menambahkan kunci ke ruang kerja yang sudah ada. Anda dapat melakukan keduanya dengan Azure CLI, Powershell, templat ARM, portal Azure, atau alat lainnya. Bagian ini mencakup detail untuk beberapa opsi penyebaran:

Gunakan portal Azure tanpa templat

  1. Buka beranda Portal Microsoft Azure.

  2. Klik Buat sumber daya di sudut kiri atas halaman.

  3. Di dalam bilah pencarian, ketik Azure Databricks dan klik opsi Azure Databricks .

  4. Klik Buat di widget Azure Databricks.

  5. Masukkan nilai untuk bidang input pada tab Dasar dan Jaringan .

  6. Setelah Anda mencapai tab Enkripsi :

    • Untuk membuat ruang kerja, aktifkan Gunakan kunci Anda sendiri di bagian Layanan Terkelola.
    • Untuk memperbarui ruang kerja, aktifkan Layanan Terkelola.
  7. Atur bidang enkripsi.

    Perlihatkan bidang di bagian Disk Terkelola dari bilah Azure Databricks

    • Di bidang Pengidentifikasi Kunci, tempelkan Pengidentifikasi Kunci kunci Azure Key Vault Anda.
    • Di menu dropdown Langganan, masukkan nama langganan kunci Azure Key Vault Anda.
  8. Selesaikan tab yang tersisa dan klik Tinjau + Buat (untuk ruang kerja baru) atau Simpan (untuk memperbarui ruang kerja).

Penting

Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

Menggunakan Azure CLI tanpa templat

  1. Tambahkan kebijakan akses ke Key Vault dengan perintah berikut. Ganti <key-vault-name> dengan nama vault yang Anda gunakan di langkah sebelumnya dan ganti <object-id> dengan ID AzureDatabricks objek aplikasi.

    az keyvault set-policy -n <key-vault-name> \
                           --key-permissions get wrapKey unwrapKey  \
                           --object-id <object-id>
    
  2. Membuat atau memperbarui ruang kerja:

    Untuk pembuatan dan pembaruan, tambahkan bidang ini ke perintah :

    • managed-services-key-name: Nama kunci
    • managed-services-key-vault: URI brankas kunci
    • managed-services-key-version: Versi kunci

    Contoh pembuatan ruang kerja menggunakan bidang ini:

    az databricks workspace create --name <workspace-name> \
    --resource-group <resource-group-name> \
    --location <location> \
    --sku premium \
    --managed-services-key-name <key-name> \
    --managed-services-key-vault <key-vault-uri> \
    --managed-services-key-version <key-version>
    

    Contoh pembaruan ruang kerja menggunakan bidang ini:

    az databricks workspace update --name <workspace-name> \
    --resource-group <resource-group-name> \
    --managed-services-key-name <key-name> \
    --managed-services-key-vault <key-vault-uri> \
    --managed-services-key-version <key-version>
    

Penting

Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

Menggunakan Powershell tanpa templat

Untuk membuat atau memperbarui ruang kerja, tambahkan parameter berikut ke perintah untuk kunci baru Anda:

  • ManagedServicesKeyVaultPropertiesKeyName: Nama kunci
  • ManagedServicesKeyVaultPropertiesKeyVaultUri: URI Kunci
  • ManagedServicesKeyVaultPropertiesKeyVersion: Versi kunci

Contoh pembuatan ruang kerja dengan bidang-bidang ini:

New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version

Contoh pembaruan ruang kerja dengan bidang ini:

Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version

Penting

Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

Menerapkan perubahan dengan templat ARM

Templat ARM berikut membuat ruang kerja baru dengan kunci yang dikelola pelanggan, menggunakan versi 2023-02-01 API untuk sumber daya Microsoft.Databricks/workspaces. Simpan teks ini secara lokal ke file bernama databricks-cmk-template.json.

Contoh templat ini tidak menyertakan semua fitur Azure Databricks yang mungkin, seperti menyediakan VNet Anda sendiri untuk menyebarkan ruang kerja.

Penting

Jika Anda sudah menggunakan templat, gabungkan parameter, sumber daya, dan output tambahan templat ini ke dalam templat yang ada.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspaceName": {
      "type": "string",
      "metadata": {
        "description": "The name of the Azure Databricks workspace to create."
      }
    },
    "pricingTier": {
      "type": "string",
      "defaultValue": "premium",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "The pricing tier of workspace."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "apiVersion": {
      "type": "string",
      "defaultValue": "2023-02-01",
      "allowedValues":[
        "2023-02-01",
        "2021-04-01-preview"
      ],
      "metadata": {
        "description": "The api version to create the workspace resources"
      }
    },
    "keyvaultUri": {
      "type": "string",
      "metadata": {
        "description": "The Key Vault URI for customer-managed key for managed services"
      }
    },
    "keyName": {
      "type": "string",
      "metadata": {
        "description": "The key name used for customer-managed key for managed services"
      }
    },
    "keyVersion": {
      "type": "string",
      "metadata": {
        "description": "The key version used for customer-managed key for managed services"
      }
    }
  },
  "variables": {
    "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Databricks/workspaces",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "apiVersion": "[parameters('apiVersion')]",
      "sku": {
        "name": "[parameters('pricingTier')]"
      },
      "properties": {
        "ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
        "encryption": {
          "entities": {
             "managedServices": {
                "keySource": "Microsoft.Keyvault",
                "keyVaultProperties": {
                   "keyVaultUri": "[parameters('keyvaultUri')]",
                   "keyName": "[parameters('keyName')]",
                   "keyVersion": "[parameters('keyVersion')]"
                }
             }
          }
        }
      }
    }
  ],
  "outputs": {
    "workspace": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
    }
  }
}

Jika Anda sudah menggunakan templat yang lain, Anda dapat menggabungkan parameter, sumber daya, dan output templat ini ke dalam templat yang ada.

Untuk menggunakan templat ini untuk membuat atau memperbarui ruang kerja, pilih salah satu opsi penyebaran ini:

Menerapkan templat dengan Azure CLI

Untuk membuat ruang kerja baru dengan Azure CLI, jalankan perintah berikut:

az deployment group create --resource-group <resource-group-name>  \
                           --template-file <file-name>.json \
                           --parameters workspaceName=<new-workspace-name> \
                           keyvaultUri=<keyvaultUrl> \
                           keyName=<keyName> keyVersion=<keyVersion>

Untuk memperbarui ruang kerja yang ada untuk menggunakan ruang kerja kunci yang dikelola pelanggan (atau untuk memutar kunci yang ada) menggunakan Azure CLI:

  1. Jika templat ARM Anda yang menyebarkan ruang kerja tidak pernah menambahkan kunci yang dikelola pelanggan, tambahkan bagian resources.properties.encryption dan parameter terkaitnya. Lihat templat sebelumnya di artikel ini.

    1. Tambahkan bagian resources.properties.encryption dari templat.
    2. Di bagian parameters, tambahkan tiga parameter baru keyvaultUri, keyName, dan keyVersion dari templat.
  2. Jalankan perintah yang sama seperti untuk membuat ruang kerja baru. Selama nama grup sumber daya dan nama ruang kerja identik dengan ruang kerja Anda yang ada, perintah ini memperbarui ruang kerja yang ada daripada membuat ruang kerja baru.

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<existing-workspace-name> \
                               keyvaultUri=<keyvaultUrl> \
                               keyName=<keyName> keyVersion=<keyVersion>
    

    Selain perubahan dalam parameter terkait kunci, gunakan parameter yang sama yang digunakan untuk membuat ruang kerja.

    Penting

    Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

Menerapkan templat dengan portal Azure

Untuk menggunakan templat di portal Microsoft Azure untuk membuat atau memperbarui ruang kerja:

  1. Buka halaman Penyebaran kustom.

  2. Klik Buat templat Anda sendiri di editor.

  3. Tempel di JSON.

  4. Klik Simpan.

  5. Isi parameternya.

    Untuk memperbarui ruang kerja yang ada, gunakan parameter yang sama dengan yang Anda gunakan untuk membuat ruang kerja. Untuk menambahkan kunci untuk pertama kalinya, tambahkan tiga parameter terkait kunci. Untuk memutar kunci, ubah beberapa atau semua parameter terkait kunci. Pastikan nama grup sumber daya dan nama ruang kerja identik dengan ruang kerja Anda yang ada. Jika sama, perintah ini memperbarui ruang kerja yang ada daripada membuat ruang kerja baru.

    Selain perubahan dalam parameter terkait kunci, gunakan parameter yang sama yang digunakan untuk membuat ruang kerja.

  6. Klik Tinjau + Buat.

  7. Jika tidak ada masalah validasi, klik Buat.

    Penting

    Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

Untuk detail selengkapnya, lihat artikel Azure Mulai cepat: Membuat dan menyebarkan templat ARM dengan menggunakan portal Microsoft Azure.

Langkah 4 (opsional): Impor ulang buku catatan

Setelah Anda menambahkan kunci untuk layanan terkelola untuk ruang kerja yang ada, hanya opera tulis yang menggunakan kunci Anda. Data yang ada tidak dienkripsi ulang.

Anda dapat mengekspor semua notebook lalu mengimpornya kembali sehingga kunci yang mengenkripsi data dilindungi dan dikontrol oleh kunci Anda. Anda dapat menggunakan Ekspor dan Impor API Ruang Kerja.

Putar kunci di lain waktu

Jika Anda sudah menggunakan kunci yang dikelola pelanggan untuk layanan terkelola, Anda dapat memperbarui ruang kerja dengan versi kunci baru, atau kunci yang sama sekali baru. Ini disebut rotasi kunci.

  1. Buat kunci baru atau putar kunci yang sudah ada di Key Vault. Lihat Langkah 1: Menyiapkan Key Vault.

    Pastikan kunci baru memiliki izin yang tepat.

  2. Konfirmasikan bahwa templat Anda memiliki versi API yang benar. Ini harus sama dengan atau lebih tinggi dari 2021-04-01-preview.

  3. Perbarui ruang kerja dengan kunci baru Anda menggunakan portal, CLI, atau PowerShell. Lihat Langkah 3: Tambahkan kunci ke ruang kerja dan ikuti instruksi untuk pembaruan ruang kerja. Pastikan Anda menggunakan nilai yang sama untuk nama grup sumber daya dan nama ruang kerja sehingga memperbarui ruang kerja yang ada, daripada membuat ruang kerja baru. Selain perubahan dalam parameter terkait kunci, gunakan parameter yang sama yang digunakan untuk membuat ruang kerja.

    Penting

    Jika Anda memutar kunci, Anda harus menjaga kunci lama tetap tersedia selama 24 jam.

  4. Ekspor dan impor ulang buku catatan yang sudah ada secara opsional untuk memastikan bahwa semua buku catatan yang sudah ada menggunakan kunci baru Anda.

Pemecahan Masalah

Penghapusan kunci secara tidak sengaja

Jika Anda menghapus kunci Anda di Azure Key Vault, login ruang kerja akan mulai gagal dan tidak ada buku catatan yang dapat dibaca oleh Azure Databricks. Untuk menghindari hal ini, kami sarankan Anda mengaktifkan penghapusan sementara. Opsi ini memastikan bahwa jika kunci dihapus, kunci dapat dipulihkan dalam periode 30 hari. Jika penghapusan sementara diaktifkan, Anda cukup mengaktifkan kembali kunci untuk menyelesaikan masalah.

Kegagalan pembaruan utama karena izin Key Vault

Jika Anda mengalami masalah saat membuat ruang kerja, periksa apakah Key Vault Anda memiliki izin yang benar. Kesalahan yang dikembalikan dari Azure mungkin tidak menunjukkan hal ini dengan benar sebagai akar penyebabnya. Selain itu, izin yang diperlukan adalah get, wrapKey, dan unwrapKey. Lihat Langkah 1: Menyiapkan Key Vault.

Kunci yang hilang tidak dapat dipulihkan

Jika Anda kehilangan kunci dan tidak dapat memulihkannya, semua data buku catatan yang dienkripsi dengan kunci tersebut tidak dapat dipulihkan.