Bagikan melalui


Perwakilan layanan untuk CI/CD

Artikel ini menjelaskan cara menggunakan perwakilan layanan untuk CI/CD dengan Azure Databricks. Perwakilan layanan adalah identitas yang dibuat untuk digunakan dengan alat dan aplikasi otomatis, termasuk:

Sebagai praktik terbaik keamanan, Databricks merekomendasikan penggunaan perwakilan layanan dan tokennya alih-alih pengguna Azure Databricks Atau token akses pribadi Databricks Anda untuk pengguna ruang kerja Anda untuk memberi platform CI/CD akses ke sumber daya Azure Databricks. Beberapa manfaat untuk pendekatan ini meliputi yang berikut ini:

  • Anda dapat memberikan dan membatasi akses ke sumber daya Azure Databricks untuk perwakilan layanan secara independen dari pengguna. Misalnya, ini memungkinkan Anda untuk melarang perwakilan layanan bertindak sebagai admin di ruang kerja Azure Databricks Anda sambil tetap mengizinkan pengguna tertentu lainnya di ruang kerja Anda untuk terus bertindak sebagai admin.
  • Pengguna dapat melindungi token akses mereka agar tidak diakses oleh platform CI/CD.
  • Anda dapat menonaktifkan sementara atau menghapus perwakilan layanan secara permanen tanpa memengaruhi pengguna lain. Misalnya, ini memungkinkan Anda menjeda atau menghapus akses dari perwakilan layanan yang Anda duga digunakan dengan cara yang berbahaya.
  • Jika pengguna meninggalkan organisasi, Anda dapat menghapus pengguna tersebut tanpa memengaruhi perwakilan layanan apa pun.

Untuk memberikan akses platform CI/CD ke ruang kerja Azure Databricks Anda, lakukan hal berikut:

Pilih salah satu mekanisme autentikasi MS Entra yang didukung berikut ini dengan koneksi layanan:

Persyaratan

  • Token OAuth Azure Databricks atau token ID Microsoft Entra untuk perwakilan layanan terkelola Azure Databricks atau perwakilan layanan terkelola ID Microsoft Entra. Untuk membuat perwakilan layanan terkelola Azure Databricks atau perwakilan layanan terkelola ID Microsoft Entra dan token OAuth Azure Databricks atau token ID Microsoft Entra, lihat Mengelola perwakilan layanan.
  • Akun dengan penyedia Git Anda.

Menyiapkan GitHub Actions

GitHub Actions harus dapat mengakses ruang kerja Azure Databricks Anda. Jika Anda ingin menggunakan folder Git Azure Databricks, ruang kerja Anda juga harus dapat mengakses GitHub.

Untuk mengaktifkan GitHub Actions untuk mengakses ruang kerja Azure Databricks, Anda harus memberikan informasi tentang perwakilan layanan terkelola Azure Databricks atau perwakilan layanan terkelola ID Microsoft Entra ke GitHub Actions. Ini dapat mencakup informasi seperti ID Aplikasi (klien), ID Direktori (penyewa) untuk perwakilan layanan terkelola ID Microsoft Entra, perwakilan layanan terkelola Azure Databricks, atau rahasia klien perwakilan layanan terkelola MICROSOFT Entra ID, atau access_token nilai untuk perwakilan layanan terkelola Azure Databricks, tergantung pada persyaratan Tindakan GitHub. Untuk informasi selengkapnya, lihat Mengelola perwakilan layanan dan dokumentasi GitHub Action.

Jika Anda juga ingin mengaktifkan ruang kerja Azure Databricks untuk mengakses GitHub saat menggunakan folder Git Azure Databricks, Anda harus menambahkan token akses pribadi GitHub untuk pengguna komputer GitHub ke ruang kerja Anda.

Berikan informasi tentang perwakilan layanan Anda ke GitHub Actions

Bagian ini menjelaskan cara mengaktifkan GitHub Actions untuk mengakses ruang kerja Azure Databricks Anda.

Sebagai praktik terbaik keamanan, Databricks menyarankan agar Anda tidak memasukkan informasi tentang perwakilan layanan Anda langsung ke dalam isi file GitHub Actions. Anda harus memberikan informasi ini ke GitHub Actions dengan menggunakan rahasia terenkripsi GitHub sebagai gantinya.

GitHub Actions, seperti yang dicantumkan Databricks dalam integrasi dan pengiriman Berkelanjutan menggunakan GitHub Actions, mengandalkan berbagai rahasia terenkripsi GitHub seperti:

  • DATABRICKS_HOST, yang merupakan nilai https:// diikuti oleh nama instans ruang kerja Anda, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • AZURE_CREDENTIALS, yang merupakan dokumen JSON yang mewakili output menjalankan Azure CLI untuk mendapatkan informasi tentang perwakilan layanan terkelola ID Microsoft Entra. Untuk informasi selengkapnya, lihat dokumentasi untuk GitHub Action.
  • AZURE_SP_APPLICATION_ID, yang merupakan nilai ID Aplikasi (klien) untuk perwakilan layanan terkelola ID Microsoft Entra.
  • AZURE_SP_TENANT_ID, yang merupakan nilai ID Direktori (penyewa) untuk perwakilan layanan terkelola ID Microsoft Entra.
  • AZURE_SP_CLIENT_SECRET, yang merupakan nilai nilai rahasia klien untuk perwakilan layanan terkelola ID Microsoft Entra.

Untuk informasi selengkapnya tentang rahasia terenkripsi GitHub mana yang diperlukan untuk GitHub Action, lihat Mengelola perwakilan layanan dan dokumentasi untuk GitHub Action tersebut.

Untuk menambahkan rahasia terenkripsi GitHub ini ke repositori GitHub Anda, lihat Membuat rahasia terenkripsi untuk repositori dalam dokumentasi GitHub. Untuk pendekatan lain untuk menambahkan rahasia repositori GitHub ini, lihat Rahasia terenkripsi dalam dokumentasi GitHub.

Menambahkan token akses pribadi GitHub untuk pengguna komputer GitHub ke ruang kerja Azure Databricks Anda

Bagian ini menjelaskan cara mengaktifkan ruang kerja Azure Databricks Anda untuk mengakses GitHub dengan folder Git Azure Databricks. Ini adalah tugas opsional dalam skenario CI/CD.

Sebagai praktik terbaik keamanan, Databricks merekomendasikan agar Anda menggunakan pengguna mesin GitHub alih-alih akun pribadi GitHub, karena banyak alasan yang sama bahwa Anda harus menggunakan perwakilan layanan alih-alih pengguna Azure Databricks. Untuk menambahkan token akses pribadi GitHub untuk pengguna komputer GitHub ke ruang kerja Azure Databricks Anda, lakukan hal berikut:

  1. Buat pengguna komputer GitHub, jika Anda belum memilikinya. Pengguna mesin GitHub adalah akun pribadi GitHub, terpisah dari akun pribadi GitHub Anda sendiri, yang dapat Anda gunakan untuk mengotomatiskan aktivitas di GitHub. Buat akun GitHub terpisah baru untuk digunakan sebagai pengguna komputer GitHub, jika Anda belum memilikinya.

    Catatan

    Saat Anda membuat akun GitHub terpisah baru sebagai pengguna komputer GitHub, Anda tidak dapat mengaitkannya dengan alamat email untuk akun pribadi GitHub Anda sendiri. Sebagai gantinya, lihat administrator email organisasi Anda tentang mendapatkan alamat email terpisah yang dapat Anda kaitkan dengan akun GitHub terpisah baru ini sebagai pengguna komputer GitHub.

    Lihat administrator akun organisasi Anda tentang mengelola alamat email terpisah dan pengguna mesin GitHub terkait dan token akses pribadi GitHub-nya dalam organisasi Anda.

  2. Berikan akses pengguna komputer GitHub ke repositori GitHub Anda. Lihat Mengundang tim atau orang dalam dokumentasi GitHub. Untuk menerima undangan, Anda mungkin harus terlebih dahulu keluar dari akun pribadi GitHub Anda, lalu masuk kembali sebagai pengguna komputer GitHub.

  3. Masuk ke GitHub sebagai pengguna komputer, lalu buat token akses pribadi GitHub untuk pengguna komputer tersebut. Lihat Membuat token akses pribadi dalam dokumentasi GitHub. Pastikan untuk memberikan akses repositori token akses pribadi GitHub.

  4. Kumpulkan token ID Microsoft Entra untuk perwakilan layanan Anda, nama pengguna mesin GitHub Anda, lalu Tambahkan kredensial penyedia Git ke ruang kerja Azure Databricks.

Menyiapkan Azure Pipelines

Azure Pipelines harus dapat mengakses ruang kerja Azure Databricks Anda. Jika Anda juga ingin menggunakan folder Git Azure Databricks, ruang kerja Anda harus dapat mengakses Azure Pipelines.

File alur YAML Azure Pipelines mengandalkan variabel lingkungan untuk mengakses ruang kerja Azure Databricks Anda. Variabel lingkungan ini mencakup variabel seperti:

  • DATABRICKS_HOST, yang merupakan nilai https:// diikuti oleh nama instans ruang kerja Anda, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, yang merupakan nilai nilai token_value yang Anda salin setelah Anda membuat token ID Microsoft Entra untuk perwakilan layanan terkelola ID Microsoft Entra.

Untuk menambahkan variabel lingkungan ini ke alur Azure Anda, lihat Menggunakan rahasia Nilai Kunci Azure di Azure Pipelines dan Mengatur variabel rahasia dalam dokumentasi Azure.

Lihat juga blog Databricks berikut ini:

Opsional untuk skenario CI/CD: Jika ruang kerja Anda menggunakan folder Git Azure Databricks, dan Anda ingin mengaktifkan ruang kerja Anda untuk mengakses Azure Pipelines, kumpulkan:

  • Token ID Microsoft Entra untuk perwakilan layanan Anda
  • Nama pengguna Azure Pipelines Anda

Kemudian, Tambahkan kredensial penyedia Git ke ruang kerja Azure Databricks.

Menyiapkan GitLab CI/CD

GitLab CI/CD harus dapat mengakses ruang kerja Azure Databricks Anda. Jika Anda juga ingin menggunakan folder Git Azure Databricks, ruang kerja Anda harus dapat mengakses GitLab CI/CD.

Untuk mengakses ruang kerja Azure Databricks Anda, file GITLab CI/CD .gitlab-ci.yml , seperti yang merupakan bagian dari Templat Python Dasar di dbx, bergantung pada variabel CI/CD kustom seperti:

  • DATABRICKS_HOST, yang merupakan nilai https:// diikuti oleh nama instans ruang kerja Anda, misalnya adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, yang merupakan nilai nilai token_value yang Anda salin setelah Anda membuat token ID Microsoft Entra untuk perwakilan layanan.

Untuk menambahkan variabel kustom ini ke proyek GITLab CI/CD Anda, lihat Menambahkan variabel CI/CD ke proyek dalam dokumentasi GitLab CI/CD.

Jika ruang kerja Anda menggunakan folder Databricks Git, dan Anda ingin mengaktifkan ruang kerja anda untuk mengakses GitLab CI/CD, kumpulkan:

  • Token ID Microsoft Entra untuk perwakilan layanan Anda
  • Nama pengguna GITLab CI/CD Anda

Kemudian Tambahkan kredensial penyedia Git ke ruang kerja Azure Databricks.

Menambahkan kredensial penyedia Git ke ruang kerja Azure Databricks

Bagian ini menjelaskan cara mengaktifkan ruang kerja Azure Databricks Anda untuk mengakses penyedia Git untuk folder Git Azure Databricks. Ini bersifat opsional dalam skenario CI/CD. Misalnya, Anda mungkin hanya ingin penyedia Git mengakses ruang kerja Azure Databricks, tetapi Anda tidak juga ingin menggunakan folder Git Azure Databricks di ruang kerja Anda dengan penyedia Git Anda. Jika demikian, lewati bagian ini.

Sebelum memulai, kumpulkan informasi dan alat berikut:

  • Token ID Microsoft Entra untuk perwakilan layanan Anda.
  • Nama pengguna yang terkait dengan penyedia Git Anda.
  • Token akses yang terkait dengan pengguna untuk penyedia Git Anda.

Catatan

Untuk Azure Pipelines, lihat Menggunakan token akses pribadi di situs web Azure.

  • Databricks CLI versi 0.205 atau lebih tinggi. Lihat Apa itu Databricks CLI?. Anda tidak dapat menggunakan antarmuka pengguna Azure Databricks.
  • Profil konfigurasi Azure Databricks dalam file Anda.databrickscfg, dengan bidang profil diatur dengan benar untuk terkait host yang mewakili URL per ruang kerja Azure Databricks Anda, misalnya https://adb-1234567890123456.7.azuredatabricks.net, dan token mewakili token ID Microsoft Entra untuk perwakilan layanan Anda. (Jangan gunakan token akses pribadi Databricks untuk pengguna ruang kerja Anda.) Lihat Autentikasi token akses pribadi Azure Databricks.

Gunakan Databricks CLI untuk menjalankan perintah berikut:

databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
  • Gunakan salah satu hal berikut ini untuk <git-provider-short-name>:
    • Untuk GitHub, gunakan GitHub.
    • Untuk Azure Pipelines, gunakan AzureDevOpsServices.
    • Untuk GitLab CI/CD, gunakan GitLab.
  • Ganti <git-provider-user-name> dengan nama pengguna yang terkait dengan penyedia Git Anda.
  • Ganti <git-provider-access-token> dengan token akses yang terkait dengan pengguna untuk penyedia Git Anda.
  • Ganti <profile-name> dengan nama profil konfigurasi Azure Databricks di file Anda .databrickscfg .

Tip

Untuk mengonfirmasi bahwa panggilan berhasil, Anda dapat menjalankan salah satu perintah Databricks CLI berikut, dan meninjau output:

databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>