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:
- Gambaran umum virtual network
- Mengamankan lingkungan pelatihan
- Untuk mengamankan inferensi, lihat dokumen berikut ini:
- Jika menggunakan CLI v1 atau SDK v1 - Lingkungan inferensi aman
- Jika menggunakan CLI v2 atau SDK v2 - Isolasi jaringan untuk titik akhir online terkelola
- Mengaktifkan fungsionalitas studio
- Menggunakan DNS kustom
- Menggunakan firewall
- Isolasi jaringan platform API
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.regionPerhatikan 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:
- Unduh daftar dari Rentang IP Azure dan Tag Layanan.
- Gunakan perintah Azure CLI az network list-service-tags.
- Gunakan perintah Azure PowerShell Get-AzNetworkServiceTag.
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:
- Persyaratan masuk/keluar umum untuk AKS seperti yang dijelaskan dalam artikel Batasi lalu lintas egress di Azure Kubernetes Service.
- Keluar ke mcr.microsoft.com.
- Saat menyebarkan model ke kluster AKS, gunakan panduan di artikel Menyebarkan model ML ke Layanan Azure Kubernetes.
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.
Di portal Microsoft Azure, pilih Akun Azure Storage.
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.
Tip
Saat mengonfigurasi akun penyimpanan yang bukan penyimpanan default, pilih jenis Subsumber daya target yang sesuai dengan akun penyimpanan yang ingin Anda tambahkan.
Setelah membuat titik akhir privat untuk sumber daya penyimpanan, pilih tab Firewall dan jaringan virtual di bagian Jaringan untuk akun penyimpanan.
Pilih Jaringan yang Dipilih, lalu di bawah Instans sumber daya, pilih
Microsoft.MachineLearningServices/Workspacesebagai 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.
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:
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 showuntuk 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.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.
Konfigurasikan ACR untuk ruang kerja agar Mengizinkan akses oleh layanan tepercaya.
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.
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 updateuntuk mengatur komputasi build. Perintahnya sama untuk ekstensi v1 dan v2 Azure CLI untuk pembelajaran mesin. Dalam perintah berikut, gantimyworkspacedengan nama ruang kerja Anda,myresourcegroupdengan grup sumber daya yang berisi ruang kerja, danmycomputeclusterdengan 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:
- Gambaran umum virtual network
- Mengamankan lingkungan pelatihan
- Titik akhir online aman (inferensi)
- Untuk mengamankan inferensi, lihat dokumen berikut ini:
- Jika menggunakan CLI v1 atau SDK v1 - Lingkungan inferensi aman
- Jika menggunakan CLI v2 atau SDK v2 - Isolasi jaringan untuk titik akhir online terkelola
- Mengaktifkan fungsionalitas studio
- Menggunakan DNS kustom
- Menggunakan firewall
- Tutorial: Cara membuat ruang kerja yang aman
- Tutorial: Cara membuat ruang kerja yang aman menggunakan templat
- Isolasi jaringan platform API


