Cara menyiapkan kontrol akses untuk ruang kerja Azure Synapse Anda

Artikel ini mengajarkan Anda cara mengontrol akses ke ruang kerja Microsoft Azure Synapse. Kita akan menggunakan kombinasi peran Azure, peran Azure Synapse, izin SQL, dan izin Git untuk melakukannya.

Dalam panduan ini, Anda akan menyiapkan ruang kerja dan mengonfigurasi sistem kontrol akses dasar. Anda dapat menggunakan informasi ini untuk berbagai jenis proyek Synapse. Anda juga akan menemukan opsi tingkat lanjut untuk kontrol yang lebih baik jika Anda membutuhkannya.

Kontrol akses Synapse dapat disederhanakan dengan menyelaraskan peran dan persona di organisasi Anda dengan kelompok keamanan. Ini memungkinkan Anda mengelola akses ke kelompok keamanan hanya dengan menambahkan dan menghapus pengguna.

Sebelum Anda memulai panduan ini, baca gambaran umum kontrol akses Azure Synapse untuk membiasakan diri dengan mekanisme kontrol akses yang digunakan oleh Synapse Analytics.

Mekanisme kontrol akses

Catatan

Tujuan dari panduan ini adalah untuk membuat kelompok keamanan. Saat menetapkan peran ke kelompok keamanan, Anda hanya perlu mengelola keanggotaan dalam grup tersebut untuk mengontrol akses ke ruang kerja.

Untuk mengamankan ruang kerja Synapse, Anda perlu mengonfigurasi item berikut:

  • Kelompok Keamanan, untuk mengelompokkan pengguna dengan persyaratan akses serupa.
  • Peran Azure, untuk mengontrol siapa yang dapat membuat dan mengelola kumpulan SQL, kumpulan Apache Spark, dan waktu proses Integrasi, serta mengakses penyimpanan ADLS Gen2.
  • Peran Synapse untuk mengontrol akses ke artefak kode yang diterbitkan, penggunaan sumber daya komputasi Apache Spark, dan runtime integrasi.
  • Izin SQL, untuk mengontrol akses bidang administratif dan data ke kumpulan SQL.
  • Izin Git, untuk mengontrol siapa yang dapat mengakses artefak kode di kontrol sumber jika Anda mengonfigurasi dukungan Git untuk ruang kerja.

Langkah-langkah untuk mengamankan ruang kerja Synapse

Dokumen ini menggunakan nama standar untuk menyederhanakan instruksi. Ganti dengan nama pilihan Anda.

Pengaturan Nama standar Deskripsi
Ruang kerja Synapse workspace1 Nama yang akan dimiliki ruang kerja Azure Synapse.
Akun ADLSGEN2 storage1 Akun ADLS untuk digunakan dengan ruang kerja Anda.
Kontainer container1 Kontainer di STG1 yang akan digunakan ruang kerja secara default.
Penyewa direktori aktif contoso nama penyewa direktori aktif.

Langkah 1: Menyiapkan grup keamanan

Catatan

Selama pratinjau, disarankan untuk membuat kelompok keamanan dan memetakannya ke peran Azure Synapse Admin Synapse SQL dan Admin Synapse Apache Spark. Dengan diperkenalkannya peran dan cakupan RBAC Synapse baru yang lebih halus, sekarang Anda disarankan untuk menggunakan opsi terbaru ini untuk mengontrol akses ke ruang kerja Anda. Mereka memberi Anda fleksibilitas konfigurasi yang lebih besar dan mereka mengakui bahwa pengembang sering menggunakan campuran SQL dan Spark untuk membuat aplikasi analitik. Jadi pengembang mungkin memerlukan akses ke sumber daya individual daripada seluruh ruang kerja. Pelajari selengkapnya tentang RBAC Synapse.

Buat kelompok keamanan berikut ini untuk ruang kerja Anda:

  • workspace1_SynapseAdministrators, untuk pengguna yang membutuhkan kontrol penuh atas ruang kerja. Tambahkan diri Anda ke kelompok keamanan ini, setidaknya pada awalnya.
  • workspace1_SynapseContributors, untuk pengembang yang perlu mengembangkan, mendebug, dan menerbitkan kode ke layanan.
  • workspace1_SynapseComputeOperators, untuk pengguna yang perlu mengelola dan memantau kumpulan Apache Spark dan Runtime integrasi.
  • workspace1_SynapseCredentialUsers, bagi pengguna yang perlu mendebug dan menjalankan alur orkestrasi menggunakan info masuk (identitas layanan terkelola) ruang kerja MSI dan membatalkan alur yang berjalan.

Anda akan segera menetapkan peran Synapse ke grup ini di cakupan ruang kerja.

Buat juga kelompok keamanan ini:

  • workspace1_SQLAdmins, grup untuk pengguna yang membutuhkan otoritas Admin Active Directory SQL, dalam kumpulan SQL di ruang kerja.

Grup workspace1_SQLAdmins untuk mengonfigurasikan izin SQL saat Anda membuat kumpulan SQL.

Lima grup ini cukup untuk konfigurasi dasar. Nantinya, Anda dapat menambahkan kelompok keamanan untuk menangani pengguna yang membutuhkan lebih banyak akses khusus atau membatasi akses ke sumber daya individu saja.

Catatan

Tip

Pengguna Synapse individual dapat menggunakan ID Microsoft Entra di portal Azure untuk melihat keanggotaan grup mereka. Ini memungkinkan mereka untuk mengetahui peran mana yang telah diberikan kepada mereka.

Langkah 2: Siapkan akun penyimpanan ADLS Gen2 Anda

Ruang kerja Synapse menggunakan kontainer penyimpanan default untuk:

  • Penyimpanan file data pendukung untuk tabel Spark
  • Log eksekusi untuk pekerjaan Spark
  • Pengelolaan pustaka yang Anda putuskan untuk dipasang

Mengidentifikasi informasi berikut tentang penyimpanan Anda:

  • Akun ADLS Gen2 yang akan digunakan untuk ruang kerja Anda. Dokumen ini memanggilnya storage1. storage1 dianggap sebagai akun penyimpanan "utama" untuk ruang kerja Anda.

  • Kontainer di dalam storage1 yang akan digunakan oleh ruang kerja Synapse Anda secara default. Dokumen ini memanggilnya container1.

  • Pilih Kontrol akses (IAM).

  • Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  • Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Data blob penyimpanan kontributor
    Tetapkan akses ke SERVICEPRINCIPAL
    Anggota workspace1_SynapseAdministrators, workspace1_SynapseContributors, dan workspace1_SynapseComputeOperators

    Add role assignment page in Azure portal.

Langkah 3: Membuat dan mengonfigurasi ruang kerja Synapse Anda

Di portal Azure, buat ruang kerja Synapse:

  • Pilih langganan Anda

  • Pilih atau buat grup sumber daya yang memiliki peran Pemilik Azure.

  • Beri nama ruang kerja workspace1

  • Pilih storage1 untuk akun Penyimpanan

  • Pilih container1 untuk kontainer yang sedang digunakan sebagai "filesystem".

  • Buka WS1 di Studio Synapse

  • Di Synapse Studio, buka Kelola>Kontrol Akses. Dalam cakupan ruang kerja, tetapkan peran Synapse ke kelompok keamanan sebagai berikut:

    • Tetapkan peran Administrator Synapse ke workspace1_SynapseAdministrators
    • Tetapkan peran Kontributor Synapse ke workspace1_SynapseContributors
    • Tetapkan peran Operator Komputasi Synapse ke workspace1_SynapseComputeOperators

Langkah 4: Berikan akses MSI ruang kerja ke kontainer penyimpanan default

Untuk menjalankan alur dan melakukan tugas sistem, Azure Synapse mengharuskan identitas layanan terkelola agar memiliki akses ke container1 di akun default ADLS Gen2, untuk ruang kerja. Untuk informasi selengkapnya, lihat identitas terkelola ruang kerja Azure Synapse.

  • Buka portal Azure

  • Temukan akun penyimpanan, storage1, lalu container1.

  • Pilih Kontrol Akses (IAM) .

  • Untuk membuka halaman Menambahkan penetapan peran, pilih Tambahkan>Tambahkan penetapan peran.

  • Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Data blob penyimpanan kontributor
    Tetapkan akses ke MANAGEDIDENTITY
    Anggota nama identitas terkelola

    Catatan

    Nama identitas terkelola juga merupakan nama ruang kerja.

    Add role assignment page in Azure portal.

Langkah 5: Memberi administrator Synapse peran Kontributor Azure untuk ruang kerja

Untuk membuat kumpulan SQL, kumpulan Apache Spark dan runtime integrasi, pengguna setidaknya membutuhkan peran Kontributor Azure untuk ruang kerja. Peran kontributor juga memungkinkan pengguna untuk mengelola sumber daya, termasuk menjeda dan menskalakan. Jika Anda menggunakan portal Azure atau Synapse Studio untuk membuat kumpulan SQL, kumpulan Apache Spark dan runtime integrasi, Anda memerlukan peran Kontributor Azure di tingkat grup sumber daya.

  • Buka portal Azure

  • Temukan ruang kerja, workspace1

  • Pilih Kontrol Akses (IAM) .

  • Untuk membuka halaman Menambahkan penetapan peran, pilih Tambahkan>Tambahkan penetapan peran.

  • Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Kontributor
    Tetapkan akses ke SERVICEPRINCIPAL
    Anggota workspace1_SynapseAdministrators

    Add role assignment page in Azure portal.

Langkah 6: Menetapkan peran Admin Direktori Aktif SQL

pembuat ruang kerja ditetapkan secara otomatis sebagai Admin Active Directory SQL untuk ruang kerja. Hanya satu pengguna atau grup yang dapat diberikan peran ini. Pada langkah ini, Anda menetapkan Admin Active Directory SQL untuk ruang kerja ke kelompok keamanan workspace1_SQLAdmins. Hal ini memberi grup ini akses admin dengan hak istimewa yang tinggi ke semua kumpulan SQL dan database di ruang kerja.

  • Buka portal Azure
  • Navigasikan ke workspace1
  • Di bawah Pengaturan, pilih ID Microsoft Entra
  • Pilih Atur admin dan pilih workspace1_SQLAdmins

Catatan

Langkah 6 bersifat opsional. Anda dapat memilih untuk memberikan workspace1_SQLAdmins peran yang kurang istimewa kepada grup. Untuk menetapkan db_owner atau peran SQL lainnya, Anda harus menjalankan skrip di setiap database SQL.

Langkah 7: Memberikan akses ke kumpulan SQL

Administrator Synapse secara default diberikan peran SQL db_owner untuk kumpulan SQL tanpa server di ruang kerja juga.

Akses ke kumpulan SQL untuk pengguna lain dikontrol dengan izin SQL. Menetapkan izin SQL mengharuskan skrip SQL dijalankan pada setiap database SQL setelah pembuatan. Berikut ini adalah contoh yang mengharuskan Anda menjalankan skrip ini:

  1. Memberikan pengguna lain akses ke kumpulan SQL tanpa server, 'Bawaan', dan databasenya.

  2. Memberikan pengguna akses ke database kumpulan SQL khusus. Contoh skrip SQL disertakan nanti dalam artikel ini.

  3. Untuk memberikan akses ke database kumpulan SQL khusus, skrip dapat dijalankan oleh pembuat ruang kerja atau anggota grup workspace1_SynapseAdministrators mana pun.

  4. Untuk memberikan akses ke kumpulan SQL tanpa server, 'Bawaan', skrip dapat dijalankan oleh anggota grup workspace1_SQLAdmins atau grup workspace1_SynapseAdministrators mana pun.

Tip

Anda dapat memberikan akses ke semua database SQL dengan mengambil langkah-langkah berikut untuk setiap kumpulan SQL. Bagian Izin cakupan-Konfigurasi-Ruang Kerja adalah pengecualian dari aturan dan memungkinkan Anda menetapkan peran sysadmin kepada pengguna di tingkat ruang kerja.

Langkah 7a: Kumpulan SQL Tanpa Server, Bawaan

Anda dapat menggunakan contoh skrip di bagian ini untuk memberi pengguna izin untuk mengakses database individu atau semua database di kumpulan SQL tanpa server, Built-in.

Catatan

Dalam contoh skrip, ganti alias dengan alias pengguna atau grup yang diberikan akses. Ganti domain dengan domain perusahaan yang Anda gunakan.

Mengonfigurasi izin cakupan-Database

Anda dapat memberikan pengguna akses ke database SQL tanpa server tunggal dengan langkah-langkah yang diuraikan dalam contoh ini:

  1. Buat data masuk. Ubah ke master konteks database.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Buat pengguna di database Anda. Ubah konteks ke database Anda.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Tambahkan pengguna sebagai anggota peran yang ditentukan dalam database Anda (dalam hal ini, peran db_owner).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

Mengonfigurasi izin cakupan-Database

Anda dapat memberikan akses penuh ke semua kumpulan SQL tanpa server di ruang kerja. Jalankan skrip dalam contoh ini di database master:

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

Langkah 7b: konfigurasikan kumpulan SQL Khusus

Anda dapat memberikan akses ke database kumpulan SQL tunggal khusus. Gunakan langkah-langkah ini di editor skrip SQL Azure Synapse:

  1. Buat pengguna di database dengan menjalankan perintah berikut. Pilih database target di Sambungkan ke menurun:

    --Create user in the database
    CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER;
    -- For Service Principals you would need just the display name and @domain.com is not required
    
  2. Beri pengguna peran untuk mengakses database:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

Penting

db_datareader dan db_datawriter peran database dapat memberikan izin baca/tulis saat Anda tidak ingin memberikan izin db_owner. Namun, izin db_owner diperlukan oleh pengguna Spark untuk membaca dan menulis langsung dari Spark ke atau dari kumpulan SQL.

Anda dapat menjalankan kueri untuk mengonfirmasi bahwa kumpulan SQL tanpa server dapat mengkueri akun penyimpanan, setelah Anda membuat akun pengguna.

Langkah 8: Menambahkan pengguna ke grup keamanan

Konfigurasi awal untuk sistem kontrol akses Anda sudah selesai.

Untuk mengelola akses, Anda dapat menambahkan dan menghapus pengguna ke kelompok keamanan yang telah disiapkan. Anda dapat menetapkan pengguna secara manual ke peran Azure Synapse, tetapi cara ini menetapkan izin dengan tidak konsisten. Sebaiknya, tambahkan atau hapus pengguna ke kelompok keamanan Anda saja.

Langkah 9: Keamanan jaringan

Sebagai langkah terakhir untuk mengamankan ruang kerja, Anda harus mengamankan akses jaringan, menggunakan firewall ruang kerja.

Langkah 10: Penyelesaian

Ruang kerja Anda sekarang sepenuhnya dikonfigurasi dan diamankan.

Mendukung skenario yang lebih canggih

Panduan ini telah berfokus pada pengaturan sistem kontrol akses dasar. Anda dapat mendukung skenario yang lebih canggih dengan membuat kelompok keamanan tambahan dan menetapkan grup ini dengan peran granular pada cakupan yang lebih spesifik. Pertimbangkan kasus berikut:

Aktifkan dukungan Git untuk ruang kerja untuk skenario pengembangan yang lebih lanjut termasuk CI/CD. Sementara dalam mode Git, izin Git dan Synapse RBAC akan menentukan apakah pengguna dapat melakukan perubahan pada cabang kerja mereka. Penerbitan ke layanan hanya berlangsung dari cabang kolaborasi. Pertimbangkan membuat kelompok keamanan untuk pengembang yang perlu mengembangkan dan melakukan debug pembaruan di cabang yang berfungsi tetapi tidak perlu menerbitkan perubahan pada layanan langsung.

Membatasi akses pengembang ke sumber daya tertentu. Buat grup keamanan tambahan yang lebih halus untuk pengembang yang hanya memerlukan akses ke sumber daya tertentu. Tetapkan grup ini peran Azure Synapse yang sesuai yang tercakup ke kumpulan Spark, Runtime integrasi, atau info masuk tertentu.

Batasi operator dari mengakses artefak kode. Buat grup keamanan untuk operator yang perlu memantau status operasional sumber daya komputasi Synapse dan melihat log tetapi tidak memerlukan akses ke kode atau menerbitkan pembaruan ke layanan. Tetapkan grup ini peran Operator Komputasi yang tercakup ke kumpulan Spark dan Runtime integrasi tertentu.

Nonaktifkan autentikasi lokal. Dengan hanya mengizinkan autentikasi Microsoft Entra, Anda dapat mengelola akses ke sumber daya Azure Synapse secara terpusat, seperti kumpulan SQL. Autentikasi lokal untuk semua sumber daya dalam ruang kerja dapat dinonaktifkan selama atau setelah pembuatan ruang kerja. Untuk informasi selengkapnya tentang autentikasi khusus Microsoft Entra, lihat Menonaktifkan autentikasi lokal di Azure Synapse Analytics.

Langkah berikutnya