Azure Machine Tanulás következtetési környezet védelme virtuális hálózatokkal (v1)

ÉRVÉNYES:Python SDK azureml v1

A KÖVETKEZŐre vonatkozik: Azure CLI ml-bővítmény 1-es verzió

Ebből a cikkből megtudhatja, hogyan védheti meg a következtetési környezeteket egy virtuális hálózattal az Azure Machine Tanulás. Ez a cikk a modell webszolgáltatásként való üzembe helyezésének SDK/CLI v1 üzembe helyezési munkafolyamatára vonatkozik.

Tipp.

Ez a cikk egy Azure Machine-Tanulás-munkafolyamat biztonságossá tételéről szóló sorozat része. Tekintse meg a sorozat többi cikkét:

A biztonságos munkaterület létrehozásáról szóló oktatóanyagért lásd : Oktatóanyag: Biztonságos munkaterület létrehozása vagy oktatóanyag: Biztonságos munkaterület létrehozása sablonnal.

Ebből a cikkből megtudhatja, hogyan védheti meg a következő következtetési erőforrásokat egy virtuális hálózaton:

  • Alapértelmezett Azure Kubernetes Service-fürt (AKS)
  • Privát AKS-fürt
  • AKS-fürt privát kapcsolattal

Előfeltételek

  • Olvassa el a Hálózatbiztonság áttekintési cikket a gyakori virtuális hálózati forgatókönyvek és az általános virtuális hálózati architektúra megismeréséhez.

  • A számítási erőforrásokhoz használandó meglévő virtuális hálózat és alhálózat.

  • Ha erőforrásokat szeretne üzembe helyezni egy virtuális hálózaton vagy alhálózaton, a felhasználói fióknak rendelkeznie kell az Azure szerepköralapú hozzáférés-vezérlési (Azure RBAC) alábbi műveleteihez szükséges engedélyekkel:

    • "Microsoft.Network/*/read" a virtuális hálózati erőforráson. Erre az engedélyre nincs szükség az Azure Resource Manager-sablontelepítésekhez.
    • "Microsoft.Network/virtualNetworks/join/action" a virtuális hálózati erőforráson.
    • "Microsoft.Network/virtualNetworks/alhálózatok/csatlakozás/művelet" az alhálózati erőforráson.

    További információ a hálózatkezeléssel rendelkező Azure RBAC-ről: A hálózatkezelés beépített szerepkörei

Fontos

A cikkben szereplő Azure CLI-parancsok némelyike az azure-cli-mlAzure Machine Tanulás vagy v1 bővítményét használja. A v1-bővítmény támogatása 2025. szeptember 30-án megszűnik. Addig a dátumig telepítheti és használhatja a v1-bővítményt.

Javasoljuk, hogy 2025. szeptember 30-a előtt váltsa át a ml(vagy v2) bővítményt. További információ a v2-es bővítményről: Azure ML CLI-bővítmény és Python SDK v2.

Korlátozások

Azure Container Instances

Ha az Azure Machine Learning-munkaterület privát végponttal van konfigurálva, az Azure Container Instances virtuális hálózatban való üzembe helyezése nem támogatott. Ehelyett fontolja meg felügyelt online végpontok használatát hálózatelkülönítéssel.

Azure Kubernetes Service

  • Ha az AKS-fürt egy virtuális hálózat mögött található, a munkaterületnek és a hozzá tartozó erőforrásoknak (tároló, kulcstartó, Azure Container Registry) privát végpontokkal vagy szolgáltatásvégpontokkal kell rendelkezniük ugyanabban a VNET-ben, mint az AKS-fürt virtuális hálózata. Olvassa el az oktatóanyagot , amely biztonságos munkaterületet hoz létre a magánvégpontok vagy szolgáltatásvégpontok virtuális hálózathoz való hozzáadásához.
  • Ha a munkaterület privát végponttal rendelkezik, az Azure Kubernetes Service-fürtnek ugyanabban az Azure-régióban kell lennie, mint a munkaterület.
  • A nyilvános teljes tartománynév (FQDN) privát AKS-fürttel való használatát nem támogatja az Azure Machine Learning.

Azure Kubernetes Service

Fontos

Ha AKS-fürtöt szeretne használni egy virtuális hálózaton, először kövesse az Azure Kubernetes Service (AKS) speciális hálózatkezelésének konfigurálásához szükséges előfeltételeket.

Ha AKS-t szeretne hozzáadni egy virtuális hálózathoz a munkaterülethez, kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Machine Tanulás Studióba, majd válassza ki az előfizetését és a munkaterületét.

  2. Válassza a bal oldali Számítás lehetőséget, a középen lévő Következtetésfürtöket , majd az + Új lehetőséget. Végül válassza az AksCompute lehetőséget.

    Screenshot of create inference cluster dialog.

  3. Az AksCompute létrehozása párbeszédpanelen válassza az Új létrehozása, a hely és a fürthöz használni kívánt virtuális gép mérete lehetőséget. Végül válassza a Tovább gombot.

    Screenshot of VM settings.

  4. A Gépház konfigurálása szakaszban adjon meg egy számítási nevet, válassza ki a fürt célját, a csomópontok számát, majd válassza a Speciális lehetőséget a hálózati beállítások megjelenítéséhez. A Virtuális hálózat konfigurálása területen állítsa be a következő értékeket:

    • Állítsa be a virtuális hálózatot a használatra.

      Tipp.

      Ha a munkaterület privát végpontot használ a virtuális hálózathoz való csatlakozáshoz, a virtuális hálózat kijelölési mezője szürkén lesz látható.

    • Állítsa be az alhálózatot a fürt létrehozásához.

    • A Kubernetes Szolgáltatás címtartomány mezőjébe írja be a Kubernetes szolgáltatás címtartományát. Ez a címtartomány egy osztály nélküli tartományközi útválasztási (CIDR) jelölési IP-tartományt használ a fürt számára elérhető IP-címek meghatározásához. Nem fedheti át az alhálózat IP-tartományait (például 10.0.0.0/16).

    • A Kubernetes DNS-szolgáltatás IP-cím mezőjébe írja be a Kubernetes DNS-szolgáltatás IP-címét. Ez az IP-cím a Kubernetes DNS-szolgáltatáshoz van rendelve. A Kubernetes szolgáltatás címtartományában kell lennie (például 10.0.0.10).

    • A Docker-híd cím mezőjébe írja be a Docker-híd címét. Ez az IP-cím a Docker-hídhoz van rendelve. Nem lehet alhálózati IP-tartományokban vagy a Kubernetes szolgáltatás címtartományában (például 172.18.0.1/16).

    Screenshot of configure network settings.

  5. Amikor webszolgáltatásként helyez üzembe egy modellt az AKS-ben, a rendszer létrehoz egy pontozó végpontot a következtetési kérelmek kezeléséhez. Győződjön meg arról, hogy a virtuális hálózatot vezérlő hálózati biztonsági csoport (NSG) rendelkezik a pontozó végpont IP-címéhez engedélyezett bejövő biztonsági szabállyal, ha a virtuális hálózaton kívülről szeretné meghívni.

    A pontozási végpont IP-címének megkereséséhez tekintse meg az üzembe helyezett szolgáltatás pontozási URI-ját. A pontozási URI megtekintésével kapcsolatos információkért lásd : Webszolgáltatásként üzembe helyezett modell felhasználása.

    Fontos

    Tartsa meg az NSG alapértelmezett kimenő szabályait. További információkért tekintse meg a biztonsági csoportok alapértelmezett biztonsági szabályait.

    Screenshot that shows an inbound security rule.

    Fontos

    A pontozási végpont képében látható IP-cím eltérő lesz az üzemelő példányok esetében. Bár az összes üzemelő példány ugyanazt az IP-címet egy AKS-fürtön osztja meg, minden AKS-fürt más IP-címmel fog rendelkezni.

Az Azure Machine Tanulás SDK-val is hozzáadhat Azure Kubernetes Service-t egy virtuális hálózathoz. Ha már rendelkezik AKS-fürtel egy virtuális hálózaton, csatolja azt a munkaterülethez az AKS-ben való üzembe helyezéssel kapcsolatban leírtak szerint. Az alábbi kód létrehoz egy új AKS-példányt egy default virtuális hálózat mynetworkalhálózatában:

ÉRVÉNYES:Python SDK azureml v1

from azureml.core.compute import ComputeTarget, AksCompute

# Create the compute configuration and set virtual network information
config = AksCompute.provisioning_configuration(location="eastus2")
config.vnet_resourcegroup_name = "mygroup"
config.vnet_name = "mynetwork"
config.subnet_name = "default"
config.service_cidr = "10.0.0.0/16"
config.dns_service_ip = "10.0.0.10"
config.docker_bridge_cidr = "172.17.0.1/16"

# Create the compute target
aks_target = ComputeTarget.create(workspace=ws,
                                  name="myaks",
                                  provisioning_configuration=config)

A létrehozási folyamat befejezése után következtetést vagy modellpontozást futtathat egy virtuális hálózat mögötti AKS-fürtön. További információ: Az AKS-ben való üzembe helyezés.

A szerepköralapú hozzáférés-vezérlés Kubernetes-sel való használatáról további információt az Azure RBAC használata a Kubernetes-hitelesítéshez című témakörben talál.

Hálózati közreműködői szerepkör

Fontos

Ha korábban létrehozott virtuális hálózat biztosításával hoz létre vagy csatol egy AKS-fürtöt, az AKS-fürt szolgáltatásnevét (SP) vagy felügyelt identitását hálózati közreműködői szerepkörrel kell megadnia a virtuális hálózatot tartalmazó erőforráscsoportnak.

Az identitás hálózati közreműködőként való hozzáadásához kövesse az alábbi lépéseket:

  1. Az AKS szolgáltatásnévjének vagy felügyelt identitásazonosítójának megkereséséhez használja az alábbi Azure CLI-parancsokat. Cserélje le <aks-cluster-name> a fürt nevére. Cserélje le <resource-group-name> az AKS-fürtöt tartalmazó erőforráscsoport nevére:

    az aks show -n <aks-cluster-name> --resource-group <resource-group-name> --query servicePrincipalProfile.clientId
    

    Ha ez a parancs a következő értéket msiadja vissza, a következő paranccsal azonosíthatja a felügyelt identitás egyszerű azonosítóját:

    az aks show -n <aks-cluster-name> --resource-group <resource-group-name> --query identity.principalId
    
  2. A virtuális hálózatot tartalmazó erőforráscsoport azonosítójának megkereséséhez használja az alábbi parancsot. Cserélje le <resource-group-name> a virtuális hálózatot tartalmazó erőforráscsoport nevére:

    az group show -n <resource-group-name> --query id
    
  3. A szolgáltatásnév vagy a felügyelt identitás hálózati közreműködőként való hozzáadásához használja az alábbi parancsot. Cserélje le <SP-or-managed-identity> a szolgáltatásnévhez vagy a felügyelt identitáshoz visszaadott azonosítóra. Cserélje le <resource-group-id> a virtuális hálózatot tartalmazó erőforráscsoporthoz visszaadott azonosítóra:

    az role assignment create --assignee <SP-or-managed-identity> --role 'Network Contributor' --scope <resource-group-id>
    

A belső terheléselosztó AKS-sel való használatáról további információt a Belső terheléselosztó használata az Azure Kubernetes Service-ben című témakörben talál.

Virtuális hálózatok forgalmának védelme

Az AKS-fürtről a virtuális hálózatra érkező és onnan érkező forgalmat kétféleképpen lehet elkülöníteni:

  • Privát AKS-fürt: Ez a megközelítés az Azure Private Link használatával biztosítja a fürttel való kommunikációt az üzembe helyezési/felügyeleti műveletekhez.
  • Belső AKS-terheléselosztó: Ez a módszer konfigurálja a végpontot az AKS-be való üzembe helyezéshez, hogy a virtuális hálózaton belül privát IP-címet használjon.

Privát AKS-fürt

Az AKS-fürtök alapértelmezés szerint egy vezérlősíkkal vagy API-kiszolgálóval rendelkeznek nyilvános IP-címekkel. Privát AKS-fürt létrehozásával konfigurálhatja az AKS-t privát vezérlősík használatára. További információ: Privát Azure Kubernetes Service-fürt létrehozása.

A privát AKS-fürt létrehozása után csatolja a fürtöt a virtuális hálózathoz, hogy az Azure Machine Tanulás használhassa.

Belső AKS terheléselosztó

Az AKS-üzemelő példányok alapértelmezés szerint nyilvános terheléselosztót használnak. Ebben a szakaszban megtudhatja, hogyan konfigurálhatja az AKS-t belső terheléselosztó használatára. Belső (vagy privát) terheléselosztót használnak, ahol csak a privát IP-címek engedélyezettek előtérként. A belső terheléselosztók a virtuális hálózaton belüli forgalom terheléselosztására szolgálnak

A privát terheléselosztók engedélyezéséhez konfigurálja az AKS-t egy belső terheléselosztó használatára.

Privát terheléselosztó engedélyezése

Fontos

Az Azure Kubernetes Service-fürt Azure Machine Tanulás Studióban való létrehozásakor nem engedélyezheti a privát IP-címet. Létrehozhat egyet belső terheléselosztóval, ha a Python SDK-t vagy az Azure CLI-bővítményt használja gépi tanuláshoz.

Az alábbi példák bemutatják, hogyan hozhat létre új AKS-fürtöt egy privát IP-címmel/belső terheléselosztóval az SDK és a parancssori felület használatával:

ÉRVÉNYES:Python SDK azureml v1

import azureml.core
from azureml.core.compute import AksCompute, ComputeTarget

# Verify that cluster does not exist already
try:
    aks_target = AksCompute(workspace=ws, name=aks_cluster_name)
    print("Found existing aks cluster")

except:
    print("Creating new aks cluster")

    # Subnet to use for AKS
    subnet_name = "default"
    # Create AKS configuration
    prov_config=AksCompute.provisioning_configuration(load_balancer_type="InternalLoadBalancer")
    # Set info for existing virtual network to create the cluster in
    prov_config.vnet_resourcegroup_name = "myvnetresourcegroup"
    prov_config.vnet_name = "myvnetname"
    prov_config.service_cidr = "10.0.0.0/16"
    prov_config.dns_service_ip = "10.0.0.10"
    prov_config.subnet_name = subnet_name
    prov_config.load_balancer_subnet = subnet_name
    prov_config.docker_bridge_cidr = "172.17.0.1/16"

    # Create compute target
    aks_target = ComputeTarget.create(workspace = ws, name = "myaks", provisioning_configuration = prov_config)
    # Wait for the operation to complete
    aks_target.wait_for_completion(show_output = True)

Ha meglévő fürtöt csatol a munkaterülethez, használja a load_balancer_subnetload_balancer_type AksCompute.attach_configuration() paramétereit a terheléselosztó konfigurálásához.

A fürtök csatolásával kapcsolatos további információkést lásd: Meglévő AKS-fürt csatolása.

A virtuális hálózat kimenő kapcsolatainak korlátozása

Ha nem szeretné használni az alapértelmezett kimenő szabályokat, és korlátozni szeretné a virtuális hálózat kimenő hozzáférését, engedélyeznie kell az Azure Container Registryhez való hozzáférést. Ellenőrizze például, hogy a hálózati biztonsági csoportok (NSG) tartalmaz-e olyan szabályt, amely lehetővé teszi az AzureContainerRegistry.RegionName szolgáltatáscímkéhez való hozzáférést, ahol a (z) {RegionName} egy Azure-régió neve.

Következő lépések

Ez a cikk egy Azure Machine-Tanulás-munkafolyamat biztonságossá tételéről szóló sorozat része. Tekintse meg a sorozat többi cikkét: