Mengamankan ruang kerja Azure Pembelajaran Mesin dengan jaringan virtual (v1)

BERLAKU UNTUK:Ekstensi ml Azure CLI v1Python SDK azureml v1

Dalam artikel ini, Anda mempelajari cara mengamankan ruang kerja Azure Pembelajaran Mesin dan sumber daya terkait di Azure Virtual Network.

Tip

Microsoft merekomendasikan penggunaan Azure Pembelajaran Mesin jaringan virtual terkelola alih-alih langkah-langkah dalam artikel ini. Dengan jaringan virtual terkelola, Azure Pembelajaran Mesin menangani pekerjaan isolasi jaringan untuk ruang kerja Dan komputasi terkelola Anda. Anda juga dapat menambahkan titik akhir privat untuk sumber daya yang diperlukan oleh ruang kerja, seperti Akun Azure Storage. Untuk informasi selengkapnya, lihat Isolasi jaringan terkelola Ruang Kerja.

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.

    Peringatan

    Jangan gunakan rentang alamat IP 172.17.0.0/16 untuk VNet Anda. Ini adalah rentang subnet default yang digunakan oleh jaringan jembatan Docker, dan akan mengakibatkan kesalahan jika digunakan untuk VNet Anda. Rentang lain mungkin juga bertentangan tergantung pada apa yang ingin Anda sambungkan ke jaringan virtual. Misalnya, jika Anda berencana untuk menghubungkan jaringan lokal Anda ke VNet, dan jaringan lokal Anda juga menggunakan rentang 172.16.0.0/16. Pada akhirnya, merupakan pilihan Anda untuk merencanakan infrastruktur jaringan 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/*/read" pada sumber daya jaringan virtual. Izin ini tidak diperlukan untuk penyebaran templat Azure Resource Manager (ARM).
    • "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

Saat ACR berada di belakang jaringan virtual, Azure Pembelajaran Mesin 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 ini memberikan gambaran umum tentang akses yang diperlukan dan tujuan apa yang dilayaninya. Untuk tag layanan yang diakhiri dengan .region, ganti region dengan wilayah Azure yang berisi ruang kerja Anda. Misalnya, Storage.westus:

Tip

Tab yang diperlukan mencantumkan konfigurasi masuk dan keluar yang diperlukan. Tab situasian mencantumkan konfigurasi masuk dan keluar opsional yang diperlukan oleh konfigurasi tertentu yang mungkin ingin Anda aktifkan.

Arah Protokol &
port
Tag layanan Tujuan
Keluar TCP: 80, 443 AzureActiveDirectory Autentikasi menggunakan Microsoft Entra ID..
Keluar TCP: 443, 18881
UDP: 5831
AzureMachineLearning Menggunakan Azure Machine Learning service.
Python intellisense dalam notebook menggunakan port 18881.
Membuat, memperbarui, dan menghapus instans komputasi Azure Pembelajaran Mesin menggunakan port 5831.
Keluar ANY: 443 BatchNodeManagement.region Komunikasi dengan back-end Azure Batch untuk Azure Pembelajaran Mesin instans/kluster komputasi.
Keluar TCP: 443 AzureResourceManager Pembuatan sumber daya Azure dengan Azure Pembelajaran Mesin, Azure CLI, dan Azure Pembelajaran Mesin SDK.
Keluar TCP: 443 Storage.region Data akses yang disimpan di Akun Azure Storage untuk kluster komputasi dan instans komputasi. Untuk informasi tentang mencegah penyelundupan data selama keluar ini, lihat Perlindungan penyelundupan data.
Keluar TCP: 443 AzureFrontDoor.FrontEnd
* Tidak diperlukan di Microsoft Azure yang dioperasikan oleh 21Vianet.
Titik masuk global untuk studio Azure Machine Learning. Simpan gambar dan lingkungan untuk AutoML. Untuk informasi tentang mencegah penyelundupan data selama keluar ini, lihat Perlindungan penyelundupan data.
Keluar TCP: 443 MicrosoftContainerRegistry.region
Perhatikan bahwa tag ini memiliki dependensi pada AzureFrontDoor.FirstParty tag
Mengakses gambar docker yang disediakan oleh Microsoft. Menyiapkan {i>router

Tip

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

Alamat IP dapat berubah seiring waktu.

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 tersebut 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.
code.visualstudio.com Diperlukan untuk mengunduh dan menginstal desktop Visual Studio Code. Ini tidak diperlukan untuk Visual Studio Code Web.
update.code.visualstudio.com
*.vo.msecnd.net
Digunakan untuk mengambil bit server Visual Studio Code yang diinstal pada instans komputasi melalui skrip penyiapan.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Diperlukan untuk mengunduh dan menginstal ekstensi Visual Studio Code. Host ini memungkinkan koneksi jarak jauh ke Instans Komputasi yang disediakan oleh ekstensi Azure ML untuk Visual Studio Code. Untuk mendapatkan informasi lebih lanjut, lihat Menghubungkan ke instans komputasi Azure Machine Learning dalam Visual Studio Code.
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.

Catatan

Saat menggunakan ekstensi Azure Pembelajaran Mesin VS Code, instans komputasi jarak jauh akan memerlukan akses ke repositori publik untuk menginstal paket yang diperlukan oleh ekstensi. Jika instans komputasi memerlukan proksi untuk mengakses repositori publik ini atau Internet, Anda harus mengatur dan mengekspor HTTP_PROXY variabel lingkungan dan HTTPS_PROXY dalam ~/.bashrc file instans komputasi. Proses ini dapat diotomatisasi pada waktu provisi dengan menggunakan skrip kustom.

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 akan 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 anonim. Untuk informasi selengkapnya, lihat melarang akses anonim.

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 v1

    Jika Anda telah menginstal ekstensi Pembelajaran Mesin v1 untuk Azure CLI, Anda dapat menggunakan az ml workspace show perintah untuk menampilkan informasi ruang kerja.

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

    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.
    • Jika Anda menggunakan kluster komputasi yang dikonfigurasi tanpa alamat IP publik, Anda harus menyediakan beberapa cara bagi kluster untuk mengakses internet publik. Akses internet diperlukan saat mengakses gambar yang disimpan di Microsoft Container Registry, paket yang diinstal pada Pypi, Conda, dll. Anda perlu mengonfigurasi User Defined Routing (UDR) untuk menjangkau IP publik untuk mengakses internet. Misalnya, Anda dapat menggunakan IP publik firewall Anda, atau Anda dapat menggunakan Virtual Network NAT dengan IP publik. Untuk informasi selengkapnya, lihat Cara melatih dengan aman di VNet.

    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?
Azure Blob Storage Ya
Berbagi file Azure Ya
Azure Data Lake Store Gen1 No
Azure Data Lake Store Gen2 No
Database Azure SQL 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

Gunakan kumpulan 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) 

Mengamankan Azure Monitor dan Application Insights

Untuk mengaktifkan isolasi jaringan untuk Azure Monitor dan instans Application Insights untuk ruang kerja, gunakan langkah-langkah berikut:

  1. Buka sumber daya Application Insights Anda di Portal Microsoft Azure. Tab Gambaran Umum mungkin atau mungkin tidak memiliki properti Ruang Kerja. Jika tidak memiliki properti , lakukan langkah 2. Jika ya, maka Anda dapat melanjutkan langsung ke langkah 3.

    Tip

    Ruang kerja baru membuat sumber daya Application Insights berbasis ruang kerja secara default. Jika ruang kerja Anda baru saja dibuat, maka Anda tidak perlu melakukan langkah 2.

  2. Tingkatkan instans Application Insights untuk ruang kerja Anda. Untuk langkah-langkah tentang cara meningkatkan, lihat Migrasi ke sumber daya Application Insights berbasis ruang kerja.

  3. Buat Cakupan Azure Monitor Private Link dan tambahkan instans Application Insights dari langkah 1 ke cakupan. Untuk langkah-langkah tentang cara melakukannya, lihat Mengonfigurasi tautan privat Azure Monitor Anda.

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 - Menyambungkan 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 - Menyambungkan jaringan lokal ke cloud melalui koneksi privat. Koneksi dibuat menggunakan penyedia konektivitas.

  • Azure Bastion - Dalam skenario ini, Anda membuat Komputer Virtual Azure (terkadang disebut jump box) di dalam VNet. Anda kemudian tersambung ke VM menggunakan Azure Bastion. Bastion memungkinkan Anda untuk tersambung 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, jump box 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 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: