Bagikan melalui


Menggunakan perwakilan layanan Microsoft Entra untuk mengautentikasi akses ke folder Git Azure Databricks

Pelajari cara mengonfigurasi akses terautentikasi ke folder Git Azure Databricks yang dihosting oleh Azure DevOps (Azure Repos) dengan perwakilan layanan Microsoft Entra.

Jika Anda memiliki folder Databricks Git dalam proyek Databricks yang didukung oleh repositori Azure Repos Git dan Anda ingin mengelolanya dalam otomatisasi, Anda dapat menggunakan informasi dalam artikel ini untuk mengonfigurasi autentikasi menggunakan perwakilan layanan Microsoft Entra dan Azure DevOps. Setelah menyelesaikan tugas ini, Anda akan memiliki kredensial Databricks Git terautentikasi yang dapat Anda gunakan dalam otomatisasi Anda.

Mengapa menggunakan Microsoft Entra dan bukan PAT?

Di masa lalu, Token Akses Pribadi (PATs) adalah cara yang lebih disukai untuk mengautentikasi saat memanggil API yang memerlukan akses dan izin tertentu ke sumber daya. Token pembawa ini mewakili nama pengguna dan kata sandi, dan memerlukan rotasi rutin untuk meminimalkan risiko keamanan yang mereka sajikan. Token akses ID Microsoft Entra mengatasi masalah ini dengan secara otomatis mengelola rotasi token ini setiap jam, dan Databricks merekomendasikannya sebagai praktik terbaik saat bekerja dengan sumber daya Azure. Dengan membuat perwakilan layanan Microsoft Entra, Anda dapat mengelola izin yang diberikan pada akses ke sumber daya ini tanpa menggunakan akun pengguna Microsoft Azure.

Persyaratan

Anda harus memiliki:

  • Akses ke proyek Azure DevOps dengan repositori Azure Repos Git yang tersambung ke folder Git Databricks.
  • Izin di akun Azure Anda untuk membuat perwakilan layanan MS Entra.
  • Azure CLI terinstal.
  • Databricks CLI terinstal.

Langkah 1: Membuat perwakilan layanan Microsoft Entra

Anda dapat melewati langkah ini jika Anda sudah memiliki perwakilan layanan Microsoft Entra yang dikonfigurasi.

Untuk membuat perwakilan layanan Microsoft Entra, ikuti langkah-langkah dalam dokumentasi Microsoft Azure: Daftarkan aplikasi Microsoft Entra dan buat perwakilan layanan. Di bagian "Siapkan Autentikasi" di artikel ini, abaikan dua opsi pertama dan ikuti langkah-langkah di "Opsi 3: Buat rahasia klien baru."

Setelah menyiapkannya, Anda akan memiliki:

  • Rahasia klien. Ini akan hadir sebagai string panjang karakter yang muncul secara acak.
    • ID perwakilan layanan. Ini adalah nama unik yang Anda tetapkan perwakilan layanan MS Entra. Sebagai praktik terbaik, nama juga harus informasi yang menunjukkan bagaimana dan kapan harus digunakan (misalnya, Databricks_CICD_SP).

(Anda dapat mengabaikan UI pengalihan opsional dalam dialog konfigurasi MS Entra karena tidak akan digunakan dalam konfigurasi ini.)

Salin ini di suatu tempat karena Anda akan menggunakannya di langkah-langkah mendatang. Setelah Anda berhasil menyelesaikan proses dalam dokumentasi ini, amankan atau hapus informasi ini.

Langkah 2: Mengonfigurasi izin Azure DevOps untuk perwakilan layanan MS Entra

Pertama, Anda harus memberikan izin perwakilan layanan MS Entra Anda untuk mengakses sumber daya Azure DevOps Anda. Untuk melakukan ini, Anda harus menggunakan portal Azure DevOps.

  1. Masuk ke akun Azure DevOps Anda dan navigasikan ke proyek Anda.

  2. Di bawah Izin pengaturan>Proyek, klik Pembaca.

    Konten panel Anggota di bawah Izin di Pengaturan Proyek Azure DevOps

  3. Klik tab Anggota , klik Tambahkan, lalu tambahkan nama perwakilan layanan MS Entra yang Anda buat.

  4. Di konsol, kembali ke tingkat organisasi organisasi Azure DevOps Anda dan klik Pengaturan organisasi di bagian bawah panel kiri.

  5. Klik Pengguna>Tambahkan Pengguna, lalu konfigurasikan akses untuk perwakilan layanan Anda sebagai berikut:

    • Tambahkan perwakilan layanan MS Entra Anda menggunakan ID yang Anda buat sebelumnya.
    • Konfigurasikan akses untuk perwakilan layanan ke tingkat minimum yang diperlukan untuk melakukan operasi di Azure Repos. Biasanya, izin tingkat Dasar sudah cukup. Jika Anda tidak yakin tingkat apa yang akan digunakan, hubungi administrator organisasi Azure DevOps Anda.
    • Tambahkan perwakilan layanan ke proyek Azure DevOps Anda.
    • Tetapkan perwakilan layanan ke grup Kontributor Proyek.

    Konten panel Pengguna di Pengaturan Organisasi Azure DevOps

Langkah 3: Menetapkan izin ke perwakilan layanan di Azure Databricks

Anda juga harus menetapkan izin dalam Azure Databricks ke perwakilan layanan Microsoft Entra Anda.

  1. Masuk ke konsol administrasi akun Azure Databricks untuk akun Anda.
  2. Klik Pengguna & grup.
  3. Klik tab Perwakilan layanan lalu klik Tambahkan perwakilan layanan. Tab Perwakilan layanan di bawah Pengguna & grup di konsol admin akun Databricks
  4. Pada halaman Tambahkan perwakilan layanan, klik Microsoft Entra ID terkelola, lalu tambahkan ID aplikasi Microsoft Entra Anda dan nama perwakilan layanan dari "Langkah 1: Buat perwakilan layanan Microsoft Entra." Klik Tambahkan saat Anda selesai. Dialog Tambahkan perwakilan layanan di konsol admin akun Databricks
  5. Klik perwakilan layanan Microsoft Entra yang ditambahkan untuk melihat tab Informasi utama.
  6. Klik Buat rahasia di sisi kiri bawah halaman untuk menghasilkan rahasia OAuth. Rahasia ini memungkinkan Anda mengautentikasi panggilan Azure Databricks API menggunakan Databricks CLI.
  7. Salin string rahasia dan ID klien, lalu klik Selesai. Anda akan menggunakan keduanya di langkah berikutnya. Pilih Selesai. Dialog Buat rahasia di konsol admin akun Databricks
  8. Di bilah sisi kiri, klik Ruang Kerja, pilih ruang kerja Anda, lalu klik tab Izin .
  9. Berikan izin "Pengguna" perwakilan layanan Anda, lalu klik Tambahkan izin.

Penting

Jika tab Izin berwarna abu-abu , ruang kerja Azure Databricks Anda tidak ditetapkan ke metastore Unity Catalog. Hubungi administrator Databricks Anda.

Selanjutnya, Anda membuat kredensial Azure Databricks Git Anda.

Langkah 4: Buat token akses ID Microsoft Entra dan simpan sebagai kredensial Azure Databricks Git.

Catatan

Langkah ini memerlukan penggunaan CLI Azure dan Databricks.

Untuk mengautentikasi ke Azure Databricks, Anda harus memiliki profil konfigurasi (.databrickscfg) yang dikonfigurasi dengan rahasia OAuth yang Anda buat di langkah sebelumnya. Untuk menyiapkan konfigurasi ini, buka .databrickscfg file di editor dan tambahkan yang berikut ini ke file:

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Di mana host URL ke ruang kerja Databricks Anda, client_id adalah ID perwakilan layanan Microsoft Entra, dan client_secret merupakan rahasia klien OAuth yang Anda buat di "Langkah 3: Menetapkan izin ke perwakilan layanan di Azure Databricks."

Anda sekarang harus memiliki nilai berikut untuk diberikan ke panggilan CLI dalam proses ini:

  • ID klien perwakilan layanan dari Langkah 1 atau 3 - mereka harus sama. (sp_id dalam contoh CLI berikut.)
  • Nama perwakilan layanan dari Langkah 1. Aku akan menemuinya.sp_name
  • String rahasia klien perwakilan layanan dari Langkah 1. Aku akan menemuinya.sp_secret
  • Nama organisasi Azure DevOps Anda. Aku akan menemuinya.devops_org
  • Nama proyek Azure DevOps Anda. Aku akan menemuinya.devops_project
  • Nama repositori Azure Repos Anda. Aku akan menemuinya.devops_repo

Selain itu, Anda memerlukan ID penyewa Azure (tenant_id dalam contoh berikut) untuk langganan Azure Anda. Ikuti instruksi ini untuk mendapatkannya dari portal Azure.

Sekarang, Anda dapat membuat kredensial Git dari Azure CLI.

  1. Buka jendela baris perintah dengan akses ke AZURE dan DATAbricks CLIs.
  2. Jalankan perintah Azure CLI berikut untuk masuk sebagai perwakilan layanan Microsoft Entra: az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. Sebagai perwakilan layanan Microsoft Entra, minta token akses ID Microsoft Entra dan tetapkan ke variabel: ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Gunakan token akses untuk membuat kredensial Git untuk akses Azure Databricks, menggunakan tingkat izin yang Anda konfigurasi untuknya: databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Terakhir, buat folder Git baru menggunakan perwakilan layanan Microsoft Entra: databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

Folder Git yang sesuai untuk repositori Azure DevOps ini sekarang tersedia di ruang kerja Azure Databricks Anda. Anda dapat memberikan kredensial Git untuk mengelolanya dari kode Anda menggunakan DATAbricks Repos REST API atau Databricks CLI.

Anda sekarang telah mempelajari cara membuat token akses ID Microsoft Entra yang dilingkup ke Azure DevOps dan menyimpannya sebagai kredensial Databricks Git.

Praktik terbaik

Token akses ID Entra berumur pendek, sehingga alur Anda harus memperbarui kredensial Databricks Git menggunakan git-credentials update. Anda kemudian dapat memicu permintaan pull darinya menggunakan databricks repos update.

Penting

Langkah-langkah keamanan tambahan diperlukan dalam pengaturan produksi. Di lingkungan produksi, Anda harus menyimpan rahasia klien perwakilan layanan dan token OAuth Databricks di penyimpanan rahasia yang aman seperti Azure Key Vault.

Lihat juga