Mengamankan ruang kerja Azure Machine Learning dengan jaringan virtual

Dalam artikel ini, Anda akan mempelajari cara mengamankan ruang kerja Azure Machine Learning dan sumber daya terkait dalam jaringan virtual.

Tip

Artikel ini adalah bagian dari seri tentang mengamankan alur kerja Azure Machine Learning. Lihat artikel lain dalam seri ini:

Untuk tutorial mengenai pembuatan ruang kerja yang aman, lihat Tutorial: Membuat ruang kerja yang aman atau Tutorial: Membuat ruang kerja yang aman menggunakan templat.

Dalam artikel ini, Anda akan mempelajari cara mengaktifkan sumber daya ruang kerja berikut ini di jaringan virtual:

  • Ruang kerja Azure Machine Learning
  • Akun Azure Storage
  • Penyimpanan data dan himpunan data Azure Machine Learning
  • Azure Key Vault
  • Azure Container Registry

Prasyarat

  • Baca artikel Gambaran umum keamanan jaringan untuk memahami skenario jaringan virtual umum dan arsitektur jaringan virtual secara keseluruhan.

  • Baca artikel Praktik terbaik Azure Machine Learning untuk keamanan perusahaan guna mempelajari tentang praktik terbaik.

  • Jaringan virtual dan subnet yang ada untuk digunakan dengan sumber daya komputasi Anda.

  • Untuk menyebarkan sumber daya ke dalam jaringan virtual atau subnet, akun pengguna Anda harus memiliki izin untuk tindakan berikut di kontrol akses berbasis peran Azure (Azure RBAC):

    • "Microsoft.Network/virtualNetworks/join/action" pada sumber daya jaringan virtual.
    • "Microsoft.Network/virtualNetworks/subnet/join/action" pada sumber daya subnet.

    Untuk informasi selengkapnya tentang Azure RBAC dengan pembuatan jaringan, lihat Peran bawaan jaringan

Azure Container Registry

  • Anda harus menggunakan Azure Container Registry versi Premium. Untuk mendapatkan informasi selengkapnya tentang peningkatan versi, lihat Mengubah SKU.

  • Jika Azure Container Registry Anda menggunakan titik akhir privat, titik akhir tersebut harus berada di jaringan virtual yang sama dengan akun penyimpanan dan target komputasi yang digunakan untuk pelatihan atau inferensi. Jika menggunakan titik akhir layanan, titik akhir tersebut harus berada di jaringan virtual dan subnet yang sama dengan akun penyimpanan dan target komputasi.

  • Ruang kerja Azure Machine Learning Anda harus berisi kluster komputasi Azure Machine Learning.

Batasan

Akun Azure Storage

  • Jika Anda berencana untuk menggunakan studio Azure Machine Learning dan akun penyimpanan juga ada di VNet, akan ada persyaratan validasi tambahan:

    • Jika akun penyimpanan menggunakan titik akhir layanan, artinya titik akhir privat ruang kerja dan titik akhir layanan penyimpanan harus berada di subnet VNet yang sama.
    • Jika akun penyimpanan menggunakan titik akhir privat, titik akhir privat ruang kerja dan titik akhir penyimpanan harus berada di VNet yang sama. Dalam hal ini, titik akhir tersebut dapat berada di subnet yang berbeda.

Azure Container Instances

Saat ruang kerja Azure Machine Learning Anda dikonfigurasi dengan titik akhir privat, penyebaran ke Azure Container Instances di VNet tidak didukung. Sebagai gantinya, pertimbangkan untuk menggunakan Titik akhir online terkelola dengan isolasi jaringan.

Azure Container Registry

Apabila ACR berada di belakang jaringan virtual, Azure Machine Learning tidak dapat menggunakannya untuk langsung membangun gambar Docker. Sebagai gantinya, kluster komputasi digunakan untuk membuat citra.

Penting

Kluster komputasi yang digunakan untuk membuat citra Docker harus dapat mengakses repositori paket yang digunakan untuk melatih dan menyebarkan model Anda. Anda mungkin perlu menambahkan aturan keamanan jaringan yang memungkinkan akses ke repositori publik, menggunakan paket Python privat, atau menggunakan citra Docker kustom yang sudah menyertakan paket.

Peringatan

Jika Azure Container Registry menggunakan titik akhir privat atau titik akhir layanan untuk berkomunikasi dengan jaringan virtual, Anda tidak dapat menggunakan identitas terkelola dengan kluster komputasi Azure Machine Learning.

Azure Monitor

Peringatan

Azure Monitor mendukung penggunaan Azure Private Link untuk tersambung ke VNet. Namun, Anda harus menggunakan mode Private Link yang terbuka di Azure Monitor. Untuk informasi lebih lanjut, lihat Mode akses Private Link: Privat saja vs, Terbuka.

Akses internet publik yang diperlukan

Azure Machine Learning membutuhkan akses masuk dan keluar ke internet publik. Tabel berikut memberikan gambaran umum tentang akses apa yang diperlukan dan untuk apa akses itu. Protokol untuk semua item adalah TCP. Untuk tag layanan yang diakhiri dengan .region, ganti region dengan wilayah Azure yang berisi ruang kerja Anda. Misalnya, Storage.westus:

Arah Port Tag layanan Tujuan
Masuk 29876-29877 BatchNodeManagement Membuat, memperbarui, dan menghapus instans komputasi Azure Machine Learning dan menghitung kluster. Ini tidak diperlukan jika Anda menggunakan opsi Tanpa IP Publik.
Masuk 44224 AzureMachineLearning Membuat, memperbarui, dan menghapus instans komputasi Azure Machine Learning. Ini tidak diperlukan jika Anda menggunakan opsi Tanpa IP Publik.
Keluar 443 AzureMonitor Digunakan untuk mencatat pemantauan dan metrik ke App Insights dan Azure Monitor.
Keluar 80, 443 AzureActiveDirectory Autentikasi menggunakan Azure Active Directory.
Keluar 443, 8787, 18881 AzureMachineLearning Menggunakan Azure Machine Learning service.
Keluar 443 AzureResourceManager Pembuatan sumber daya Azure dengan Azure Machine Learning.
Keluar 443, 445 (*) Storage.region Data akses yang disimpan di Akun Azure Storage untuk kluster komputasi dan instans komputasi.
(*) 445 hanya diperlukan jika Anda memiliki firewall antara jaringan virtual Anda untuk Azure ML dan titik akhir privat untuk akun penyimpanan Anda.
Keluar 443 AzureFrontDoor.FrontEnd
* Tidak diperlukan di Azure Tiongkok.
Titik masuk global untuk studio Azure Machine Learning. Simpan gambar dan lingkungan untuk AutoML.
Keluar 443 ContainerRegistry.region Mengakses gambar docker yang disediakan oleh Microsoft.
Keluar 443 MicrosoftContainerRegistry.region
Perhatikan bahwa tag ini memiliki dependensi pada tag AzureFrontDoor.FirstParty
Mengakses gambar docker yang disediakan oleh Microsoft. Menyiapkan router Azure Machine Learning untuk Azure Kubernetes Service.
Keluar 443 Keyvault.region Akses brankas kunci untuk layanan Azure Batch. Hanya diperlukan jika ruang kerja Anda dibuat dengan bendera hbi_workspace diaktifkan.

Tip

Jika Anda memerlukan alamat IP alih-alih tag layanan, gunakan salah satu opsi berikut:

Alamat IP dapat berubah seiring waktu.

Penting

Saat menggunakan kluster komputasi yang dikonfigurasi untuk tanpa alamat IP publik, Anda harus mengizinkan lalu lintas berikut:

  • Arus masuk dari sumber VirtualNetwork dan sumber port lainnya, ke tujuan VirtualNetwork, dan port tujuan 29876, 29877.
  • Arus masuk dari sumber AzureLoadBalancer dan sumber port lainnya ke tujuanVirtualNetwork dan port tujuan44224.

Anda mungkin juga perlu mengizinkan lalu lintas keluar ke Visual Studio Code dan situs non-Microsoft untuk pemasangan paket yang diperlukan oleh proyek pembelajaran mesin Anda. Tabel berikut mencantumkan repositori yang umum digunakan untuk pembelajaran mesin:

Nama Host Tujuan
anaconda.com
*.anaconda.com
Digunakan untuk menginstal paket default.
*.anaconda.org Digunakan untuk mendapatkan data repositori.
pypi.org Digunakan untuk mencantumkan dependensi dari indeks default, jika ada, dan indeks tidak ditimpa oleh pengaturan pengguna. Jika indeks ditimpa, Anda juga harus mengizinkan *.pythonhosted.org.
cloud.r-project.org Digunakan saat menginstal paket CRAN untuk pengembangan R.
*pytorch.org Digunakan oleh beberapa contoh berdasarkan PyTorch.
*.tensorflow.org Digunakan oleh beberapa contoh berdasarkan Tensorflow.
update.code.visualstudio.com

*.vo.msecnd.net
Digunakan untuk mengambil bit server VS Code yang diinstal pada instans komputasi melalui skrip penyetelan.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Digunakan untuk mengambil bit server websocket, yang diinstal pada instans komputasi. Server websocket digunakan untuk mengirimkan permintaan dari klien Visual Studio Code (aplikasi desktop) ke server Visual Studio Code yang berjalan pada instans komputasi.

Saat menggunakan Azure Kubernetes Service (AKS) dengan Azure Machine Learning, izinkan lalu lintas berikut ke VNet AKS:

Untuk informasi tentang menggunakan solusi firewall, lihat Menggunakan firewall dengan Azure Machine Learning.

Mengamankan ruang kerja dengan titik akhir privat

Dengan Azure Private Link, Anda dapat terhubung ke ruang kerja menggunakan titik akhir privat. Titik akhir privat adalah sekumpulan alamat IP privat dalam jaringan virtual Anda. Anda kemudian dapat membatasi akses ke ruang kerja Anda agar hanya terjadi melalui alamat IP privat. Titik akhir privat membantu mengurangi risiko penyelundupan data.

Untuk informasi selengkapnya tentang mengonfigurasi titik akhir privat untuk ruang kerja Anda, lihat Cara mengonfigurasi titik akhir privat.

Peringatan

Mengamankan ruang kerja dengan titik akhir privat tidak memastikan keamanan menyeluruh dengan sendirinya. Anda harus mengikuti langkah-langkah lainnya dalam artikel ini, dan seri VNet, untuk mengamankan komponen individual solusi Anda. Misalnya, jika Anda menggunakan titik akhir privat untuk ruang kerja, tetapi Akun Azure Storage Anda tidak berada di belakang VNet, lalu lintas antara ruang kerja dan penyimpanan tidak menggunakan VNet untuk keamanan.

Akun penyimpanan Azure yang aman

Azure Machine Learning mendukung akun penyimpanan yang dikonfigurasi untuk menggunakan titik akhir privat atau titik akhir layanan.

  1. Di portal Microsoft Azure, pilih Akun Azure Storage.

  2. Gunakan informasi dalam Menggunakan titik akhir privat untuk Azure Storage untuk menambahkan titik akhir privat untuk sub-sumber daya penyimpanan berikut:

    • Blob
    • File
    • Antrean - Hanya diperlukan jika Anda berencana untuk menggunakan ParallelRunStep dalam alur Azure Machine Learning.
    • Tabel - Hanya diperlukan jika Anda berencana untuk menggunakan ParallelRunStep dalam alur Azure Machine Learning.

    Screenshot showing private endpoint configuration page with blob and file options

    Tip

    Saat mengonfigurasi akun penyimpanan yang bukan penyimpanan default, pilih jenis Subsumber daya target yang sesuai dengan akun penyimpanan yang ingin Anda tambahkan.

  3. Setelah membuat titik akhir privat untuk sumber daya penyimpanan, pilih tab Firewall dan jaringan virtual di bagian Jaringan untuk akun penyimpanan.

  4. Pilih Jaringan yang Dipilih, lalu di bawah Instans sumber daya, pilih Microsoft.MachineLearningServices/Workspace sebagai tipe Sumber Daya. Pilih ruang kerja Anda menggunakan nama Instans. Untuk mengetahui informasi selengkapnya, lihat Akses tepercaya berdasarkan identitas terkelola yang ditetapkan sistem.

    Tip

    Atau, Anda dapat memilih Izinkan layanan Azure pada daftar layanan tepercaya untuk mengakses akun penyimpanan ini untuk lebih luas memungkinkan akses dari layanan tepercaya. Untuk informasi selengkapnya, lihat Mengonfigurasi firewall Azure Storage dan jaringan virtual.

    The networking area on the Azure Storage page in the Azure portal when using private endpoint

  5. Pilih Simpan untuk menyimpan konfigurasi.

Tip

Saat menggunakan titik akhir privat, Anda juga dapat menonaktifkan akses publik. Untuk mendapatkan informasi selengkapnya, lihat melarang akses baca publik.

Mengamankan Azure Key Vault

Azure Machine Learning menggunakan instans Key Vault terkait untuk menyimpan kredensial berikut:

  • String koneksi akun penyimpanan terkait
  • Kata sandi ke instans Azure Container Repository
  • String koneksi ke penyimpanan data

Brankas kunci Azure dapat dikonfigurasi untuk menggunakan titik akhir privat atau titik akhir layanan. Agar dapat menggunakan kemampuan eksperimen Azure Machine Learning dengan Azure Key Vault di belakang jaringan virtual, gunakan langkah-langkah berikut:

Tip

Terlepas dari apakah Anda menggunakan titik akhir privat atau titik akhir layanan, brankas kunci harus berada di jaringan yang sama dengan titik akhir privat ruang kerja.

Untuk mengetahui informasi tentang menggunakan titik akhir privat dengan Azure Key Vault, lihat Mengintegrasikan Key Vault dengan Azure Private Link.

Mengaktifkan Azure Container Registry (ACR)

Tip

Jika Anda tidak menggunakan Azure Container Registry yang sudah ada saat membuat ruang kerja, mungkin ACR tidak ada. Secara default, ruang kerja tidak akan membuat instans ACR hingga diperlukan. Untuk membuat paksa ACR, latih atau sebarkan model menggunakan ruang kerja Anda sebelum menggunakan langkah-langkah di bagian ini.

Azure Container Registry dapat dikonfigurasi untuk menggunakan titik akhir privat. Gunakan langkah-langkah berikut untuk mengonfigurasi ruang kerja Anda untuk menggunakan ACR saat berada di jaringan virtual:

  1. Temukan nama Azure Container Registry untuk ruang kerja Anda menggunakan salah satu metode berikut:

    BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)

    Jika Anda telah menginstal ekstensi Machine Learning untuk Azure CLI v2, Anda dapat menggunakan perintah az ml workspace show untuk menampilkan informasi ruang kerja. Ekstensi v1 tidak menampilkan informasi ini.

    az ml workspace show -w yourworkspacename -g resourcegroupname --query 'container_registry'
    

    Perintah ini mengembalikan nilai yang mirip dengan "/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". Bagian terakhir dari string adalah nama Azure Container Registry untuk ruang kerja.

  2. Batasi akses ke jaringan virtual Anda menggunakan langkah-langkah di Sambungkan secara privat ke Azure Container Registry. Saat menambahkan jaringan virtual, pilih jaringan virtual dan subnet untuk sumber daya Azure Machine Learning Anda.

  3. Konfigurasikan ACR untuk ruang kerja agar Mengizinkan akses oleh layanan tepercaya.

  4. Membuat kluster komputasi Azure Machine Learning. Kluster ini digunakan untuk membangun gambar Docker ketika ACR berada di belakang VNet. Untuk informasi selengkapnya, lihat Membuat kluster komputasi.

  5. Gunakan salah satu metode berikut untuk mengonfigurasi ruang kerja untuk membuat gambar Docker dengan menggunakan kluster komputasi.

    Penting

    Batasan berikut berlaku Saat menggunakan kluster komputasi untuk build gambar:

    • Hanya SKU CPU saja yang didukung.
    • Anda tidak dapat menggunakan kluster komputasi yang dikonfigurasi untuk alamat IP yang bukan publik.

    Anda dapat menggunakan perintah az ml workspace update untuk mengatur komputasi build. Perintahnya sama untuk ekstensi v1 dan v2 Azure CLI untuk pembelajaran mesin. Dalam perintah berikut, ganti myworkspace dengan nama ruang kerja Anda, myresourcegroup dengan grup sumber daya yang berisi ruang kerja, dan mycomputecluster dengan nama kluster komputasi:

    az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
    

Tip

Apabila ACR berada di belakang VNet, Anda juga dapat menonaktifkan akses publiknya.

Himpunan data dan penyimpanan data

Tabel berikut mencantumkan layanan yang perlu melompati validasi untuk:

Layanan Perlu melompati validasi?
Penyimpanan Azure Blob Ya
Berbagi file Azure Ya
Azure Data Lake Store Gen1 Tidak
Azure Data Lake Store Gen2 Tidak
Azure SQL Database Ya
PostgreSql Ya

Catatan

Azure Data Lake Store Gen1 dan Azure Data Lake Store Gen2 melompati validasi secara default, sehingga tidak ada tindakan lebih lanjut yang diperlukan.

Contoh kode berikut membuat penyimpanan data dan Azure Blob baru dan mengatur skip_validation=True.

blob_datastore = Datastore.register_azure_blob_container(workspace=ws,  

                                                         datastore_name=blob_datastore_name,  

                                                         container_name=container_name,  

                                                         account_name=account_name, 

                                                         account_key=account_key, 

                                                         skip_validation=True ) // Set skip_validation to true

Menggunakan himpunan data

Sintaks untuk melewati validasi himpunan data serupa untuk jenis himpunan data berikut:

  • File dengan pemisah
  • JSON
  • Parquet
  • SQL
  • File

Kode berikut membuat himpunan data JSON baru dan mengatur validate=False.

json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths, 

validate=False) 

Menyambungkan ke ruang kerja Anda dengan aman

Untuk terhubung ke ruang kerja yang diamankan di belakang VNet, gunakan salah satu metode berikut:

  • Gateway VPN Azure - Menghubungkan jaringan lokal ke VNet melalui koneksi privat. Koneksi dibuat melalui internet publik. Ada dua jenis gateway VPN yang mungkin Anda gunakan:

    • Titik-ke-situs: Setiap komputer klien menggunakan klien VPN untuk terhubung ke VNet.
    • Situs-ke-situs: Perangkat VPN menghubungkan VNet ke jaringan lokal Anda.
  • ExpressRoute - Menghubungkan jaringan lokal ke cloud melalui koneksi privat. Koneksi dibuat menggunakan penyedia konektivitas.

  • Azure Bastion - Dalam skenario ini, Anda membuat Azure Virtual Machine (kadang-kadang disebut jump box) di dalam VNet. Lalu Anda menghubungkan ke VM menggunakan Azure Bastion. Bastion memungkinkan Anda untuk terhubung ke VM menggunakan sesi RDP atau SSH dari browser web lokal Anda. Anda kemudian menggunakan jump box sebagai lingkungan pengembangan Anda. Karena berada di dalam VNet, ia dapat langsung mengakses ruang kerja. Untuk contoh menggunakan jump box, lihat Tutorial: Membuat ruang kerja yang aman.

Penting

Saat menggunakan Gateway VPN atau ExpressRoute, Anda akan perlu merencanakan bagaimana resolusi nama bekerja antara sumber daya lokal Anda dengan yang berada di VNet. Untuk informasi selengkapnya, lihat Menggunakan server DNS kustom.

Jika Anda mengalami masalah saat menyambungkan ke ruang kerja, lihat Memecahkan masalah konektivitas ruang kerja yang aman.

Diagnostik ruang kerja

Anda dapat menjalankan diagnostik di ruang kerja dari studio Azure Machine Learning atau SDK Python. Setelah diagnostik berjalan, daftar masalah yang terdeteksi dikembalikan. Daftar ini mencakup tautan ke solusi yang memungkinkan. Untuk informasi lebih lanjut, lihat Cara menggunakan diagnostik ruang kerja.

Langkah berikutnya

Artikel ini adalah bagian dari seri tentang mengamankan alur kerja Azure Machine Learning. Lihat artikel lain dalam seri ini: