Düzenle

Aracılığıyla paylaş


Azure ağ güvenliği ile MLOps çözümlerinin güvenliğini sağlama

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

İlk olarak 2015'te Makine Öğrenmesi Sistemlerinde Gizli Teknik Borç bölümünde vurgulanan Machine Learning DevOps (MLOps) hızla büyüyor. MLOps pazarının 2025'e kadar 4 milyar abd dolarına ulaşması bekleniyor. Bu arada, MLOps çözümlerinin güvenliğini sağlamak için çalışmak daha önemli hale geliyor.

Bu makalede Azure Sanal Ağ, ağ eşleme, Azure Özel Bağlantı ve Azure DNS gibi Azure ağ güvenlik özelliklerini kullanarak MLOps çözümlerinin korunmasına nasıl yardımcı olunması açıklanır. Ayrıca şunların nasıl kullanılacağını da açıklar:

  • Sanal ağdaki kaynaklara erişmek için Azure Pipelines
  • Bir sanal ağdaki Azure Container Registry ve Azure Machine Learning işlem örneklerinin ve kümelerinin gerekli yapılandırmaları.

Son olarak, bu makalede ağ güvenlik hizmetlerini kullanmanın maliyetleri açıklanmaktadır.

Mimari

MlOps işlemindeki verilerin hazırlanmasından modeli izlemeye kadar olan aşamaların diyagramı.

Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

Mimari diyagramında örnek bir MLOps çözümü gösterilir.

  • AML VNET adlı sanal ağ, Azure Machine Learning çalışma alanının ve ilişkili kaynaklarının korunmasına yardımcı olur.

  • Atlama konağı, Azure Bastion ve şirket içinde barındırılan aracılar BASTION VNET adlı başka bir sanal ağa aittir. Bu düzenleme, Azure Machine Learning sanal ağı içindeki kaynaklara erişim gerektiren başka bir çözüme sahip olmanın benzetimini yapıyor.

  • Sanal ağ eşlemesi ve özel DNS bölgelerinin desteğiyle Azure Pipelines, kendi kendine konak aracılarında yürütebilir ve makine öğrenmesi modellerini eğitmek, değerlendirmek ve kaydetmek için Azure Machine Learning çalışma alanında yayımlanan Azure Machine Learning işlem hatlarını tetikleyebilir.

  • Son olarak model, Azure Machine Learning işlem veya Azure Kubernetes Service kümeleri tarafından desteklenen çevrimiçi uç noktalara veya toplu iş uç noktalarına dağıtılır.

Bileşenler

Örnek MLOps çözümü şu bileşenlerden oluşur:

Bu örnek senaryo, MLOps çözümünü korumaya yardımcı olmak için aşağıdaki hizmetleri de kullanır:

Senaryo ayrıntıları

MLOps, Makine Öğrenmesi, DevOps ve veri mühendisliğinin kesişiminde makine öğrenmesi modellerini güvenilir ve verimli bir şekilde üretimde dağıtmayı ve korumayı hedefleyen bir dizi uygulamadır.

Aşağıdaki diyagramda basitleştirilmiş bir MLOps işlem modeli gösterilmektedir. Bu model, veri hazırlama, model eğitimi, model değerlendirmesi, model kaydı, model dağıtımı ve izlemeyi otomatik hale getiren bir çözüm sunar.

MlOps işlemindeki verilerin hazırlanmasından modeli izlemeye kadar olan aşamaların diyagramı.

BIR MLOps çözümü uyguladığınızda şu kaynakların güvenliğini sağlamaya yardımcı olmak isteyebilirsiniz:

  • DevOps işlem hatları
  • Makine öğrenmesi eğitim verileri
  • Makine öğrenmesi işlem hatları
  • Makine öğrenmesi modelleri

Kaynakların güvenliğini sağlamaya yardımcı olmak için şu yöntemleri göz önünde bulundurun:

  • Kimlik doğrulaması ve yetkilendirme

    • Etkileşimli kimlik doğrulaması yerine hizmet sorumlularını veya yönetilen kimlikleri kullanın.
    • Kullanıcının kaynaklara erişiminin kapsamını tanımlamak için rol tabanlı erişim denetimini kullanın.
  • Ağ güvenliği

    • Saldırı yüzeyini ve veri sızdırma olasılığını azaltmak için ortamı genel İnternet'ten kısmen veya tamamen yalıtmak için Sanal Ağ kullanın.
      • Azure Machine Learning çalışma alanında Hala Azure Machine Learning CLI v1 ve Azure Machine Learning Python SDK v1 (v1 API gibi) kullanıyorsanız çalışma alanı veya işlem kaynaklarındaki oluşturma, okuma, güncelleştirme ve silme (CRUD) işlemleri dışında her şey için ağ yalıtımı sağlamak üzere çalışma alanına özel bir uç nokta ekleyin.
      • Bir Azure Machine Learning çalışma alanının yeni özelliklerinden yararlanmak için Azure Machine Learning CLI v2 ve Azure Machine Learning Python SDK v2'yi (v2 API gibi) kullanın; çalışma alanınızda özel uç nokta etkinleştirildiğinde aynı ağ yalıtımı düzeyi sağlanmamaktadır. Ancak sanal ağ, eğitim verilerinin ve makine öğrenmesi modellerinin korunmasına yardımcı olmaya devam edecektir. V2 API'yi kurumsal çözümlerinizde benimsemeden önce değerlendirmenizi öneririz. Daha fazla bilgi için bkz . Azure Resource Manager'da yeni API platformu nedir?
  • Veri şifrelemesi

  • İlke ve izleme

    • İlkeleri zorunlu kılmak için Azure İlkesi ve Bulut için Microsoft Defender kullanın.
    • Çeşitli kaynaklardan verileri (ölçümler ve günlükler gibi) toplamak ve analiz, görselleştirme ve uyarı için ortak bir veri platformunda toplamak için Azure İzleyici'yi kullanın.

Azure Machine Learning çalışma alanı, Azure Machine Learning için en üst düzey kaynaktır ve MLOps çözümünün temel bileşenidir. Çalışma alanı, Azure Machine Learning kullanırken oluşturduğunuz tüm yapıtlarla çalışmak için merkezi bir yer sağlar.

Yeni bir çalışma alanı oluşturduğunuzda, çalışma alanı tarafından kullanılan aşağıdaki Azure kaynaklarını otomatik olarak oluşturur:

  • Azure Application Insights
  • Azure Container Registry
  • Azure Key Vault
  • Azure Depolama Hesabı

Olası kullanım örnekleri

Bu çözüm, müşterinin makine öğrenmesi modellerini daha güvenli bir ortamda dağıtmak ve bakımını yapmak için MLOps çözümü kullandığı senaryolara uyar. Müşteriler üretim, telekomünikasyon, perakende, sağlık vb. gibi çeşitli sektörlerden gelebilir. Örneğin:

  • Telekomünikasyon operatörü, perakende mağazaları için video izleme sisteminde müşterinin resimlerini, verilerini ve makine öğrenmesi modellerini korumaya yardımcı olur.

  • Bir altyapı üreticisinin, fabrikalarının ve ürünlerinin verilerini ve makine öğrenmesi modellerini, parçalardaki hataları algılamak için görüntü işleme kullanan sistemi için korumaya yardımcı olacak daha güvenli bir çözüme ihtiyacı vardır.

Bu senaryolar ve diğerleri için MLOps çözümleri Azure Machine Learning çalışma alanlarını, Azure Blob Depolama, Azure Kubernetes Service'i, Container Registry'yi ve diğer Azure hizmetlerini kullanabilir.

Azure'da dağıtılan ve ilgili kaynakların korunmasına yardımcı olmak için Azure güvenlik özelliklerini kullanan bir MLOps ortamına sahip benzer senaryolar için bu örneğin tamamını veya bir bölümünü kullanabilirsiniz. Bu çözümün ilk müşterisi telekomünikasyon sektöründedir.

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, uygulandığında iş yükünün kalitesini artıran bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı daha fazla güvence sağlar. Daha fazla bilgi için bkz . Güvenlik için tasarım gözden geçirme denetim listesi.

Mimari tasarımından başlayarak MLOps çözümünüzün güvenliğini sağlamaya nasıl yardımcı olun. Geliştirme ortamlarının önemli bir güvenliğe ihtiyacı olmayabilir, ancak hazırlama ve üretim ortamlarında önemlidir.

Maliyet İyileştirmesi

Maliyet İyileştirme, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını gözden geçmektir. Daha fazla bilgi için bkz . Maliyet İyileştirme için tasarım gözden geçirme denetim listesi.

Sanal Ağ yapılandırmak ücretsizdir, ancak özel bağlantılar, DNS bölgeleri ve sanal ağ eşlemesi gibi senaryonuzun gerektirebileceği diğer hizmetler için ücret uygulanır. Aşağıdaki tabloda, söz konusu hizmetlerin ve diğer hizmetlerin gerekebilecek ücretleri açıklanmaktadır.

Azure Hizmeti Fiyatlandırma
Sanal Ağ Ücretsizdir.
Özel Bağlantı Yalnızca özel uç nokta kaynak saatleri ve özel uç noktanız aracılığıyla işlenen veriler için ödeme.
Azure DNS, özel bölge Faturalama, Azure'da barındırılan DNS bölgelerinin sayısına ve alınan DNS sorgularının sayısına bağlıdır.
Sanal Ağ eşlemesi Gelen ve giden trafik, eşlenen ağların her iki ucunda da ücretlendirilir.
VPN Gateway Ücretler, ağ geçidinin sağlandığı ve kullanılabilir olduğu süreye bağlıdır.
ExpressRoute Ücretler ExpressRoute ve ExpressRoute Ağ Geçitleri içindir.
Azure Bastion Faturalama, SKU, ölçek birimleri ve veri aktarım oranlarını temel alan saatlik fiyatlandırmanın bir birleşimini içerir.

Operasyonel Mükemmellik

Operasyonel Mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel Mükemmellik için tasarım gözden geçirme denetim listesi.

Sürekli tümleştirmeyi ve sürekli teslimi (CI/CD) kolaylaştırmak için en iyi yöntem Terraform veya Azure Resource Manager şablonları, Azure DevOps ve Azure Pipelines gibi kod olarak altyapı (IaC) için araçlar ve hizmetler kullanmaktır.

Bu senaryoyu dağıtın

Aşağıdaki bölümlerde, bu örnek senaryoda kaynakların nasıl dağıtılacağı, bunlara nasıl erişılacağı ve kaynakların güvenliğinin nasıl sağlanabilmesine yardımcı olundığı açıklanmaktadır.

Sanal Ağ

MLOps ortamının güvenliğini sağlamaya yardımcı olmak için ilk adım, Azure Machine Learning çalışma alanının ve ilişkili kaynaklarının korunmasına yardımcı olmaktır. Etkili bir koruma yöntemi Sanal Ağ kullanmaktır. Sanal Ağ, Azure'daki özel ağınız için temel yapı taşıdır. Sanal Ağ birçok Azure kaynağı türünün birbiriyle, internetle ve şirket içi ağlarla daha güvenli bir şekilde iletişim kurmasını sağlar.

Azure Machine Learning çalışma alanını ve ilişkili kaynaklarını bir sanal ağa yerleştirmek, bileşenlerin ortak İnternet'e maruz kalmadan birbirleriyle iletişim kurabilmesini sağlamaya yardımcı olur. Bunu yapmak saldırı yüzeyini azaltır ve veri sızdırmayı önlemeye yardımcı olur.

Aşağıdaki Terraform kod parçacığında Azure Machine Learning için bir işlem kümesi oluşturma, bir çalışma alanına ekleme ve sanal ağın alt ağına yerleştirme adımları gösterilmektedir.

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"
  }
}

Özel Bağlantı, sanal ağınızdaki bir özel uç nokta üzerinden Azure Machine Learning çalışma alanı ve Azure Depolama gibi hizmet olarak platform (PaaS) seçeneklerine ve Azure'da barındırılan müşteriye ve iş ortağına ait hizmetlere erişim sağlar. Özel uç nokta, yalnızca belirli kaynaklara bağlanan ve böylece veri sızdırmaya karşı korumaya yardımcı olan bir ağ arabirimidir.

Bu örnek senaryoda, mimari diyagramında gösterildiği gibi Azure PaaS seçeneklerine bağlı olan ve Azure Machine Learning sanal ağında bir alt ağ tarafından yönetilen dört özel uç nokta vardır. Bu nedenle, bu hizmetlere yalnızca aynı sanal ağ olan Azure Machine Learning sanal ağı içindeki kaynaklar erişebilir. Bu hizmetler şunlardır:

  • Azure Machine Learning çalışma alanı
  • Azure Blob Storage
  • Azure Container Registry
  • Azure Key Vault

Aşağıdaki Terraform kod parçacığında, bir Azure Machine Learning çalışma alanına bağlanmak için özel uç noktanın nasıl kullanılacağı ve bunun sonucunda sanal ağ tarafından daha fazla korunduğu gösterilmektedir. Kod parçacığı, Azure Özel DNS bölgelerinde açıklanan özel dns bölgesinin kullanımını da gösterir.

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]
}

için azurerm_machine_learning_workspace yukarıdaki kod varsayılan olarak v2 API platformunu kullanır. v1 API'sini kullanmaya devam etmek istiyorsanız veya genel ağlar üzerinden iletişim göndermeyi yasaklayan bir şirket ilkeniz varsa, aşağıdaki kod parçacığında gösterildiği gibi parametresini etkinleştirebilirsiniz v1_legacy_mode_enabled . Bu parametre etkinleştirildiğinde çalışma alanınız için v2 API'sini devre dışı bırakır.

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

Azure Özel DNS bölgeleri

Azure DNS, özel dns çözümü eklemeye gerek kalmadan sanal ağdaki etki alanı adlarını yönetmek ve çözümlemek için güvenilir, daha güvenli bir DNS hizmeti sağlar. Özel DNS bölgelerini kullanarak, Azure tarafından sağlanan adlar yerine özel etki alanı adlarını kullanabilirsiniz. Özel bir DNS bölgesine karşı DNS çözümlemesi yalnızca ona bağlı sanal ağlardan çalışır.

Bu örnek çözüm, Azure Machine Learning çalışma alanı ve Azure Depolama, Azure Key Vault veya Container Registry gibi ilişkili kaynakları için özel uç noktaları kullanır. Bu nedenle, bağlantı dizesi tam etki alanı adından (FQDN) özel uç noktaların IP adreslerini çözümlemek için DNS ayarlarınızı yapılandırmanız gerekir.

Belirli etki alanlarını çözümlemek için özel bir DNS bölgesini sanal ağa bağlayabilirsiniz.

Özel Bağlantı ve Azure Özel Uç Noktası'ndaki Terraform kod parçacığı, Azure hizmetleri DNS bölgesi yapılandırmasında önerilen bölge adlarını kullanarak iki özel DNS bölgesi oluşturur:

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

Sanal Ağ eşlemesi

Sanal ağ eşlemesi, Azure Bastion sanal ağındaki atlama konağı sanal makinesinin (VM) veya şirket içinde barındırılan aracı VM'lerin Azure Machine Learning sanal ağındaki kaynaklara erişmesini sağlar. Bağlantı amacıyla iki sanal ağ tek bir ağ olarak çalışır. Eşlenmiş sanal ağlardaki VM'ler ve Azure Machine Learning kaynakları arasındaki trafik, Azure omurga altyapısını kullanır. Sanal ağlar arasındaki trafik Azure özel ağı üzerinden yönlendirilir.

Aşağıdaki Terraform kod parçacığı, Azure Machine Learning sanal ağı ile Azure Bastion sanal ağı arasında sanal ağ eşlemesi ayarlar.

# 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
}

Sanal ağdaki kaynaklara erişme

Bu senaryoda Azure Machine Learning sanal ağı gibi bir sanal ağda Azure Machine Learning çalışma alanına erişmek için aşağıdaki yöntemlerden birini kullanın:

  • Azure VPN Gateway
  • Azure ExpressRoute
  • Azure Bastion ve atlama konağı VM'si

Daha fazla bilgi için bkz . Çalışma alanına bağlanma.

Sanal ağdaki kaynaklara erişen Azure Pipelines'ı çalıştırma

Azure Pipelines, kod projelerini başkalarının kullanımına açmak için otomatik olarak derler ve test eder. Azure Pipelines, kodunuzu test etmek, derlemek ve herhangi bir hedefe göndermek için CI/CD'yi birleştirir.

Azure tarafından barındırılan aracılar ile şirket içinde barındırılan aracılar karşılaştırması

Bu örnek senaryodaki MLOps çözümü, Azure Machine Learning işlem hatlarını tetikleyebilen ve ilişkili kaynaklara erişebilen iki işlem hattından oluşur. Azure Machine Learning çalışma alanı ve ilişkili kaynağı bir sanal ağda olduğundan, bu senaryo bir Azure Pipelines aracısının bunlara erişmesi için bir yol sağlamalıdır. Aracı, Azure Pipelines işlerini birer birer çalıştıran yüklü aracı yazılımıyla altyapıyı hesaplamadır. Erişimi uygulamanın birden çok yolu vardır:

Bu seçeneklerin her birinin artıları ve dezavantajları vardır. Aşağıdaki tabloda Azure tarafından barındırılan aracılar, şirket içinde barındırılan aracılarla karşılaştırlenmektedir.

Azure'da barındırılan Aracı Şirket içinde barındırılan Aracı
Maliyet Ayda 1.800 dakika ve Azure tarafından barındırılan her CI/CD paralel işi için bir ücretle tek bir paralel iş için ücretsiz başlayın. Aylık sınırsız dakika ve sınırsız dakika ile her ek şirket içinde barındırılan CI/CD paralel işi için bir ücret ile tek bir paralel iş için ücretsiz başlayın. Bu seçenek daha ucuz paralel işler sunar.
Bakım Microsoft tarafından sizin için ilgilenildi. Beğendiğiniz yazılımı yükleme konusunda daha fazla denetim sahibi olarak sizin tarafınızdan korunur.
Derleme Zamanı Daha fazla zaman alır çünkü her derlemeye başladığınızda tamamen yenilenir ve her zaman sıfırdan derleme yaparsınız. Tüm dosyalarınızı ve önbelleklerinizi sakladığından zaman kazandırır.

Not

Geçerli fiyatlandırma için bkz . Azure DevOps fiyatlandırması.

Tablodaki karşılaştırmalara ve güvenlik ve karmaşıklık açısından dikkat edilmesi gerekenlere bağlı olarak, bu örnek senaryoda azure ağdaki Azure Machine Learning işlem hatlarını tetikleme amacıyla Azure Pipelines için şirket içinde barındırılan bir aracı kullanılır.

Şirket içinde barındırılan aracıyı yapılandırmak için aşağıdaki seçeneklere sahipsiniz:

  • Aracıyı Azure Sanal Makineler'a yükleyin.

  • Aracıları talebi karşılayacak şekilde otomatik olarak ölçeklendirilebilen bir Azure Sanal Makine Ölçek Kümesine yükleyin.

  • Aracıyı bir Docker kapsayıcısı üzerine yükleyin. Bu senaryo, makine öğrenmesi modeli eğitimi için aracıda Docker kapsayıcısını çalıştırmayı gerektirebileceğinden bu seçenek uygun değildir.

Aşağıdaki örnek kod, Azure VM'leri ve uzantıları oluşturarak şirket içinde barındırılan iki aracı sağlar:

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
}

Önceki kod bloğunda gösterildiği gibi Terraform betiği, müşterinin gereksinimlerine göre aracı yazılımını ve gerekli kitaplıkları aracı VM'sine yüklemek için aşağıdaki kod bloğunda gösterilen agent_init.sh çağırır.

#!/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

Sanal ağda Container Registry kullanma

Sanal ağda Azure Machine Learning çalışma alanının güvenliğini sağlamak için bazı önkoşullar vardır. Daha fazla bilgi için bkz. Önkoşullar. Container Registry, modelleri eğitmek ve dağıtmak için bir Azure Machine Learning çalışma alanı kullandığınızda gerekli bir hizmettir.

Bu örnek senaryoda, şirket içinde barındırılan aracının sanal ağdaki kapsayıcı kayıt defterine erişebildiğinden emin olmak için, sanal ağ eşlemesini kullanır ve özel DNS bölgesi privatelink.azurecr.ioolan öğesini Azure Bastion sanal ağına bağlamak için bir sanal ağ bağlantısı ekleriz. Aşağıdaki Terraform kod parçacığı uygulamayı gösterir.

# 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]
  }
}

Bu örnek senaryo ayrıca kapsayıcı kayıt defterinin Azure Machine Learning çalışma alanının sistem tarafından atanan yönetilen kimliği için Katkıda Bulunan rolüne sahip olmasını sağlar.

Sanal ağda işlem kümesi veya örneği kullanma

Bir sanal ağdaki Azure Machine Learning işlem kümesi veya örneği, alt ağı için belirli kurallar içeren bir ağ güvenlik grubu (NSG) gerektirir. Bu kuralların listesi için bkz . Sınırlamalar.

Ayrıca, işlem kümesi veya örneği için genel IP adresini kaldırmanın artık mümkün olduğunu ve bu da MLOps çözümündeki işlem kaynakları için daha iyi koruma sağlamaya yardımcı olduğunu unutmayın. Daha fazla bilgi için bkz . İşlem örnekleri için genel IP yok.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Diğer katkıda bulunanlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar