Azure Machine Learning-következtetési környezet védelme virtuális hálózatokkal (v1)
A KÖVETKEZŐKRE VONATKOZIK: 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 Learningben. 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 Learning-munkafolyamat biztonságossá tételéről szóló sorozat része. Tekintse meg a sorozat többi cikkét:
- A virtuális hálózat áttekintése
- A munkaterület erőforrásainak védelme
- A betanítási környezet védelme
- Studio-funkciók engedélyezése
- Egyéni DNS használata
- Tűzfal használata
A biztonságos munkaterületek létrehozásáról szóló oktatóanyagért lásd : Biztonságos munkaterület, Bicep-sablon vagy Terraform-sablon létrehozása.
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-ml
Azure Machine Learning bővítményét vagy v1-et 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:
Jelentkezzen be az Azure Machine Learning Studióba, majd válassza ki az előfizetését és a munkaterületét.
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.
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.
A Beállítások 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).
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.
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 Learning SDK-val azure Kubernetes Service-t is hozzáadhat 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 mynetwork
alhálózatában:
A KÖVETKEZŐKRE VONATKOZIK: 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:
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
msi
adja 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
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
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 az Azure Machine Learning használatához.
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 Machine Learning Studióban az Azure Kubernetes Service-fürt 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:
A KÖVETKEZŐKRE VONATKOZIK: 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_subnet
load_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 Learning-munkafolyamat biztonságossá tételéről szóló sorozat része. Tekintse meg a sorozat többi cikkét: