Mengamankan solusi MLOps dengan keamanan jaringan Azure

Azure DevOps
Azure DNS
Azure Machine Learning
Azure Private Link
Azure Virtual Network

Pembelajaran Mesin DevOps (MLOps), pertama kali disorot di Hidden Technical Debt in Pembelajaran Mesin Systems pada tahun 2015, berkembang pesat. Pasar untuk MLOps diperkirakan akan mencapai $ 4 miliar pada tahun 2025. Sementara itu, bekerja untuk mengamankan solusi MLOps menjadi lebih penting.

Artikel ini menjelaskan cara membantu melindungi solusi MLOps dengan menggunakan kemampuan keamanan jaringan Azure seperti Azure Virtual Network, peering jaringan, Azure Private Link, dan Azure DNS. Ini juga memperkenalkan cara menggunakan:

  • Azure Pipelines untuk mengakses sumber daya di jaringan virtual
  • Konfigurasi yang diperlukan dari Azure Container Registry dan Azure Pembelajaran Mesin komputasi instans dan kluster dalam jaringan virtual.

Terakhir, artikel ini menjelaskan biaya penggunaan layanan keamanan jaringan.

Sistem

Diagram tahapan dalam proses MLOps, dari menyiapkan data hingga memantau model.

Unduh file Visio arsitektur ini.

Aliran data

Diagram arsitektur menunjukkan contoh solusi MLOps.

  • Jaringan virtual bernama AML VNET membantu melindungi ruang kerja Azure Pembelajaran Mesin dan sumber daya terkait.

  • Jump host, Azure Bastion, dan agen yang dihost sendiri milik jaringan virtual lain bernama BASTION VNET. Pengaturan ini mensimulasikan memiliki solusi lain yang memerlukan akses ke sumber daya dalam jaringan virtual Azure Pembelajaran Mesin.

  • Dengan dukungan peering jaringan virtual dan zona DNS privat, Azure Pipelines dapat dijalankan pada agen host mandiri dan memicu alur Azure Pembelajaran Mesin yang diterbitkan di ruang kerja Azure Pembelajaran Mesin untuk melatih, mengevaluasi, dan mendaftarkan model pembelajaran mesin.

  • Akhirnya, model disebarkan ke titik akhir online atau titik akhir batch yang didukung oleh komputasi Azure Pembelajaran Mesin atau kluster Azure Kubernetes Service.

Komponen

Contoh solusi MLOps terdiri dari komponen-komponen ini:

Contoh skenario ini juga menggunakan layanan berikut untuk membantu melindungi solusi MLOps:

Detail skenario

MLOps adalah serangkaian praktik di persimpangan Pembelajaran Mesin, DevOps, dan rekayasa data yang bertujuan untuk menyebarkan dan memelihara model pembelajaran mesin dalam produksi dengan andal dan efisien.

Diagram berikut menunjukkan model proses MLOps yang disederhanakan. Model ini menawarkan solusi yang mengotomatiskan persiapan data, pelatihan model, evaluasi model, pendaftaran model, penyebaran model, dan pemantauan.

Diagram tahapan dalam proses MLOps, dari menyiapkan data hingga memantau model.

Saat menerapkan solusi MLOps, Anda mungkin ingin membantu mengamankan sumber daya ini:

  • Alur DevOps
  • Data pelatihan pembelajaran mesin
  • Jalur pembelajaran mesin
  • Model pembelajaran mesin

Untuk membantu mengamankan sumber daya, pertimbangkan metode ini:

  • Autentikasi dan otorisasi

    • Gunakan perwakilan layanan atau identitas terkelola alih-alih autentikasi interaktif.
    • Gunakan kontrol akses berbasis peran untuk menentukan cakupan akses pengguna ke sumber daya.
  • Keamanan jaringan

    • Gunakan Virtual Network untuk mengisolasi sebagian atau sepenuhnya lingkungan dari internet publik untuk mengurangi permukaan serangan dan potensi penyelundupan data.
      • Di ruang kerja Azure Pembelajaran Mesin, jika Anda masih menggunakan Azure Pembelajaran Mesin CLI v1 dan Azure Pembelajaran Mesin Python SDK v1 (seperti API v1), tambahkan titik akhir privat ke ruang kerja untuk menyediakan isolasi jaringan untuk semuanya kecuali operasi membuat, membaca, memperbarui, dan menghapus (CRUD) di ruang kerja atau sumber daya komputasi.
      • Untuk memanfaatkan fitur baru ruang kerja Azure Pembelajaran Mesin, gunakan Azure Pembelajaran Mesin CLI v2 dan Azure Pembelajaran Mesin Python SDK v2 (seperti API v2), di mana mengaktifkan titik akhir privat di ruang kerja Anda tidak menyediakan tingkat isolasi jaringan yang sama. Namun, jaringan virtual masih akan membantu melindungi data pelatihan dan model pembelajaran mesin. Sebaiknya Anda mengevaluasi API v2 sebelum mengadopsinya di solusi perusahaan Anda. Untuk informasi selengkapnya, lihat Apa platform API baru di Azure Resource Manager.
  • Enkripsi data

  • Kebijakan dan pemantauan

    • Gunakan Azure Policy dan Microsoft Defender untuk Cloud untuk menerapkan kebijakan.
    • Gunakan Azure Monitor untuk mengumpulkan dan menggabungkan data (seperti metrik dan log) dari berbagai sumber ke dalam platform data umum untuk analisis, visualisasi, dan pemberitahuan.

Ruang kerja Azure Pembelajaran Mesin adalah sumber daya tingkat atas untuk Azure Pembelajaran Mesin dan komponen inti solusi MLOps. Ruang kerja menyediakan tempat terpusat untuk bekerja dengan semua artefak yang Anda buat saat menggunakan Azure Pembelajaran Mesin.

Saat Anda membuat ruang kerja baru, ruang kerja tersebut secara otomatis membuat sumber daya Azure berikut yang digunakan oleh ruang kerja:

  • Azure Application Insights
  • Azure Container Registry
  • Azure Key Vault
  • Akun Azure Storage

Kemungkinan kasus penggunaan

Solusi ini sesuai dengan skenario di mana pelanggan menggunakan solusi MLOps untuk menyebarkan dan memelihara model pembelajaran mesin di lingkungan yang lebih aman. Pelanggan dapat berasal dari berbagai industri, seperti manufaktur, telekomunikasi, ritel, layanan kesehatan, dan sebagainya. Contohnya:

  • Operator telekomunikasi membantu melindungi gambar, data, dan model pembelajaran mesin pelanggan dalam sistem pemantauan videonya untuk toko ritel.

  • Produsen mesin membutuhkan solusi yang lebih aman untuk membantu melindungi data dan model pembelajaran mesin pabrik dan produknya untuk sistemnya yang menggunakan visi komputer untuk mendeteksi cacat di beberapa bagian.

Solusi MLOps untuk skenario ini dan yang lainnya dapat menggunakan ruang kerja Azure Pembelajaran Mesin, Azure Blob Storage, Azure Kubernetes Service, Container Registry, dan layanan Azure lainnya.

Anda dapat menggunakan semua atau bagian dari contoh ini untuk skenario serupa yang memiliki lingkungan MLOps yang disebarkan di Azure dan menggunakan kemampuan keamanan Azure untuk membantu melindungi sumber daya yang relevan. Pelanggan asli untuk solusi ini berada di industri telekomunikasi.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang meningkatkan kualitas beban kerja saat diterapkan. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keamanan

Keamanan memberikan lebih banyak jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Pertimbangkan cara membantu mengamankan solusi MLOps Anda yang dimulai dengan desain arsitektur. Lingkungan pengembangan mungkin tidak memerlukan keamanan yang signifikan, tetapi penting di lingkungan penahapan dan produksi.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Mengonfigurasi Virtual Network gratis, tetapi ada biaya untuk layanan lain yang mungkin diperlukan skenario Anda, seperti tautan privat, zona DNS, dan peering jaringan virtual. Tabel berikut menjelaskan biaya untuk layanan tersebut dan lainnya yang mungkin diperlukan.

Layanan Azure Harga
Virtual Network Gratis.
Private Link Bayar hanya untuk jam sumber daya titik akhir privat dan data yang diproses melalui titik akhir privat Anda.
Azure DNS, zona privat Penagihan didasarkan pada jumlah zona DNS yang dihosting di Azure dan jumlah kueri DNS yang diterima.
Virtual Network peering Lalu lintas masuk dan keluar dibebankan di kedua ujung jaringan yang di-peering.
VPN Gateway Biaya didasarkan pada jumlah waktu gateway disediakan dan tersedia.
ExpressRoute Biaya adalah untuk Gateway ExpressRoute dan ExpressRoute.
Azure Bastion Penagihan melibatkan kombinasi harga per jam yang didasarkan pada SKU, unit skala, dan tarif transfer data.

Keunggulan operasional

Keunggulan operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Gambaran umum pilar keunggulan operasional.

Untuk menyederhanakan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), praktik terbaiknya adalah menggunakan alat dan layanan untuk infrastruktur sebagai kode (IaC), seperti templat Terraform atau Azure Resource Manager, Azure DevOps, dan Azure Pipelines.

Menyebarkan skenario ini

Bagian berikut menjelaskan cara menyebarkan, mengakses, dan membantu mengamankan sumber daya dalam skenario contoh ini.

Virtual Network

Langkah pertama dalam membantu mengamankan lingkungan MLOps adalah membantu melindungi ruang kerja Azure Pembelajaran Mesin dan sumber daya terkait. Metode perlindungan yang efektif adalah menggunakan Virtual Network. Virtual Network adalah blok bangunan dasar untuk jaringan privat Anda di Azure. Virtual Network memungkinkan banyak jenis sumber daya Azure berkomunikasi dengan lebih aman satu sama lain, internet, dan jaringan lokal.

Menempatkan ruang kerja Azure Pembelajaran Mesin dan sumber daya terkait ke dalam jaringan virtual membantu memastikan bahwa komponen dapat berkomunikasi satu sama lain tanpa mengeksposnya ke internet publik. Melakukannya mengurangi permukaan serangan mereka dan membantu mencegah penyelundupan data.

Cuplikan Terraform berikut menunjukkan cara membuat kluster komputasi untuk Azure Pembelajaran Mesin, melampirkannya ke ruang kerja, dan memasukkannya ke subnet jaringan virtual.

resource "azurerm_machine_learning_compute_cluster" "compute_cluster" {
  name                          = "my_compute_cluster"
  location                      = "eastasia"
  vm_priority                   = "LowPriority"
  vm_size                       = "Standard_NC6s_v3"
  machine_learning_workspace_id = azurerm_machine_learning_workspace.my_workspace.id
  subnet_resource_id            = azurerm_subnet.compute_subnet.id
  ssh_public_access_enabled     = false
  scale_settings {
    min_node_count                       = 0
    max_node_count                       = 3
    scale_down_nodes_after_idle_duration = "PT30S"
  }
  identity {
    type = "SystemAssigned"
  }
}

Private Link memungkinkan akses melalui titik akhir privat di jaringan virtual Anda ke opsi platform as a service (PaaS) Azure, seperti ruang kerja Azure Pembelajaran Mesin dan Azure Storage, dan ke layanan milik pelanggan dan milik mitra yang dihosting Azure. Titik akhir privat adalah antarmuka jaringan yang hanya terhubung ke sumber daya tertentu, sehingga membantu melindungi dari penyelundupan data.

Dalam contoh skenario ini, ada empat titik akhir privat yang terkait dengan opsi Azure PaaS dan dikelola oleh subnet di Azure Pembelajaran Mesin jaringan virtual, seperti yang ditunjukkan dalam diagram arsitektur. Oleh karena itu, layanan ini hanya dapat diakses oleh sumber daya dalam jaringan virtual yang sama, Azure Pembelajaran Mesin jaringan virtual. Layanan tersebut adalah:

  • Ruang kerja Azure Machine Learning
  • Azure Blob Storage
  • Azure Container Registry
  • Azure Key Vault

Cuplikan Terraform berikut menunjukkan cara menggunakan titik akhir privat untuk menautkan ke ruang kerja Azure Pembelajaran Mesin, yang lebih dilindungi oleh jaringan virtual sebagai hasilnya. Cuplikan ini juga memperlihatkan penggunaan zona DNS privat, yang dijelaskan di zona DNS Privat Azure.

resource "azurerm_machine_learning_workspace" "aml_ws" {
  name                    = "my_aml_workspace"
  friendly_name           = "my_aml_workspace"
  location                = "eastasia"
  resource_group_name     = "my_resource_group"
  application_insights_id = azurerm_application_insights.my_ai.id
  key_vault_id            = azurerm_key_vault.my_kv.id
  storage_account_id      = azurerm_storage_account.my_sa.id
  container_registry_id   = azurerm_container_registry.my_acr_aml.id

  identity {
    type = "SystemAssigned"
  }
}

# Configure private DNS zones

resource "azurerm_private_dns_zone" "ws_zone_api" {
  name                = "privatelink.api.azureml.ms"
  resource_group_name = var.RESOURCE_GROUP
}

resource "azurerm_private_dns_zone" "ws_zone_notebooks" {
  name                = "privatelink.notebooks.azure.net"
  resource_group_name = var.RESOURCE_GROUP
}

# Link DNS zones to the virtual network

resource "azurerm_private_dns_zone_virtual_network_link" "ws_zone_api_link" {
  name                  = "ws_zone_link_api"
  resource_group_name   = "my_resource_group"
  private_dns_zone_name = azurerm_private_dns_zone.ws_zone_api.name
  virtual_network_id    = azurerm_virtual_network.aml_vnet.id
}

resource "azurerm_private_dns_zone_virtual_network_link" "ws_zone_notebooks_link" {
  name                  = "ws_zone_link_notebooks"
  resource_group_name   = "my_resource_group"
  private_dns_zone_name = azurerm_private_dns_zone.ws_zone_notebooks.name
  virtual_network_id    = azurerm_virtual_network.aml_vnet.id
}

# Configure private endpoints

resource "azurerm_private_endpoint" "ws_pe" {
  name                = "my_aml_ws_pe"
  location            = "eastasia"
  resource_group_name = "my_resource_group"
  subnet_id           = azurerm_subnet.my_subnet.id

  private_service_connection {
    name                           = "my_aml_ws_psc"
    private_connection_resource_id = azurerm_machine_learning_workspace.aml_ws.id
    subresource_names              = ["amlworkspace"]
    is_manual_connection           = false
  }

  private_dns_zone_group {
    name                 = "private-dns-zone-group-ws"
    private_dns_zone_ids = [azurerm_private_dns_zone.ws_zone_api.id, azurerm_private_dns_zone.ws_zone_notebooks.id]
  }

  # Add the private link after configuring the workspace
  depends_on = [azurerm_machine_learning_compute_instance.compute_instance, azurerm_machine_learning_compute_cluster.compute_cluster]
}

Kode sebelumnya untuk azurerm_machine_learning_workspace akan menggunakan platform API v2 secara default. Jika Anda masih ingin menggunakan API v1 atau memiliki kebijakan perusahaan yang melarang pengiriman komunikasi melalui jaringan publik, Anda dapat mengaktifkan v1_legacy_mode_enabled parameter, seperti yang ditunjukkan dalam cuplikan kode berikut. Saat diaktifkan, parameter ini menonaktifkan API v2 untuk ruang kerja Anda.

resource "azurerm_machine_learning_workspace" "aml_ws" {
  ...
  public_network_access_enabled = false
  v1_legacy_mode_enabled  = true
}

Zona Azure Private DNS

Azure DNS menyediakan layanan DNS yang andal dan lebih aman untuk mengelola dan mengatasi nama domain di jaringan virtual tanpa perlu menambahkan solusi DNS kustom. Dengan menggunakan zona DNS privat, Anda bisa menggunakan nama domain kustom daripada nama yang disediakan oleh Azure. Resolusi DNS terhadap zona DNS privat hanya berfungsi dari jaringan virtual yang ditautkan ke zona DNS tersebut.

Solusi sampel ini menggunakan titik akhir privat untuk ruang kerja Azure Pembelajaran Mesin dan untuk sumber daya terkait seperti Azure Storage, Azure Key Vault, atau Container Registry. Oleh karena itu, Anda harus mengonfigurasi pengaturan DNS Anda untuk menyelesaikan alamat IP titik akhir privat dari nama domain yang sepenuhnya memenuhi syarat (FQDN) dari string koneksi.

Anda dapat menautkan zona DNS privat ke jaringan virtual untuk mengatasi domain tertentu.

Cuplikan Terraform di Private Link dan Azure Private Endpoint membuat dua zona DNS privat dengan menggunakan nama zona yang direkomendasikan dalam konfigurasi zona DNS layanan Azure:

  • privatelink.api.azureml.ms
  • privatelink.notebooks.azure.net

Virtual Network peering

Peering jaringan virtual memungkinkan akses komputer virtual jump-host (VM) atau VM agen yang dihost sendiri di jaringan virtual Azure Bastion ke sumber daya di jaringan virtual Azure Pembelajaran Mesin. Untuk tujuan konektivitas, dua jaringan virtual berfungsi sebagai satu. Lalu lintas antara VM dan sumber daya Azure Pembelajaran Mesin di jaringan virtual yang di-peering menggunakan infrastruktur backbone Azure. Lalu lintas antara jaringan virtual dirutekan melalui jaringan privat Azure.

Cuplikan Terraform berikut menyiapkan peering jaringan virtual antara jaringan virtual Azure Pembelajaran Mesin dan jaringan virtual Azure Bastion.

# Virtual network peering for AML VNET and BASTION VNET
resource "azurerm_virtual_network_peering" "vp_amlvnet_basvnet" {
  name                      = "vp_amlvnet_basvnet"
  resource_group_name       = "my_resource_group"
  virtual_network_name      = azurerm_virtual_network.amlvnet.name
  remote_virtual_network_id = azurerm_virtual_network.basvnet.id
  allow_virtual_network_access = true
  allow_forwarded_traffic      = true
}

resource "azurerm_virtual_network_peering" "vp_basvnet_amlvnet" {
  name                      = "vp_basvnet_amlvnet"
  resource_group_name       = "my_resource_group"
  virtual_network_name      = azurerm_virtual_network.basvnet.name
  remote_virtual_network_id = azurerm_virtual_network.amlvnet.id
  allow_virtual_network_access = true
  allow_forwarded_traffic      = true
}

Mengakses sumber daya di jaringan virtual

Untuk mengakses ruang kerja Azure Pembelajaran Mesin di jaringan virtual, seperti Azure Pembelajaran Mesin jaringan virtual dalam skenario ini, gunakan salah satu metode berikut:

  • Azure VPN Gateway
  • Azure ExpressRoute
  • Azure Bastion dan VM jump host

Untuk informasi selengkapnya, lihat Menyambungkan ke ruang kerja.

Jalankan Azure Pipelines yang mengakses sumber daya di jaringan virtual

Azure Pipelines secara otomatis membangun dan menguji proyek kode agar membuatnya tersedia untuk orang lain. Azure Pipelines menggabungkan CI/CD untuk menguji dan membangun kode Anda dan mengirimkannya ke target apa pun.

Agen yang dihosting Azure vs. agen yang dihost sendiri

Solusi MLOps dalam skenario contoh ini terdiri dari dua alur, yang dapat memicu alur Azure Pembelajaran Mesin dan mengakses sumber daya terkait. Karena ruang kerja Azure Pembelajaran Mesin dan sumber daya terkait berada dalam jaringan virtual, skenario ini harus menyediakan cara bagi agen Azure Pipelines untuk mengaksesnya. Agen adalah infrastruktur komputasi dengan perangkat lunak agen terinstal yang menjalankan pekerjaan Azure Pipelines satu per satu. Ada beberapa cara untuk menerapkan akses:

  • Gunakan agen yang dihost sendiri di jaringan virtual yang sama atau jaringan virtual peering, seperti yang ditunjukkan dalam diagram arsitektur.

  • Gunakan agen yang dihosting Azure dan tambahkan rentang alamat IP mereka ke daftar yang diizinkan di pengaturan firewall layanan Azure yang ditargetkan.

  • Gunakan agen yang dihosting Azure (sebagai klien VPN) dan VPN Gateway.

Masing-masing pilihan ini memiliki pro dan kontra. Tabel berikut membandingkan agen yang dihosting Azure dengan agen yang dihost sendiri.

Agen yang dihosting Azure Agen yang Dihost sendiri
Biaya Mulai gratis untuk satu pekerjaan paralel dengan 1.800 menit per bulan dan biaya untuk setiap pekerjaan paralel CI/CD yang dihosting Azure. Mulai gratis untuk satu pekerjaan paralel dengan menit tanpa batas per bulan dan biaya untuk setiap pekerjaan paralel CI/CD tambahan yang dihost sendiri dengan menit tak terbatas. Opsi ini menawarkan pekerjaan paralel yang lebih murah.
Pemeliharaan Diurus untuk Anda oleh Microsoft. Dikelola oleh Anda dengan kontrol lebih besar atas penginstalan perangkat lunak yang Anda suka.
Waktu Build Lebih banyak memakan waktu karena benar-benar menyegarkan setiap kali Anda memulai build, dan Anda selalu membangun dari awal. Menghemat waktu karena menyimpan semua file dan cache Anda.

Catatan

Untuk harga saat ini, lihat Harga untuk Azure DevOps.

Berdasarkan perbandingan dalam tabel dan pertimbangan keamanan dan kompleksitas, skenario contoh ini menggunakan agen yang dihost sendiri untuk Azure Pipelines untuk memicu alur Azure Pembelajaran Mesin di jaringan virtual.

Untuk mengonfigurasi agen yang dihost sendiri, Anda memiliki opsi berikut:

  • Instal agen di Azure Virtual Machines.

  • Instal agen pada Azure Virtual Machine Scale Set, yang dapat diskalakan secara otomatis untuk memenuhi permintaan.

  • Instal agen pada kontainer Docker. Opsi ini tidak layak, karena skenario ini mungkin memerlukan menjalankan kontainer Docker dalam agen untuk pelatihan model pembelajaran mesin.

Contoh kode berikut menyediakan dua agen yang dihost sendiri dengan membuat Azure VM dan ekstensi:

resource "azurerm_linux_virtual_machine" "agent" {
  ...
}

resource "azurerm_virtual_machine_extension" "update-vm" {
  count                = 2
  name                 = "update-vm${format("%02d", count.index)}"
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.1"
  virtual_machine_id   = element(azurerm_linux_virtual_machine.agent.*.id, count.index)

  settings = <<SETTINGS
    {
        "script": "${base64encode(templatefile("../scripts/terraform/agent_init.sh", {
          AGENT_USERNAME      = "${var.AGENT_USERNAME}",
          ADO_PAT             = "${var.ADO_PAT}",
          ADO_ORG_SERVICE_URL = "${var.ADO_ORG_SERVICE_URL}",
          AGENT_POOL          = "${var.AGENT_POOL}"
        }))}"
    }
SETTINGS
}

Seperti yang ditunjukkan dalam blok kode sebelumnya, skrip Terraform memanggil agent_init.sh, yang ditunjukkan dalam blok kode berikut, untuk menginstal perangkat lunak agen dan pustaka yang diperlukan pada agen VM sesuai persyaratan pelanggan.

#!/bin/sh
# Install other required libraries 
...

# Creates directory and downloads Azure DevOps agent installation files
# Find more agent versions at https://github.com/microsoft/azure-pipelines-agent/releases
AGENT_VERSION="3.240.1"
sudo mkdir /myagent 
cd /myagent
sudo wget https://vstsagentpackage.azureedge.net/agent/${AGENT_VERSION}/vsts-agent-linux-x64-${AGENT_VERSION}.tar.gz
sudo tar zxvf ./vsts-agent-linux-x64-${AGENT_VERSION}.tar.gz
sudo chmod -R 777 /myagent

# Unattended installation
sudo runuser -l ${AGENT_USERNAME} -c '/myagent/config.sh --unattended  --url ${ADO_ORG_SERVICE_URL} --auth pat --token ${ADO_PAT} --pool ${AGENT_POOL}'

cd /myagent
#Configure as a service
sudo ./svc.sh install ${AGENT_USERNAME}
#Start service
sudo ./svc.sh start

Menggunakan Container Registry di jaringan virtual

Ada beberapa prasyarat untuk mengamankan ruang kerja Azure Pembelajaran Mesin di jaringan virtual. Untuk informasi selengkapnya, lihat Prasyarat. Container Registry adalah layanan yang diperlukan saat Anda menggunakan ruang kerja Azure Pembelajaran Mesin untuk melatih dan menyebarkan model.

Dalam contoh skenario ini, untuk memastikan agen yang dihost sendiri dapat mengakses registri kontainer di jaringan virtual, kami menggunakan peering jaringan virtual dan menambahkan tautan jaringan virtual untuk menautkan zona DNS privat, privatelink.azurecr.io, ke jaringan virtual Azure Bastion. Cuplikan Terraform berikut menunjukkan implementasinya.

# Azure Machine Learning Container Registry is for private access 
# by the Azure Machine Learning workspace
resource "azurerm_container_registry" "acr" {
  name                     = "my_acr"
  resource_group_name      = "my_resource_group"
  location                 = "eastasia"
  sku                      = "Premium"
  admin_enabled            = true
  public_network_access_enabled = false
}

resource "azurerm_private_dns_zone" "acr_zone" {
  name                     = "privatelink.azurecr.io"
  resource_group_name      = "my_resource_group"
}

resource "azurerm_private_dns_zone_virtual_network_link" "acr_zone_link" {
  name                  = "link_acr"
  resource_group_name   = "my_resource_group"
  private_dns_zone_name = azurerm_private_dns_zone.acr_zone.name
  virtual_network_id    = azurerm_virtual_network.amlvnet.id
}

resource "azurerm_private_endpoint" "acr_ep" {
  name                = "acr_pe"
  resource_group_name = "my_resource_group"
  location            = "eastasia"
  subnet_id           = azurerm_subnet.aml_subnet.id

  private_service_connection {
    name                           = "acr_psc"
    private_connection_resource_id = azurerm_container_registry.acr.id
    subresource_names              = ["registry"]
    is_manual_connection           = false
  }

  private_dns_zone_group {
    name                 = "private-dns-zone-group-app-acr"
    private_dns_zone_ids = [azurerm_private_dns_zone.acr_zone.id]
  }
}

Contoh skenario ini juga memastikan bahwa registri kontainer memiliki peran Kontributor untuk identitas terkelola yang ditetapkan sistem dari ruang kerja Azure Pembelajaran Mesin.

Menggunakan kluster atau instans komputasi di jaringan virtual

Kluster atau instans komputasi Azure Pembelajaran Mesin di jaringan virtual memerlukan kelompok keamanan jaringan (NSG) dengan beberapa aturan khusus untuk subnetnya. Untuk daftar aturan tersebut, lihat Batasan.

Perhatikan juga bahwa untuk kluster atau instans komputasi, sekarang dimungkinkan untuk menghapus alamat IP publik, yang membantu memberikan perlindungan yang lebih baik untuk sumber daya komputasi dalam solusi MLOps. Untuk informasi selengkapnya, lihat Tidak ada IP publik untuk instans komputasi.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya