Azure Machine Tanulás-munkaterület védelme virtuális hálózatokkal (v1)

ÉRVÉNYES:Azure CLI ml-bővítmény v1Python SDK azureml v1

Ebből a cikkből megtudhatja, hogyan védheti meg az Azure Machine Tanulás-munkaterületet és annak kapcsolódó erőforrásait egy Azure-beli virtuális hálózaton.

Tipp.

A Microsoft a jelen cikkben ismertetett lépések helyett az Azure Machine Tanulás felügyelt virtuális hálózatok használatát javasolja. Felügyelt virtuális hálózat esetén az Azure Machine Tanulás kezeli a munkaterület és a felügyelt számítások hálózatelkülönítési feladatait. Privát végpontokat is hozzáadhat a munkaterülethez szükséges erőforrásokhoz, például az Azure Storage-fiókhoz. További információ: Munkaterület kezelt hálózati elkülönítés.

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 engedélyezheti a következő munkaterület-erőforrásokat egy virtuális hálózaton:

  • Azure Machine Learning-munkaterület
  • Azure Storage-fiókok
  • Azure Machine Tanulás adattárak és adatkészletek
  • Azure Key Vault
  • Azure Container Registry

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.

  • Az ajánlott eljárások megismeréséhez olvassa el az Azure Machine Tanulás vállalati biztonsági ajánlott eljárásait ismertető cikket.

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

    Figyelmeztetés

    Ne használja a virtuális hálózat 172.17.0.0/16 IP-címtartományát. Ez a Docker-hídhálózat által használt alapértelmezett alhálózati tartomány, és a virtuális hálózat használatakor hibákhoz vezet. Más tartományok is ütközhetnek attól függően, hogy mit szeretne csatlakozni a virtuális hálózathoz. Ha például a helyszíni hálózatot a virtuális hálózathoz szeretné csatlakoztatni, és a helyszíni hálózat a 172.16.0.0/16 tartományt is használja. Végső soron Önnek kell megterveznie a hálózati infrastruktúrát.

  • 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

Azure Container Registry

  • Az Azure Container Registrynek prémium verziójúnak kell lennie. A frissítésről további információt az SKU-k módosítása című témakörben talál.

  • Ha az Azure Container Registry privát végpontot használ, annak ugyanabban a virtuális hálózatban kell lennie, mint a betanításhoz vagy következtetéshez használt tárfióknak és számítási céloknak. Ha szolgáltatásvégpontot használ, annak ugyanabban a virtuális hálózaton és alhálózatban kell lennie, mint a tárfiók és a számítási célok.

  • Az Azure Machine Tanulás-munkaterületnek tartalmaznia kell egy Azure Machine Tanulás számítási fürtöt.

Korlátozások

Azure Storage-fiók

  • Ha az Azure Machine Learning Studio használatát tervezi, és a tárfiók is a virtuális hálózaton található, extra ellenőrzési követelmények vannak érvényben:

    • Ha a tárfiók szolgáltatásvégpontot használ, a munkaterület privát végpontjának és a társzolgáltatás végpontjának a virtuális hálózat azonos alhálózatában kell lennie.
    • Ha a tárfiók privát végpontot használ, a munkaterület privát végpontjának és a tár privát végpontjának azonos virtuális hálózatban kell lennie. Ebben az esetben lehetnek más alhálózatban is.

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 Container Registry

Ha az ACR egy virtuális hálózat mögött van, az Azure Machine Tanulás nem használhatja közvetlenül Docker-rendszerképek készítésére. Ehelyett a számítási fürtöt használja a rendszerképek létrehozásához.

Fontos

A Docker-rendszerképek létrehozásához használt számítási fürtnek hozzá kell férnie a modellek betanítása és üzembe helyezése során használt csomagtárházakhoz. Előfordulhat, hogy olyan hálózati biztonsági szabályokat kell hozzáadnia, amelyek engedélyezik a nyilvános adattárakhoz való hozzáférést, privát Python-csomagokat használnak, vagy olyan egyéni Docker-rendszerképeket kell használniuk, amelyek már tartalmazzák a csomagokat.

Figyelmeztetés

Ha az Azure Container Registry privát végpontot vagy szolgáltatásvégpontot használ a virtuális hálózattal való kommunikációhoz, nem használhat felügyelt identitást egy Azure Machine Tanulás számítási fürttel.

Azure Monitor

Figyelmeztetés

Az Azure Monitor támogatja az Azure Private Link használatát a virtuális hálózathoz való csatlakozáshoz. Az Azure Monitorban azonban a nyitott Private Link módot kell használnia. További információ: Private Link hozzáférési módok: Csak privát és Megnyitás.

Szükséges nyilvános internet-hozzáférés

Az Azure Machine Learningnek bejövő és kimenő hozzáférést kell biztosítani a nyilvános internethez. Az alábbi táblázatok áttekintést nyújtanak a szükséges hozzáférésről és annak céljáról. A végződő .regionszolgáltatáscímkék esetében cserélje le region a munkaterületet tartalmazó Azure-régióra. Például Storage.westus:

Tipp.

A szükséges lap felsorolja a szükséges bejövő és kimenő konfigurációt. A helyzet lap felsorolja azokat az opcionális bejövő és kimenő konfigurációkat, amelyeket engedélyezni szeretne bizonyos konfigurációkhoz.

Irány Protokoll >
ports
Szolgáltatáscímke Cél
Kimenő TCP: 80, 443 AzureActiveDirectory Hitelesítés Microsoft Entra ID használatával.
Kimenő TCP: 443, 18881
UDP: 5831
AzureMachineLearning Az Azure Machine Learning-szolgáltatások használata.
A python intellisense a jegyzetfüzetekben az 18881-ben használt portot használja.
Azure Machine-Tanulás számítási példány létrehozása, frissítése és törlése az 5831-ös portot használja.
Kimenő BÁRMELY: 443 BatchNodeManagement.region Kommunikáció az Azure Batch háttérrendszerével az Azure Machine-hez Tanulás számítási példányokhoz/fürtökhöz.
Kimenő TCP: 443 AzureResourceManager Azure-erőforrások létrehozása az Azure Machine Tanulás, az Azure CLI és az Azure Machine Tanulás SDK használatával.
Kimenő TCP: 443 Storage.region Az Azure Storage-fiókban tárolt adatok elérése a számítási fürthöz és a számítási példányhoz. A kimenő adatkiszivárgás megelőzéséről további információt az Adatkiszivárgás elleni védelem című témakörben talál.
Kimenő TCP: 443 AzureFrontDoor.FrontEnd
* Nem szükséges a 21Vianet által üzemeltetett Microsoft Azure-ban.
Az Azure Machine Learning stúdió globális belépési pontja. Képek és környezetek tárolása az AutoML-hez. A kimenő adatkiszivárgás megelőzéséről további információt az Adatkiszivárgás elleni védelem című témakörben talál.
Kimenő TCP: 443 MicrosoftContainerRegistry.region
Vegye figyelembe , hogy ez a címke függőségben van a AzureFrontDoor.FirstParty címkén
A Microsoft által biztosított Docker-rendszerképek elérése. Az Azure Machine Tanulás útválasztó beállítása az Azure Kubernetes Service-hez.

Tipp.

Ha a szolgáltatáscímkék helyett az IP-címekre van szüksége, használja az alábbi lehetőségek egyikét:

Az IP-címek rendszeresen változhatnak.

Előfordulhat, hogy engedélyeznie kell a Visual Studio Code-ba és nem Microsoft-webhelyekre irányuló kimenő forgalmat a gépi tanulási projekt által igényelt csomagok telepítéséhez. Az alábbi táblázat a gépi tanuláshoz gyakran használt adattárakat sorolja fel:

Gazdagép neve Cél
anaconda.com
*.anaconda.com
Az alapértelmezett csomagok telepítéséhez használatos.
*.anaconda.org Adattáradatok lekérésére szolgál.
pypi.org Az alapértelmezett index függőségeinek listázására szolgál, ha vannak ilyenek, és az indexet a felhasználói beállítások nem írják felül. Ha az index felülírva van, engedélyeznie *.pythonhosted.orgkell azt is.
cloud.r-project.org CRAN-csomagok R-fejlesztéshez való telepítésekor használatos.
*.pytorch.org Néhány példa a PyTorch alapján használja.
*.tensorflow.org A Tensorflow alapján néhány példa használja.
code.visualstudio.com A Visual Studio Code asztali verziójának letöltéséhez és telepítéséhez szükséges. Ez a Visual Studio Code Web esetében nem szükséges.
update.code.visualstudio.com
*.vo.msecnd.net
A számítási példányra telepített Visual Studio Code-kiszolgáló bitjeinek lekérésére szolgál egy beállítási szkripten keresztül.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
A Visual Studio Code-bővítmények letöltéséhez és telepítéséhez szükséges. Ezek a gazdagépek engedélyezik a Visual Studio Code Azure ML-bővítménye által biztosított számítási példányokhoz való távoli kapcsolatot. További információ: Csatlakozás Azure Machine Learning számítási példányokhoz a Visual Studio Code-ban.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* A számítási példányra telepített websocket-kiszolgáló bitjeinek lekérésére szolgál. A websocket-kiszolgáló kéréseket továbbít a Visual Studio Code-ügyféltől (asztali alkalmazás) a számítási példányon futtatott Visual Studio Code-kiszolgálóhoz.

Feljegyzés

Az Azure Machine Tanulás VS Code-bővítmény használatakor a távoli számítási példánynak nyilvános adattárakhoz kell hozzáférnie a bővítmény által igényelt csomagok telepítéséhez. Ha a számítási példányhoz proxy szükséges ezeknek a nyilvános adattáraknak vagy az internetnek a eléréséhez, a számítási példány fájljában be kell állítania és exportálnia HTTP_PROXY kell a ~/.bashrc környezeti változókatHTTPS_PROXY. Ez a folyamat a kiépítéskor automatizálható egy egyéni szkript használatával.

Ha az Azure Kubernetes Service -t (AKS) az Azure Machine Tanulás használja, engedélyezze a következő forgalmat az AKS virtuális hálózatra:

  • Az AKS-re vonatkozó általános bejövő/kimenő követelmények az Azure Kubernetes Service-ben a kimenő forgalom korlátozása című cikkben leírtak szerint.
  • Kimenő mcr.microsoft.com .
  • Modell AKS-fürtön való üzembe helyezésekor használja az ML-modellek Üzembe helyezése az Azure Kubernetes Service-ben című cikkben található útmutatást.

A tűzfalmegoldások használatáról további információt a Tűzfal használata az Azure Machine-Tanulás című témakörben talál.

A munkaterület védelme privát végponttal

Az Azure Private Link lehetővé teszi, hogy privát végpont használatával csatlakozzon a munkaterülethez. A privát végpont a virtuális hálózaton belüli privát IP-címek halmaza. Ezután korlátozhatja a munkaterülethez való hozzáférést, hogy csak a magánhálózati IP-címeken történjen. A privát végpontok csökkentik az adatkiszivárgás kockázatát.

A privát végpont munkaterülethez való konfigurálásáról további információt a Privát végpont konfigurálása című témakörben talál.

Figyelmeztetés

A munkaterület privát végpontokkal való biztonságossá tétele önmagában nem biztosítja a végpontok közötti biztonságot. A megoldás egyes összetevőinek védelméhez kövesse a jelen cikk és a VNet sorozat további lépéseit. Ha például privát végpontot használ a munkaterülethez, de az Azure Storage-fiókja nincs a virtuális hálózat mögött, a munkaterület és a tár közötti forgalom nem használja a virtuális hálózatot a biztonság érdekében.

Azure Storage-fiókok védelme

Az Azure Machine Learning olyan tárfiókokat támogat, amelyek privát végpont vagy szolgáltatásvégpont használatára vannak konfigurálva.

  1. Az Azure Portalon válassza ki az Azure Storage-fiókot.

  2. A Privát végpontok használata az Azure Storage-hoz című témakör információi alapján adjon hozzá privát végpontokat a következő tárolási erőforrásokhoz:

    Screenshot showing private endpoint configuration page with blob and file options

    Tipp.

    Ha nem az alapértelmezett tárfiókot konfigurálja, válassza ki a hozzáadni kívánt tárfióknak megfelelő cél-alforrástípust.

  3. Miután létrehozta a tárerőforrások privát végpontjait, válassza a Tárfiók Hálózatkezelés területén a Tűzfalak és virtuális hálózatok lapot.

  4. Válassza a Kijelölt hálózatok lehetőséget, majd az Erőforráspéldányok területen válassza ki Microsoft.MachineLearningServices/Workspace az erőforrástípust. Jelölje ki a munkaterületet példánynévvel. További információ: Megbízható hozzáférés a rendszer által hozzárendelt felügyelt identitás alapján.

    Tipp.

    Másik lehetőségként választhatja az Azure-szolgáltatások engedélyezése lehetőséget a megbízható szolgáltatások listájában, hogy szélesebb körben engedélyezze a hozzáférést a megbízható szolgáltatásoktól. További információ: Azure Storage-tűzfalak és virtuális hálózatok konfigurálása.

    The networking area on the Azure Storage page in the Azure portal when using private endpoint

  5. A konfiguráció mentéséhez válassza a Mentés lehetőséget.

Tipp.

Privát végpont használata esetén a névtelen hozzáférést is letilthatja. További információ: névtelen hozzáférés letiltása.

Az Azure Key Vault biztonságossá tétele

Az Azure Machine Tanulás egy társított Key Vault-példányt használ a következő hitelesítő adatok tárolására:

  • A társított tárfiók kapcsolati sztring
  • Jelszavak az Azure Container Repository-példányokhoz
  • Csatlakozás ion sztringek adattárakba

Az Azure Key Vault úgy konfigurálható, hogy privát végpontot vagy szolgáltatásvégpontot használjon. Az Azure Machine Tanulás kísérletezési képességeinek virtuális hálózat mögötti Azure Key Vaulttal való használatához kövesse az alábbi lépéseket:

Tipp.

Függetlenül attól, hogy privát végpontot vagy szolgáltatásvégpontot használ, a kulcstartónak ugyanabban a hálózaton kell lennie, mint a munkaterület privát végpontja.

A privát végpont Azure Key Vaulttal való használatával kapcsolatos információkért lásd : Key Vault integrálása az Azure Private Linkdel.

Azure Container Registry (ACR) engedélyezése

Tipp.

Ha a munkaterület létrehozásakor nem használt meglévő Azure Container Registryt, lehet, hogy nem létezik. Alapértelmezés szerint a munkaterület csak akkor hoz létre ACR-példányt, ha szüksége van rá. Az egyik létrehozásának kényszerítéséhez betaníthat vagy üzembe helyezhet egy modellt a munkaterület használatával, mielőtt az ebben a szakaszban leírt lépéseket követené.

Az Azure Container Registry konfigurálható privát végpont használatára. A következő lépésekkel konfigurálhatja a munkaterületet az ACR használatára, amikor az a virtuális hálózaton van:

  1. Keresse meg a munkaterületHez tartozó Azure Container Registry nevét az alábbi módszerek egyikével:

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

    Ha telepítette az Azure CLI-hez készült Machine Tanulás bővítményt, a az ml workspace show parancs használatával megjelenítheti a munkaterület adatait.

    az ml workspace show -w yourworkspacename -g resourcegroupname --query 'containerRegistry'
    

    Ez a parancs egy hasonló "/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}"értéket ad vissza. A sztring utolsó része a munkaterületHez tartozó Azure Container Registry neve.

  2. Korlátozza a virtuális hálózathoz való hozzáférést az Azure Container Registryhez való privát Csatlakozás lépéseivel. A virtuális hálózat hozzáadásakor válassza ki az Azure Machine Tanulás erőforrásaihoz tartozó virtuális hálózatot és alhálózatot.

  3. A munkaterület ACR-jének konfigurálása a megbízható szolgáltatások általi hozzáférés engedélyezésére.

  4. Azure Machine-Tanulás számítási fürt létrehozása. Ez a fürt Docker-rendszerképek készítésére szolgál, ha az ACR egy virtuális hálózat mögött található. További információ: Számítási fürt létrehozása.

  5. Az alábbi módszerek egyikével konfigurálhatja a munkaterületet Docker-rendszerképek számítási fürt használatával történő létrehozásához.

    Fontos

    A következő korlátozások érvényesek, ha számítási fürtöt használ a rendszerképek összeállításához:

    • Csak egy cpu-termékváltozat támogatott.
    • Ha nyilvános IP-cím nélkül konfigurált számítási fürtöt használ, meg kell adnia valamilyen módot a fürt számára a nyilvános internet eléréséhez. Internet-hozzáférésre van szükség a Microsoft Container Registryben tárolt képek, a Pypi-on telepített csomagok, a Conda stb. Konfigurálnia kell a felhasználó által definiált útválasztást (UDR), hogy elérhesse a nyilvános IP-címet az internet eléréséhez. Használhatja például a tűzfal nyilvános IP-címét, vagy használhatja a virtuális hálózati NAT-t nyilvános IP-címmel. További információ: A virtuális hálózatok biztonságos betanítása.

    A az ml workspace update parancs használatával buildszámítást állíthat be. A parancs ugyanaz a gépi tanuláshoz készült v1 és v2 Azure CLI-bővítmények esetében is. Az alábbi parancsban cserélje le myworkspace a munkaterület nevét, myresourcegroup a munkaterületet tartalmazó erőforráscsoportra és mycomputecluster a számítási fürt nevére:

    az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
    

Tipp.

Ha az ACR egy virtuális hálózat mögött található, letilthatja a nyilvános hozzáférést is.

Adattárak és adatkészletek

Az alábbi táblázat azokat a szolgáltatásokat sorolja fel, amelyek esetében ki kell hagynia az érvényesítést:

Szolgáltatás Kihagyja az ellenőrzést?
Azure Blob Storage Igen
Azure-fájlmegosztás Igen
Azure Data Lake Storage Gen1 Nem
Azure Data Lake Storage Gen2 Nem
Azure SQL Database Igen
PostgreSql Igen

Feljegyzés

Az Azure Data Lake Store Gen1 és az Azure Data Lake Store Gen2 alapértelmezés szerint kihagyja az ellenőrzést, így nem kell semmit tennie.

Az alábbi kódminta létrehoz egy új Azure Blob-adattárat, és beállítja a következőt skip_validation=True.

blob_datastore = Datastore.register_azure_blob_container(workspace=ws,  

                                                         datastore_name=blob_datastore_name,  

                                                         container_name=container_name,  

                                                         account_name=account_name, 

                                                         account_key=account_key, 

                                                         skip_validation=True ) // Set skip_validation to true

Adathalmazok használata

Az adathalmazok ellenőrzésének kihagyására szolgáló szintaxis az alábbi adathalmaztípusokhoz hasonló:

  • Tagolt fájl
  • JSON
  • Parketta
  • SQL
  • Fájl

Az alábbi kód létrehoz egy új JSON-adatkészletet és -készletet validate=False.

json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths, 

validate=False) 

Az Azure Monitor és az Alkalmazás Elemzések védelme

Az Azure Monitor és az alkalmazás Elemzések-példány hálózatelkülönítésének engedélyezéséhez kövesse az alábbi lépéseket:

  1. Nyissa meg az alkalmazás Elemzések erőforrást az Azure Portalon. Az Áttekintés lap munkaterület-tulajdonsága lehet vagy nem. Ha nem rendelkezik a tulajdonságával, hajtsa végre a 2. lépést. Ha igen, akkor közvetlenül a 3. lépésre léphet.

    Tipp.

    Az új munkaterületek alapértelmezés szerint létrehoznak egy munkaterület-alapú alkalmazást Elemzések erőforrást. Ha a munkaterület nemrég lett létrehozva, akkor nem kell elvégeznie a 2. lépést.

  2. Frissítse a munkaterület alkalmazáspéldányát Elemzések. A frissítés lépéseit a munkaterület-alapú alkalmazásbeli Elemzések-erőforrásokra való migrálás című témakörben találja.

  3. Hozzon létre egy Azure Monitor Private Link-hatókört, és adja hozzá az alkalmazás Elemzések példányt az 1. lépéstől a hatókörhöz. Ennek lépéseit az Azure Monitor privát kapcsolatának konfigurálása című témakörben találja.

Biztonságos csatlakozás a munkaterülethez

A virtuális hálózat mögött biztonságos munkaterülethez való csatlakozáshoz használja az alábbi módszerek egyikét:

  • Azure VPN Gateway – Csatlakozás helyszíni hálózatokat a virtuális hálózathoz privát kapcsolaton keresztül. Csatlakozás a nyilvános interneten keresztül történik. Kétféle VPN-átjárót használhat:

  • ExpressRoute – Csatlakozás a helyszíni hálózatokat a felhőbe privát kapcsolaton keresztül. Csatlakozás kapcsolatszolgáltató használatával történik.

  • Azure Bastion – Ebben a forgatókönyvben egy Azure-beli virtuális gépet (más néven jump boxot) hoz létre a virtuális hálózaton belül. Ezután az Azure Bastion használatával csatlakozhat a virtuális géphez. A Bastion lehetővé teszi a virtuális géphez való csatlakozást RDP- vagy SSH-munkamenet használatával a helyi webböngészőből. Ezt követően a jump boxot fogja használni fejlesztési környezetként. Mivel a virtuális hálózaton belül van, közvetlenül hozzáférhet a munkaterülethez. A jump box használatára példa: Oktatóanyag: Biztonságos munkaterület létrehozása.

Fontos

VPN-átjáró vagy ExpressRoute használatakor meg kell terveznie a névfeloldás működését a helyszíni erőforrások és a virtuális hálózatban lévők között. További információ: Egyéni DNS-kiszolgáló használata.

Ha problémái vannak a munkaterülethez való csatlakozással, olvassa el a biztonságos munkaterület-kapcsolat hibaelhárításával kapcsolatos témakört.

Munkaterület-diagnosztika

Diagnosztikát futtathat a munkaterületen az Azure Machine Tanulás studióból vagy a Python SDK-ból. A diagnosztika futtatása után a rendszer visszaadja az észlelt problémák listáját. Ez a lista a lehetséges megoldásokra mutató hivatkozásokat tartalmaz. További információ: Munkaterület-diagnosztika használata.

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: