Szerkesztés

Megosztás a következőn keresztül:


MLOps-megoldások biztonságossá tétele az Azure hálózati biztonságával

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

A Machine Learning DevOps (MLOps) 2015-ben először kiemelte a Rejtett technikai adósságok a Machine Learning Systemsben , gyorsan növekszik. Az MLOps piaca várhatóan 2025-ig eléri a 4 milliárd dollárt. Addig is egyre fontosabbá válik az MLOps-megoldások védelme.

Ez a cikk azt ismerteti, hogyan védheti meg az MLOps-megoldásokat olyan Azure-beli hálózati biztonsági képességek használatával, mint az Azure Virtual Network, a hálózati társviszony-létesítés, az Azure Private Link és az Azure DNS. Emellett a következőket is bemutatja:

  • Azure Pipelines a virtuális hálózat erőforrásainak eléréséhez
  • Az Azure Container Registry és az Azure Machine Learning számítási példányainak és fürtjeinek szükséges konfigurációi egy virtuális hálózaton.

Végül ez a cikk a hálózati biztonsági szolgáltatások használatának költségeit ismerteti.

Architektúra

Az MLOps-folyamat szakaszainak diagramja az adatok előkészítésétől a modell monitorozásán át.

Töltse le az architektúra Visio-fájlját.

Adatfolyam

Az architektúradiagram egy MLOps-mintamegoldást mutat be.

  • Az AML VNET nevű virtuális hálózat segít megvédeni az Azure Machine Learning-munkaterületet és a hozzá tartozó erőforrásokat.

  • A jump host, az Azure Bastion és a saját üzemeltetésű ügynökök egy másik, BASTION VNET nevű virtuális hálózathoz tartoznak. Ez a megoldás egy másik megoldást szimulál, amely hozzáférést igényel az Azure Machine Learning virtuális hálózat erőforrásaihoz.

  • A virtuális hálózatok közötti társviszony-létesítés és a privát DNS-zónák támogatásával az Azure Pipelines önkiszolgáló ügynökökön hajthatja végre és aktiválhatja az Azure Machine Learning-munkaterületen közzétett Azure Machine Learning-folyamatokat a gépi tanulási modellek betanításához, kiértékeléséhez és regisztrálásához.

  • Végül a modell az Azure Machine Learning compute vagy az Azure Kubernetes Service-fürtök által támogatott online végpontokon vagy kötegvégpontokon van üzembe helyezve.

Összetevők

Az MLOps-mintamegoldás a következő összetevőkből áll:

Ez a példaforgatókönyv a következő szolgáltatásokat is használja az MLOps-megoldás védelméhez:

Forgatókönyv részletei

Az MLOps a Machine Learning, a DevOps és az adatmérnökség metszetében alkalmazott eljárások készlete, amelynek célja, hogy a gépi tanulási modelleket megbízhatóan és hatékonyan üzembe helyezze és karbantartsa az éles környezetben.

Az alábbi ábrán egy egyszerűsített MLOps-folyamatmodell látható. Ez a modell olyan megoldást kínál, amely automatizálja az adatok előkészítését, a modell betanítását, a modell kiértékelését, a modellregisztrációt, a modell üzembe helyezését és a monitorozást.

Az MLOps-folyamat szakaszainak diagramja az adatok előkészítésétől a modell monitorozásán át.

Az MLOps-megoldás implementálásakor érdemes lehet az alábbi erőforrások védelmét biztosítani:

  • DevOps-folyamatok
  • Gépi tanulási betanítási adatok
  • Machine Learning-folyamatok
  • Gépi tanulási modellek

Az erőforrások biztonságossá tételéhez vegye figyelembe az alábbi módszereket:

  • Hitelesítés és engedélyezés

    • Az interaktív hitelesítés helyett használjon szolgáltatásneveket vagy felügyelt identitásokat .
    • Szerepköralapú hozzáférés-vezérléssel meghatározhatja a felhasználó erőforrásokhoz való hozzáférésének hatókörét.
  • Hálózati biztonság

    • A virtuális hálózat használatával részlegesen vagy teljesen elkülönítheti a környezetet a nyilvános internettől a támadási felület és az adatkiszivárgás lehetőségének csökkentése érdekében.
      • Az Azure Machine Learning-munkaterületen, ha továbbra is az Azure Machine Learning CLI v1-et és az Azure Machine Learning Python SDK v1-et (például v1 API-t) használja, adjon hozzá egy privát végpontot a munkaterülethez, hogy hálózati elkülönítést biztosítson a munkaterületen vagy számítási erőforrásokon végzett létrehozási, olvasási, frissítési és törlési (CRUD) műveletek kivételével.
      • Az Azure Machine Learning-munkaterület új funkcióinak kihasználásához használja az Azure Machine Learning CLI v2-t és az Azure Machine Learning Python SDK v2-t (például v2 API-t), amelyben a privát végpont engedélyezése a munkaterületen nem biztosítja a hálózati elkülönítés azonos szintjét. A virtuális hálózat azonban továbbra is segít megvédeni a betanítási adatokat és a gépi tanulási modelleket. Javasoljuk, hogy értékelje ki a v2 API-t, mielőtt bevezeti azt a vállalati megoldásokban. További információ: Mi az új API-platform az Azure Resource Managerben?
  • Adattitkosítás

  • Szabályzat és figyelés

    • Szabályzatok kikényszerítéséhez használja az Azure Policyt és a Felhőhöz készült Microsoft Defender.
    • Az Azure Monitor használatával különböző forrásokból származó adatokat (például metrikákat és naplókat) gyűjthet és összesíthet egy közös adatplatformon elemzés, vizualizáció és riasztás céljából.

Az Azure Machine Learning-munkaterület az Azure Machine Learning legfelső szintű erőforrása és az MLOps-megoldás alapvető összetevője. A munkaterület központi helyet biztosít az Azure Machine Learning használatakor létrehozott összes összetevővel való munkához.

Új munkaterület létrehozásakor automatikusan létrehozza a következő Azure-erőforrásokat, amelyeket a munkaterület használ:

  • Azure Application Insights
  • Azure Container Registry
  • Azure Key Vault
  • Azure Storage-fiók

Lehetséges használati esetek

Ez a megoldás megfelel azoknak a forgatókönyveknek, amelyekben az ügyfél MLOps-megoldást használ a gépi tanulási modellek biztonságosabb környezetben való üzembe helyezéséhez és karbantartásához. Az ügyfelek különböző iparágakból származhatnak, például a gyártásból, a távközlésből, a kiskereskedelemből, az egészségügyből stb. Példa:

  • A távközlési szolgáltató segít megvédeni az ügyfelek képeit, adatait és gépi tanulási modelljeit a kiskereskedelmi üzletek videomonitorozási rendszerében.

  • A motorgyártóknak biztonságosabb megoldásra van szükségük ahhoz, hogy megvédjék gyárai és termékei adatait és gépi tanulási modelljeit a rendszer számára, amely számítógépes látással észleli az alkatrészek hibáit.

Az ilyen forgatókönyvekhez és másokhoz készült MLOps-megoldások Azure Machine Learning-munkaterületeket, Azure Blob Storage-t, Azure Kubernetes Service-t, Tárolóregisztrációs adatbázist és más Azure-szolgáltatásokat használhatnak.

A példa egészét vagy egy részét használhatja minden olyan hasonló forgatókönyvhöz, amely rendelkezik az Azure-ban üzembe helyezett MLOps-környezettel, és az Azure biztonsági képességeivel segíti a megfelelő erőforrások védelmét. A megoldás eredeti ügyfele a távközlési iparágban található.

Megfontolások

Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amelyek olyan vezérelvek, amelyek alkalmazásukkor javítják a számítási feladatok minőségét. További információ: Microsoft Azure Well-Architected Framework.

Biztonság

A biztonság további biztosítékokat nyújt a szándékos támadások és az értékes adatokkal és rendszerekkel való visszaélés ellen. További információ: A biztonsági pillér áttekintése.

Fontolja meg, hogyan segítheti az MLOps-megoldás védelmét az architektúra kialakításától kezdve. Előfordulhat, hogy a fejlesztési környezetek nem igényelnek jelentős biztonságot, de fontos az előkészítési és éles környezetekben.

Költségoptimalizálás

A költségoptimalizálás a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módjairól szól. További információ: A költségoptimalizálási pillér áttekintése.

A virtuális hálózat konfigurálása ingyenes, de a forgatókönyv által igényelt egyéb szolgáltatások, például a privát kapcsolatok, a DNS-zónák és a virtuális hálózatok közötti társviszony-létesítés díjkötelesek. Az alábbi táblázat az adott szolgáltatások és az esetlegesen szükséges egyéb szolgáltatások díjait ismerteti.

Azure-szolgáltatás Díjszabás
Virtual Network Ingyenes.
Private Link Csak a privát végpont erőforrás-óráiért és a privát végponton keresztül feldolgozott adatokért kell fizetnie.
Azure DNS, privát zóna A számlázás az Azure-ban üzemeltetett DNS-zónák száma és a fogadott DNS-lekérdezések száma alapján történik.
Társviszony létesítése virtuális hálózatok között A bejövő és a kimenő forgalom a társviszonyban lévő hálózatok mindkét végén díjköteles.
VPN Gateway A díjak az átjáró kiépítésének és rendelkezésre állásának időtartamán alapulnak.
ExpressRoute Az ExpressRoute és az ExpressRoute-átjárók díjai.
Azure Bastion A számlázás az óránkénti díjszabás kombinációját foglalja magában, amely termékváltozaton, skálázási egységeken és adatátviteli díjakon alapul.

Működés eredményessége

Az üzemeltetési kiválóság azokat az üzemeltetési folyamatokat fedi le, amelyek üzembe helyeznek egy alkalmazást, és éles környezetben tartják azt. További információ: A működési kiválósági pillér áttekintése.

A folyamatos integráció és a folyamatos teljesítés (CI/CD) egyszerűsítése érdekében az ajánlott eljárás az infrastruktúra eszközeinek és szolgáltatásainak használata kódként (IaC), például Terraform- vagy Azure Resource Manager-sablonok, Azure DevOps és Azure Pipelines.

A forgatókönyv üzembe helyezése

A következő szakaszok bemutatják, hogyan helyezhet üzembe, érhet el és védhet meg erőforrásokat ebben a példaforgatókönyvben.

Virtual Network

Az MLOps-környezet védelmének első lépése az Azure Machine Learning-munkaterület és a hozzá tartozó erőforrások védelme. A védelem hatékony módja a virtuális hálózat használata. A virtuális hálózat az Azure-beli magánhálózat alapvető építőeleme. A virtuális hálózat lehetővé teszi, hogy az Azure-erőforrások számos típusa biztonságosabban kommunikáljon egymással, az internettel és a helyszíni hálózatokkal.

Az Azure Machine Learning-munkaterület és a hozzá tartozó erőforrások virtuális hálózatba helyezése segít biztosítani, hogy az összetevők kommunikálhassanak egymással anélkül, hogy közzétenné őket a nyilvános interneten. Ez csökkenti a támadási felületet, és segít megelőzni az adatok kiszivárgását.

Az alábbi Terraform-kódrészlet bemutatja, hogyan hozhat létre számítási fürtöt az Azure Machine Learninghez, hogyan csatolhatja azt egy munkaterülethez, és hogyan helyezheti el egy virtuális hálózat alhálózatán.

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

A Private Link lehetővé teszi a virtuális hálózat privát végpontján keresztül az Azure-platform szolgáltatásként (PaaS) való elérését, például egy Azure Machine Learning-munkaterülethez és az Azure Storage-hoz, valamint az Azure által üzemeltetett, ügyfél által birtokolt és partneri tulajdonú szolgáltatásokhoz. A privát végpontok olyan hálózati adapterek, amelyek csak adott erőforrásokhoz csatlakoznak, így védelmet nyújtanak az adatok kiszivárgása ellen.

Ebben a példaforgatókönyvben négy privát végpont van, amelyek az Azure PaaS-beállításokhoz vannak kötve, és amelyeket az Azure Machine Learning virtuális hálózatának alhálózata felügyel, ahogyan az architektúradiagramon is látható. Ezért ezek a szolgáltatások csak ugyanazon a virtuális hálózaton, az Azure Machine Learning virtuális hálózaton belüli erőforrásokhoz érhetők el. Ezek a szolgáltatások a következők:

  • Azure Machine Learning-munkaterület
  • Azure Blob Storage
  • Azure Container Registry
  • Azure Key Vault

Az alábbi Terraform-kódrészlet bemutatja, hogyan lehet privát végpontot használni egy Azure Machine Learning-munkaterülethez való csatoláshoz, amelyet a virtuális hálózat ennek eredményeként jobban véd. A kódrészlet egy privát DNS-zóna használatát is megjeleníti, amely az Azure saját DNS zónákban található.

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

Az előző kód azurerm_machine_learning_workspace alapértelmezés szerint v2 API-platformot használ. Ha továbbra is használni szeretné a v1 API-t, vagy olyan vállalati szabályzattal rendelkezik, amely tiltja a nyilvános hálózatokon keresztüli kommunikáció küldését, engedélyezheti a v1_legacy_mode_enabled paramétert, ahogyan az az alábbi kódrészletben látható. Ha engedélyezve van, ez a paraméter letiltja a munkaterület v2 API-ját.

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

Azure-beli saját DNS-zónák

Az Azure DNS megbízható, biztonságosabb DNS-szolgáltatást biztosít a virtuális hálózatok tartományneveinek kezeléséhez és feloldásához anélkül, hogy egyéni DNS-megoldást kellene hozzáadnia. Privát DNS-zónák használatával egyéni tartományneveket használhat az Azure által megadott nevek helyett. A privát DNS-zónák DNS-feloldása csak a hozzá kapcsolódó virtuális hálózatokból működik.

Ez a mintamegoldás privát végpontokat használ az Azure Machine Learning-munkaterülethez és a hozzá kapcsolódó erőforrásokhoz, például az Azure Storage-hoz, az Azure Key Vaulthoz vagy a Container Registryhez. Ezért a DNS-beállításokat úgy kell konfigurálnia, hogy feloldja a privát végpontok IP-címeit a kapcsolati sztring teljes tartománynevéből (FQDN).

Egy privát DNS-zónát virtuális hálózathoz csatolhat adott tartományok feloldásához.

A Private Link és az Azure Private Endpoint Terraform-kódrészlete két privát DNS-zónát hoz létre az Azure-szolgáltatások DNS-zónakonfigurációjában ajánlott zónanevek használatával:

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

Társviszony létesítése virtuális hálózatok között

A virtuális hálózatok közötti társviszony-létesítés lehetővé teszi a jump-host virtuális gép (VM) vagy a saját üzemeltetésű ügynök virtuális gépek elérését az Azure Bastion virtuális hálózatban lévő erőforrásokhoz az Azure Machine Learning virtuális hálózat erőforrásaihoz. Kapcsolati célokból a két virtuális hálózat egyként működik. A virtuális gépek és az Azure Machine Learning-erőforrások közötti forgalom a társhálózatokban az Azure gerincinfrastruktúráját használja. A virtuális hálózatok közötti forgalmat az Azure magánhálózata irányítja át.

Az alábbi Terraform-kódrészlet beállítja a virtuális hálózatok közötti társviszonyt az Azure Machine Learning virtuális hálózat és az Azure Bastion virtuális hálózat között.

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

A virtuális hálózat erőforrásainak elérése

Ha az Azure Machine Learning-munkaterületet egy virtuális hálózaton szeretné elérni, például az Azure Machine Learning virtuális hálózatát ebben a forgatókönyvben, használja az alábbi módszerek egyikét:

  • Azure VPN Gateway
  • Azure ExpressRoute
  • Az Azure Bastion és a jump host virtuális gép

További információ: Csatlakozás a munkaterülethez.

A virtuális hálózat erőforrásait elérő Azure Pipelines futtatása

Az Azure Pipelines automatikusan buildel és tesztel projekteket, hogy elérhetővé tegye azokat mások számára. Az Azure Pipelines a CI/CD-t kombinálva teszteli és elkészíti a kódot, és bármilyen célnak elküldi.

Az Azure által üzemeltetett ügynökök és a saját üzemeltetésű ügynökök

Az MLOps-megoldás ebben a példában két folyamatból áll, amelyek aktiválhatják az Azure Machine Learning-folyamatokat, és hozzáférhetnek a kapcsolódó erőforrásokhoz. Mivel az Azure Machine Learning-munkaterület és a hozzá tartozó erőforrás egy virtuális hálózatban található, ennek a forgatókönyvnek módot kell biztosítania az Azure Pipelines-ügynök számára a hozzáférésükre. Az ügynök egy olyan telepített ügynökszoftverrel rendelkező számítási infrastruktúra, amely egyenként futtatja az Azure Pipelines feladatait. A hozzáférés többféleképpen is implementálható:

  • Használjon saját üzemeltetésű ügynököket ugyanabban a virtuális hálózatban vagy a társviszony-létesítési virtuális hálózatban, ahogy az architektúradiagramon is látható.

  • Használja az Azure által üzemeltetett ügynököket, és adja hozzá IP-címtartományaikat a célzott Azure-szolgáltatások tűzfalbeállításainak engedélyezési listájához.

  • Használjon Azure-beli ügynököket (VPN-ügyfelekként) és VPN Gatewayt.

Mindegyik választásnak vannak előnyei és hátrányai. Az alábbi táblázat az Azure által üzemeltetett ügynököket hasonlítja össze a saját üzemeltetésű ügynökökkel.

Azure által üzemeltetett ügynök Saját üzemeltetésű ügynök
Költségek Havonta 1800 perccel és az Azure által üzemeltetett CI/CD párhuzamos feladatok díjával ingyenesen indíthat egy párhuzamos feladatot. Kezdjen ingyenesen egy párhuzamos feladatért, havonta korlátlan percekért, és korlátlan percdíjért minden további saját üzemeltetésű CI/CD párhuzamos feladatért. Ez a lehetőség kevésbé költséges párhuzamos feladatokat kínál.
Karbantartás A Microsoft gondoskodik Önről. Az Ön által karbantartott szoftver nagyobb mértékben szabályozható a kívánt szoftver telepítése felett.
Létrehozási idő Több időt vesz igénybe, mert teljesen frissül minden alkalommal, amikor elindít egy buildet, és mindig az alapoktól épít. Időt takarít meg, mert megőrzi az összes fájlt és gyorsítótárat.

Feljegyzés

Az aktuális díjszabásért tekintse meg az Azure DevOps díjszabását.

A táblázatban szereplő összehasonlítások és a biztonság és összetettség szempontjai alapján ez a példaforgatókönyv egy saját üzemeltetésű ügynököt használ az Azure Pipelineshoz az Azure Machine Learning-folyamatok aktiválásához a virtuális hálózaton.

A saját üzemeltetésű ügynök konfigurálásához az alábbi lehetőségek közül választhat:

  • Telepítse az ügynököt az Azure-beli virtuális gépekre.

  • Telepítse az ügynököket egy Azure-beli virtuálisgép-méretezési csoportra, amely automatikusan skálázható az igényeknek megfelelően.

  • Telepítse az ügynököt egy Docker-tárolóra. Ez a lehetőség nem megvalósítható, mert ez a forgatókönyv megkövetelheti a Docker-tároló futtatását az ügynökön belül a gépi tanulási modell betanításához.

Az alábbi mintakód két saját üzemeltetésű ügynököt helyez üzembe Azure-beli virtuális gépek és bővítmények létrehozásával:

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
}

Ahogy az előző kódblokkban látható, a Terraform-szkript az ügyfél igényeinek megfelelően meghívja agent_init.sh, hogy telepítse az ügynökszoftvereket és a szükséges kódtárakat az ügynök virtuális gépére.

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

Tárolóregisztrációs adatbázis használata a virtuális hálózaton

Az Azure Machine Learning-munkaterületek biztonságossá tételének előfeltételei egy virtuális hálózatban. További információkat az Előfeltételek között talál. A Container Registry egy kötelező szolgáltatás, ha Azure Machine Learning-munkaterületet használ a modellek betanítása és üzembe helyezése érdekében.

Ebben a példában annak érdekében, hogy a saját üzemeltetésű ügynök hozzáférhessen a tárolóregisztrációs adatbázishoz a virtuális hálózaton, virtuális hálózati társviszony-létesítést használunk, és hozzáadunk egy virtuális hálózati kapcsolatot a privát DNS-zóna és privatelink.azurecr.ioaz Azure Bastion virtuális hálózat összekapcsolásához. Az alábbi Terraform-kódrészlet a megvalósítást mutatja be.

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

Ez a példaforgatókönyv azt is biztosítja, hogy a tárolóregisztrációs adatbázis közreműködői szerepkörrel rendelkezik az Azure Machine Learning-munkaterület rendszer által hozzárendelt felügyelt identitásához.

Számítási fürt vagy példány használata a virtuális hálózaton

A virtuális hálózatban lévő Azure Machine Learning számítási fürtökhöz vagy -példányokhoz szükség van egy hálózati biztonsági csoportra (NSG), amelynek bizonyos szabályai vannak az alhálózatára vonatkozóan. A szabályok listáját a Korlátozások című témakörben találja.

Azt is vegye figyelembe, hogy a számítási fürt vagy példány esetében mostantól eltávolítható a nyilvános IP-cím, amely jobb védelmet nyújt a számítási erőforrások számára az MLOps-megoldásban. További információ: Nincs nyilvános IP-cím számítási példányokhoz.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerzők:

Egyéb közreműködők:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.

Következő lépések