Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menetapkan lingkungan eksekusi terkontrol, mengatur keluarnya data, dan menerapkan hak istimewa paling sedikit sambil mengaktifkan akses rahasia yang aman.
Titik Akhir Privat Terkelola (MPE)
Skenario: Anda adalah teknisi data yang bekerja dengan data sensitif di Fabric Spark. Tim keamanan Anda memiliki persyaratan untuk menjalankan semua kode di lingkungan terisolasi jaringan untuk keamanan yang ditingkatkan.
Aktifkan Jaringan Virtual Terkelola (VNet). Untuk mengaktifkan VNet terkelola, lihat dokumentasi publik. Microsoft Fabric membuat dan mengelola jaringan virtual terkelola (VNet) untuk setiap ruang kerja Fabric. Mereka menyediakan isolasi jaringan untuk beban kerja Fabric Spark, yang berarti bahwa Microsoft Fabric menyebarkan kluster komputasi di jaringan khusus per ruang kerja, menghapusnya dari jaringan virtual bersama.
Dalam produksi, gunakan VNet terkelola untuk eksekusi aman Spark Notebooks.
Saat Anda membuat Titik Akhir Privat Terkelola (MPE), Titik Akhir Privat Terkelola (MPE) akan dibuat di tingkat ruang kerja secara default.
Saat Anda mengaktifkan Private Link (PL) di tingkat penyewa, sistem mengaktifkan VNet terkelola untuk semua ruang kerja di penyewa. Setelah Anda mengaktifkan pengaturan PL, sistem membuat jaringan virtual terkelola untuk ruang kerja saat Anda menjalankan pekerjaan Spark pertama (Notebook atau Definisi Pekerjaan Spark). Sistem ini juga membuat jaringan virtual saat Anda melakukan operasi Lakehouse, seperti Load to Table atau operasi pemeliharaan tabel (Optimize atau Vacuum).
Nota
Saat Anda mengaktifkan VNet terkelola, kumpulan pemula menjadi tidak tersedia karena berjalan di jaringan bersama.
Perlindungan Akses Keluar Ruang Kerja (WS OAP)
Skenario: Anda khawatir bahwa seseorang mungkin secara tidak sengaja menulis data produksi ke tujuan yang tidak sah menggunakan notebook Spark, dan Anda ingin mengontrolnya.
Aktifkan Perlindungan Akses Keluar Ruang Kerja (WS OAP). Ini memastikan bahwa konektivitas internet keluar dari Spark hanya masuk ke tujuan yang disetujui melalui titik akhir privat terkelola.
- Memblokir Pustaka Publik: Ini juga memblokir penginstalan pustaka publik (dari PyPi, Maven, dll.). Oleh karena itu, Anda perlu mengemas pustaka Anda sebagai file JAR atau Wheel dan mengunggah pustaka kustom ke lingkungan atau ke sumber daya dan menginstalnya dengan % pip install di dalam buku catatan. Satu hal yang perlu diperhatikan adalah jika Anda menambahkannya ke sumber daya dan menginstalnya dengan %pip install sebaris, waktu penerbitan lingkungan menjadi lebih singkat. Ini berguna untuk pengembangan dan pengujian cepat. Untuk menggunakan kembali paket di berbagai Notebook, disarankan untuk mempublikasikannya ke lingkungan. Metode lain adalah menyambungkan ke repositori privat Anda. Untuk detail selengkapnya, silakan merujuk ke dokumentasi perlindungan akses keluar Ruang Kerja untuk beban kerja rekayasa data
Skenario: Haruskah Anda mengaktifkan WS OAP di lingkungan pengembangan?
Pertimbangkan untuk tidak mengaktifkan WS OAP dalam pengembangan atau ruang kerja yang lebih rendah karena berdampak pada proses pengembangan. Setelah Notebook atau Spark Job Definitions (SJD) diuji dengan pustaka publik, uji Notebook yang sama dengan pustaka kustom. Setelah tinjauan kode yang tepat, sebarkan ke lingkungan yang lebih tinggi lalu aktifkan WS OAP. Jika Anda ingin melindungi bahkan lingkungan pengembangan, Anda dapat mengaktifkan WS OAP, tetapi mungkin menghambat proses pengembangan. Kumpulan pemula tidak tersedia saat Anda mengaktifkan WS OAP.
Mengakses Azure Key Vault (AKV) dari Notebook
Skenario: Anda adalah teknisi data dan ingin menyambungkan ke beberapa sumber data menggunakan kredensial aman dari Spark Notebooks.
Simpan kredensial dengan aman di Azure Key Vault (AKV). Jangan simpan satu brankas kunci untuk menyimpan semua rahasia. Sebagai gantinya, gunakan beberapa brankas kunci berdasarkan proyek/domain jika memungkinkan.
Mengakses Azure Key Vault (AKV) dari Notebook
Jaringan: Sebaiknya lindungi AKV Anda dengan aturan firewall untuk mengizinkan akses hanya dari jaringan yang diketahui. Namun, Anda mengizinkan alamat IP Fabric Spark dalam aturan firewall Anda. Untuk terhubung dengan aman ke AKV yang dilindungi dari Fabric Spark Notebooks, sebaiknya buat titik akhir privat terkelola di AKV. Satu AKV hanya dapat mendukung hingga 64 titik akhir privat (batas langganan dan layanan Azure, kuota, dan batasan).
Otentikasi: Sistem menjalankan Fabric Spark Notebooks dan SJD dalam konteks pengguna yang mengirimkan pekerjaan/Notebook. Untuk mengakses AKV, pengguna yang mengirimkan harus memiliki akses yang memadai untuk mengambil rahasia ("Petugas Rahasia Key Vault"). Lihat praktik terbaik AKV: Berikan izin ke aplikasi untuk mengakses brankas kunci Azure menggunakan Azure RBAC.
- Anda dapat menggunakan notebookutils (sebelumnya disebut mssparkutils) untuk mengakses AKV menggunakan kredensial pengguna yang menjalankan Notebook/SJD:
notebookutils.credentials.getSecret('<AKV URL>', 'Secret Name')Kami tidak menyarankan untuk menyediakan akses pengguna ke AKV dalam lingkungan produksi. Sebagai gantinya, gunakan akun layanan untuk mengakses Key Vault (KV) Anda. Kirim buku catatan/pekerjaan menggunakan akun layanan.
Dalam beberapa kasus, akun layanan yang mengirimkan pekerjaan memiliki akses untuk membaca rahasia dari AKV.
Dalam beberapa kasus, akun layanan ini biasanya merupakan akun DevOps yang mungkin tidak memiliki akses untuk membaca rahasia dari AKV. Dalam kasus seperti itu, pembangun kredensial sangat membantu untuk mengakses AKV menggunakan Nama Prinsipal Layanan (SPN) yang berbeda.
Berikut adalah sampel cuplikan kode Scala:
val clientSecretCredential: ClientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<client id here>")
.clientSecret("<client secret here>")
.tenantId("<tenant id here>")
.build()
val secretClient: SecretClient = new SecretClientBuilder()
.vaultUrl("<vault url here>")
.credential(clientSecretCredential)
.buildClient()
val secretName = "<your value>"
val retrievedSecret = secretClient.getSecret(secretName)
println(s"Retrieved secret: ${retrievedSecret.getValue}")
Nota
Jangan mengkodekan rahasia atau kata sandi apa pun dalam teks biasa dalam kode Anda. Selalu gunakan brankas aman (seperti Azure Key Vault) untuk menyimpan dan mengambil rahasia Anda.