Tutorial: Menyambungkan ke Azure Data Lake Storage

Penting

Dokumentasi ini telah dihentikan dan mungkin tidak diperbarui.

Artikel ini menjelaskan pola warisan untuk mengonfigurasi akses ke Azure Data Lake Storage. Databricks merekomendasikan penggunaan Unity Catalog dengan identitas terkelola Azure. Lihat Menggunakan identitas terkelola Azure di Unity Catalog untuk mengakses penyimpanan.

Tutorial ini memandu Anda melalui semua langkah yang diperlukan untuk terhubung dari Azure Databricks ke Azure Data Lake Storage menggunakan OAuth 2.0 dengan perwakilan layanan MICROSOFT Entra ID.

Persyaratan

Selesaikan tugas berikut sebelum Anda memulai tutorial ini:

Langkah 1: Membuat perwakilan layanan ID Microsoft Entra

Untuk menggunakan perwakilan layanan untuk menyambungkan ke Azure Data Lake Storage, pengguna admin harus membuat aplikasi ID Microsoft Entra baru. Jika Anda sudah memiliki perwakilan layanan ID Microsoft Entra yang tersedia, lewati ke Langkah 2: Buat rahasia klien untuk perwakilan layanan Anda.

Untuk membuat perwakilan layanan ID Microsoft Entra, ikuti instruksi berikut:

  1. Masuk ke portal Azure.

    Nota

    Portal yang akan digunakan berbeda tergantung pada apakah aplikasi ID Microsoft Entra Anda berjalan di cloud publik Azure atau di cloud nasional atau berdaulat. Untuk informasi selengkapnya, lihat Cloud nasional.

  2. Jika Anda memiliki akses ke beberapa penyewa, langganan, atau direktori, klik ikon Direktori + langganan (direktori dengan filter) di menu atas untuk beralih ke direktori tempat Anda ingin memprovisikan perwakilan layanan.

  3. Mencari dan memilih <Microsoft Entra ID.

  4. Di Kelola, klik Pendaftaran aplikasi > Pendaftaran baru.

  5. Untuk Nama, masukkan nama untuk aplikasi.

  6. Di bagian Jenis akun yang didukung, pilih Akun hanya dalam direktori organisasi ini (Penyewa tunggal).

  7. Klik Daftar.

Langkah 2: Buat rahasia klien untuk perwakilan layanan Anda

  1. Di Kelola, klik Sertifikat & rahasia.

  2. Pada tab Rahasia klien, klik Rahasia klien baru.

    Rahasia klien baru

  3. Di panel Tambahkan rahasia klien, untuk Deskripsi, masukkan deskripsi untuk rahasia klien.

  4. Untuk Kedaluwarsa, pilih jangka waktu kedaluwarsa untuk rahasia klien, lalu klik Tambahkan.

  5. Salin dan simpan Nilai rahasia klien di tempat yang aman, karena rahasia klien ini adalah kata sandi untuk aplikasi Anda.

  6. Pada halaman Gambaran Umum halaman aplikasi, di bagian Esensial , salin nilai berikut:

    • ID Aplikasi (klien)
    • ID direktori (penyewa)

Langkah 3: Memberikan akses perwakilan layanan ke Azure Data Lake Storage

Anda memberikan akses ke sumber daya penyimpanan dengan menetapkan peran kepada prinsipal layanan Anda. Dalam tutorial ini, Anda menetapkan Storage Blob Data Contributor ke perwakilan layanan di akun Azure Data Lake Storage Anda. Anda mungkin perlu menetapkan peran lain tergantung pada persyaratan tertentu.

  1. Di portal Microsoft Azure, pergi ke layanan Akun penyimpanan.
  2. Pilih akun penyimpanan Azure yang akan digunakan.
  3. Klik Kontrol Akses (IAM).
  4. Pilih +Tambah, dan pilih Tambahkan penetapan peran dari menu dropdown.
  5. Atur bidang Pilih ke nama aplikasi ID Microsoft Entra yang Anda buat di langkah 1 dan atur Peran ke Kontributor Penyimpanan Blob Data.
  6. Kliklah Simpan.

Langkah 4: Tambahkan rahasia klien ke Azure Key Vault

Anda dapat menyimpan rahasia klien dari langkah 1 di Azure Key Vault.

  1. Di portal Azure, buka layanan Brankas kunci.
  2. Pilih Azure Key Vault untuk digunakan.
  3. Di halaman pengaturan Key Vault, pilih Rahasia.
  4. Klik pada + Hasilkan/Impor.
  5. Di Opsi unggah, pilih Manual.
  6. Untuk Nama, masukkan nama untuk rahasia tersebut. Nama rahasia dalam Key Vault harus unik.
  7. Untuk Nilai, tempelkan Rahasia Klien yang Anda simpan di Langkah 1.
  8. Klik Buat.

Langkah 5: Mengonfigurasi instans Key Vault Azure Anda untuk Azure Databricks

  1. Di Portal Azure, buka instans Azure Key Vault.
    1. Di bawah Pengaturan, pilih tab Konfigurasi akses .

    2. Atur Model Izin ke Kebijakan Akses Vault.

      Nota

      Membuat peran cakupan rahasia yang didukung Azure Key Vault memberikan izin Get dan List ke ID aplikasi untuk layanan Azure Databricks menggunakan kebijakan akses brankas kunci. Model izin kontrol akses berbasis peran Azure tidak didukung dengan Azure Databricks.

    3. Di bawah Pengaturan, pilih Jaringan.

    4. Di Firewall dan jaringan virtual atur Izinkan akses dari: menjadi Izinkan akses publik dari jaringan virtual dan alamat IP tertentu.

      Di bawah Pengecualian, centang Izinkan layanan Microsoft tepercaya untuk melewati firewall ini.

      Nota

      Anda juga dapat mengatur Izinkan akses dari: ke Izinkan akses publik dari semua jaringan.

Langkah 6: Buat cakupan rahasia yang didukung Azure Key Vault di ruang kerja Azure Databricks Anda

Untuk mereferensikan rahasia klien yang disimpan di Azure Key Vault, Anda dapat membuat cakupan rahasia yang didukung oleh Azure Key Vault di Azure Databricks.

  1. Pergi ke https://<databricks-instance>#secrets/createScope. URL ini peka terhadap huruf besar/kecil; cakupan dalam createScope harus huruf besar.

    Menetapkan cakupan

  2. Masukkan nama lingkup rahasia. Nama lingkup rahasia tidak sensitif terhadap huruf besar/kecil.

  3. Gunakan menu dropdown Kelola Utama untuk menentukan apakah Semua Pengguna memiliki MANAGE izin untuk cakupan rahasia ini atau hanya Pembuat cakupan rahasia (artinya, Anda).

  4. Masukkan Nama DNS (misalnya, https://databrickskv.vault.azure.net/) dan ID Sumber Daya, contohnya:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Properti ini tersedia dari tab *Pengaturan > Properti di Azure Key Vault pada portal Azure Anda.

  5. Klik tombol Buat.

Langkah 7: Menyambungkan ke Azure Data Lake Storage menggunakan python

Anda sekarang dapat mengakses data di akun penyimpanan Azure dengan aman menggunakan OAuth 2.0 dengan prinsipal layanan aplikasi ID Microsoft Entra Anda untuk autentikasi dari notebook Azure Databricks.

  1. Navigasikan ke ruang kerja Azure Databricks Anda dan buat buku catatan python baru.

  2. Jalankan kode python berikut, dengan penggantian di bawah ini, untuk menyambungkan ke Azure Data Lake Storage.

    service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>")
    
    spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
    spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
    spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
    spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
    spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
    

    Mengganti

    • <scope> dengan nama cakupan rahasia dari langkah 5.
    • <service-credential-key> dengan nama kunci yang berisi rahasia klien.
    • <storage-account> dengan nama akun penyimpanan Azure.
    • <application-id>dengan ID Aplikasi (klien) untuk aplikasi ID Microsoft Entra.
    • <directory-id>dengan ID Direktori (penyewa) untuk aplikasi Microsoft Entra ID.

    Anda sekarang telah berhasil menyambungkan ruang kerja Azure Databricks ke akun Azure Data Lake Storage Anda.

Memberikan akses ruang kerja Azure Databricks Anda ke Azure Data Lake Storage

Jika Anda mengonfigurasi firewall di Azure Data Lake Storage, Anda harus mengonfigurasi pengaturan jaringan untuk mengizinkan ruang kerja Azure Databricks Anda untuk terhubung ke Azure Data Lake Storage. Pertama, pastikan ruang kerja Azure Databricks Anda disebarkan di jaringan virtual Anda sendiri setelah Menyebarkan Azure Databricks di jaringan virtual Azure Anda (injeksi VNet). Anda kemudian dapat mengonfigurasi titik akhir privat atau akses dari jaringan virtual Anda untuk mengizinkan koneksi dari subnet Anda ke akun Azure Data Lake Storage Anda.

Jika Anda menggunakan komputasi tanpa server seperti gudang SQL tanpa server, Anda harus memberikan akses dari bidang komputasi tanpa server ke Azure Data Lake Storage. Lihat Jaringan sarana komputasi tanpa server.

Memberikan akses menggunakan titik akhir privat

Anda dapat menggunakan titik akhir privat untuk akun Azure Data Lake Storage Anda untuk memungkinkan ruang kerja Azure Databricks Anda mengakses data dengan aman melalui tautan privat .

Untuk membuat titik akhir privat dengan menggunakan Portal Azure, lihat Tutorial: Menyambungkan ke akun penyimpanan menggunakan Titik Akhir Privat Azure. Pastikan untuk membuat titik akhir privat di jaringan virtual yang sama dengan jaringan tempat ruang kerja Azure Databricks Anda ditempatkan.

Memberikan akses dari jaringan virtual Anda

Titik akhir layanan Virtual Network memungkinkan Anda mengamankan sumber daya layanan Azure penting hanya ke jaringan virtual Anda. Anda dapat mengaktifkan titik akhir layanan untuk Azure Storage dalam VNet yang Anda gunakan untuk ruang kerja Azure Databricks Anda.

Untuk informasi selengkapnya, termasuk instruksi Azure CLI dan PowerShell, lihat Memberikan akses dari jaringan virtual.

  1. Masuk ke Portal Microsoft Azure, sebagai pengguna dengan peran Kontributor Akun Penyimpanan di akun Azure Data Lake Storage Anda.
  2. Navigasi ke akun Azure Storage Anda, dan buka tab Jaringan .
  3. Periksa apakah Anda telah memilih untuk mengizinkan akses dari Jaringan virtual dan alamat IP yang dipilih.
  4. Di bawah Jaringan virtual, pilih Tambahkan jaringan virtual yang ada.
  5. Di panel samping, di bawah Langganan, pilih langganan tempat jaringan virtual Anda berada.
  6. Di bawah Jaringan virtual, pilih jaringan virtual tempat ruang kerja Azure Databricks Anda disebarkan.
  7. Di bawah Subnet, pilih Pilih semua.
  8. Klik Aktifkan.
  9. Pilih Simpan untuk menerapkan perubahan Anda.

Troubleshooting

Kesalahan: IllegalArgumentException: Rahasia tidak ada dengan cakupan: KeyVaultScope dan kunci

Kesalahan ini mungkin berarti:

  • Cakupan yang diacu dalam kode dan didukung oleh Databricks tidak valid.

Tinjau nama rahasia Anda dari langkah 4 di artikel ini.

Kesalahan: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Databricks tidak dapat mengakses keyvault

Kesalahan ini mungkin berarti:

  • Cakupan yang didukung Databricks yang dimaksud dalam kode tidak valid. atau rahasia yang disimpan di Key Vault telah kedaluwarsa.

Tinjau langkah 3 untuk memastikan rahasia Azure Key Vault Anda valid. Tinjau nama rahasia Anda dari langkah 4 di artikel ini.

Kesalahan: ADAuthenticator$HttpException: Kesalahan HTTP 401: gagal mendapatkan token dari respons AzureAD

Kesalahan ini mungkin berarti:

  • Kunci rahasia klien perwakilan layanan telah kedaluwarsa.

Buat rahasia klien baru setelah langkah 2 di artikel ini dan perbarui rahasia di Azure Key Vault Anda.

Resources