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


Felügyelt online végpontok védelme hálózati elkülönítéssel

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Ebben a cikkben hálózatelkülönítést fog használni egy felügyelt online végpont védelméhez. Létrehoz egy felügyelt online végpontot, amely egy Azure Machine Learning-munkaterület privát végpontját használja a bejövő kommunikáció biztonságossá tételéhez. A munkaterületet egy felügyelt virtuális hálózattal is konfigurálja, amely csak jóváhagyott kimenő kommunikációt tesz lehetővé az üzemelő példányok számára. Végül létre fog hozni egy üzembe helyezést, amely a munkaterület felügyelt virtuális hálózatának privát végpontjait használja a kimenő kommunikációhoz.

Az örökölt módszert a hálózatelkülönítéshez használó példákért tekintse meg az üzembehelyezési fájlokat deploy-moe-vnet-legacy.sh (általános modell használatával történő üzembe helyezéshez) és deploy-moe-vnet-mlflow-legacy.sh (MLflow-modell használatával történő üzembe helyezéshez) az azureml-példák GitHub-adattárában.

Előfeltételek

  • Az Azure Machine Learning használatához Azure-előfizetéssel kell rendelkeznie. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki ma az Azure Machine Learning ingyenes vagy fizetős verzióját.

  • Telepítse és konfigurálja az Azure CLI-t és az ml Azure CLI-bővítményt. További információ: A parancssori felület (v2) telepítése, beállítása és használata.

    Tipp.

    Az Azure Machine Learning által felügyelt virtuális hálózatot 2023. május 23-án vezették be. Ha rendelkezik az ml-bővítmény régebbi verziójával, előfordulhat, hogy frissítenie kell, hogy a cikkben szereplő példák működjenek. A bővítmény frissítéséhez használja a következő Azure CLI-parancsot:

    az extension update -n ml
    
  • A cikkben szereplő CLI-példák feltételezik, hogy a Bash (vagy kompatibilis) rendszerhéjat használja. Például linuxos rendszerből vagy Linuxos Windows-alrendszer.

  • Rendelkeznie kell egy Azure-erőforráscsoporttal, amelyben Önnek (vagy a használt szolgáltatásnévnek) hozzáféréssel kell rendelkeznie Contributor . Ha konfigurálta a ml bővítményt, akkor egy ilyen erőforráscsoportot fog létrehozni.

  • Ha felhasználó által hozzárendelt felügyelt identitást szeretne használni az online végpontok és az online üzemelő példányok létrehozásához és kezeléséhez, az identitásnak megfelelő engedélyekkel kell rendelkeznie. A szükséges engedélyekkel kapcsolatos részletekért lásd : Szolgáltatáshitelesítés beállítása. Az identitáshoz például hozzá kell rendelnie a megfelelő RBAC-engedélyt az Azure Key Vaulthoz.

Migrálás az örökölt hálózatelkülönítési módszerről a munkaterület által felügyelt virtuális hálózatra

Ha korábban az örökölt módszert használta a felügyelt online végpontok hálózatelkülönítéséhez, és a végpontok védelme érdekében munkaterület által felügyelt virtuális hálózatra szeretne migrálni, kövesse az alábbi lépéseket:

  1. Hozzon létre egy új munkaterületet, és engedélyezze a felügyelt virtuális hálózatot. A felügyelt hálózat munkaterülethez való konfigurálásáról további információt a Munkaterület felügyelt virtuális hálózat elkülönítése című témakörben talál.
  2. (Nem kötelező) A munkaterület hálózati beállításánál adja hozzá a privát végpontok típusával rendelkező kimenő szabályokat, ha az üzemelő példányoknak további privát erőforrásokhoz kell hozzáférnie, kivéve a tárfiókot, az Azure Key Vaultot és a munkaterülethez társított Azure Container Registryt (ACR), amelyek alapértelmezés szerint hozzáadva vannak.
  3. (Nem kötelező) Ha Azure Machine Learning-adatbázisokat kíván használni, konfiguráljon privát végpontokat a regisztrációs adatbázissal, a tárfiókjával és az Azure Container Registry-beli kimenő kommunikációhoz.
  4. Hozzon létre online végpontokat/ üzembe helyezéseket az új munkaterületen. Az Azure Machine Learning-regisztrációs adatbázisokat közvetlenül üzembe helyezheti tőlük. További információ: Üzembe helyezés a beállításjegyzékből.
  5. Az új online végpontok pontozási URI-jainak használatára invesztáló alkalmazások frissítése.
  6. Az ellenőrzés után törölje az online végpontokat a régi munkaterületről.

Ha nem kell fenntartania a számításokat, vagy nem kell fenntartania az online végpontokat és üzembe helyezéseket a régi munkaterületen, hogy állásidő nélkül szolgálhasson, egyszerűen törölheti a meglévő munkaterület összes számítását, és frissítheti a munkaterületet a munkaterület felügyelt virtuális hálózatának engedélyezéséhez.

Korlátozások

  • A v1_legacy_mode jelzőt le kell tiltani (hamis) az Azure Machine Learning-munkaterületen. A felügyelt online végpont létrehozása nem lehetséges, amíg ez a jelző engedélyezve van. További információ: Hálózatelkülönítés v2 API-val.

  • Ha az Azure Machine Learning-munkaterületen 2022. május 24. előtt létrehozott privát végpont van, akkor az online végpontok privát végpont használatára való konfigurálása előtt újra létre kell hoznia a munkaterület privát végpontját. További információ a privát végpont létrehozásáról munkaterület számára: Privát végpont konfigurálása Azure Machine Learning-munkaterület számára.

    Tipp.

    A munkaterület létrehozásának ellenőrzéséhez ellenőrizze a munkaterület tulajdonságait.

    A Studióban lépjen a Directory + Subscription + Workspace szakaszra (a Studio jobb felső sarkában), és válassza a lehetőséget View all properties in Azure Portal. Válassza ki a JSON nézetet az Áttekintés lap jobb felső sarkában, majd válassza ki a legújabb API-verziót. Ezen a lapon ellenőrizheti az értékeket properties.creationTime.

    Másik lehetőségként használhatja az ml workspace show a parancssori felülettel, my_ml_client.workspace.get("my-workspace-name") az SDK-val vagy curl a REST API-val rendelkező munkaterületen.

  • Ha online végpontokkal használ hálózati elkülönítést, a munkaterülethez társított erőforrásokat (Azure Container Registry (ACR), Storage-fiókot, Key Vaultot és Application Insightst) a munkaterületétől eltérő erőforráscsoportból használhatja. Ezeknek az erőforrásoknak azonban ugyanahhoz az előfizetéshez és bérlőhöz kell tartoznia, mint a munkaterületnek.

Feljegyzés

A cikkben ismertetett hálózatelkülönítés az adatsík-műveletekre, vagyis a pontozási kérelmekből (vagy modellkiszolgálókból) származó műveletekre vonatkozik. A vezérlősík műveleteit (például a hitelesítési kulcsok létrehozására, frissítésére, törlésére vagy lekérésére irányuló kéréseket) a rendszer a nyilvános hálózaton keresztül küldi el az Azure Resource Managernek.

A rendszer előkészítése

  1. Hozza létre a példában használt környezeti változókat az alábbi parancsok futtatásával. Cserélje le <YOUR_WORKSPACE_NAME> a munkaterülethez használandó névre. Cserélje le <YOUR_RESOURCEGROUP_NAME> a munkaterületet tartalmazó erőforráscsoportra.

    Tipp.

    új munkaterület létrehozása előtt létre kell hoznia egy Azure-erőforráscsoportot, amely tartalmazza azt. További információ: Azure-erőforráscsoportok kezelése.

    export RESOURCEGROUP_NAME="<YOUR_RESOURCEGROUP_NAME>"
    export WORKSPACE_NAME="<YOUR_WORKSPACE_NAME>"
    
  2. Hozza létre a munkaterületet. A -m allow_only_approved_outbound paraméter konfigurál egy felügyelt virtuális hálózatot a munkaterülethez, és letiltja a kimenő forgalmat, kivéve a jóváhagyott célhelyeket.

    az ml workspace create -g $RESOURCEGROUP_NAME -n $WORKSPACE_NAME -m allow_only_approved_outbound
    

    Ha azt szeretné, hogy az üzemelő példány kimenő forgalmat küldjön az internetre, bontsa ki a következő kódot, és futtassa helyette.

    # az ml workspace create -g $RESOURCEGROUP_NAME -n $WORKSPACE_NAME -m allow_internet_outbound
    

    További információ arról, hogyan hozhat létre új munkaterületet, vagy hogyan frissítheti a meglévő munkaterületet egy rugalmas virtuális hálózat használatára, olvassa el a Felügyelt virtuális hálózat konfigurálása az internet kimenő forgalmának engedélyezéséhez című témakört.

    Ha a munkaterület privát végponttal van konfigurálva, a munkaterület Azure Container Registry-jének prémium szintűre kell konfigurálnia, hogy a privát végponton keresztül engedélyezze a hozzáférést. További információ: az Azure Container Registry szolgáltatásszintjei. Emellett a munkaterületet a tulajdonsággal együtt kell beállítani, mivel az image_build_compute üzembe helyezéshez képeket kell létrehozni. További információ: Kép buildek konfigurálása.

    Fontos

    Ha a munkaterület felügyelt virtuális hálózata először van beállítva egy munkaterülethez, a hálózat még nincs kiépítve. Mielőtt online üzembe helyezéseket hoz létre, hozza létre a hálózatot a felügyelt hálózat manuális kiépítésére vonatkozó útmutatót követve. Az online üzembe helyezéseket a rendszer a felügyelt hálózat kiépítéséig elutasítja.

  3. Konfigurálja a parancssori felület alapértelmezett értékeit, hogy ne adja meg többször a munkaterület és az erőforráscsoport értékeit.

    az configure --defaults workspace=$WORKSPACE_NAME group=$RESOURCEGROUP_NAME
    
  4. Klónozza a példák adattárát a végpont és az üzembe helyezés példafájljainak lekéréséhez, majd nyissa meg az adattár könyvtárát /cli .

    git clone --depth 1 https://github.com/Azure/azureml-examples
    cd /cli
    

Az oktatóanyagban szereplő parancsok a deploy-managed-online-endpoint-workspacevnet.sh könyvtár fájljában cli találhatók, a YAML konfigurációs fájljai pedig az endpoints/online/managed/sample/ alkönyvtárban találhatók.

Biztonságos felügyelt online végpont létrehozása

Biztonságos online felügyelt végpont létrehozásához hozza létre a végpontot a munkaterületen, és állítsa be a végpontot public_network_access disabled a bejövő kommunikáció szabályozására. A végpontnak ezután a munkaterület privát végpontját kell használnia a bejövő kommunikációhoz.

Mivel a munkaterület felügyelt virtuális hálózatra van konfigurálva, a végpont minden üzemelő példánya a felügyelt virtuális hálózat privát végpontjait fogja használni a kimenő kommunikációhoz.

  1. Adja meg a végpont nevét.

    export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
    
  2. Hozzon létre egy végpontot public_network_access letiltva a bejövő forgalom blokkolásához.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml --set public_network_access=disabled
    

    Ha letiltja a végpont nyilvános hálózati hozzáférését, a végpont meghívásának egyetlen módja egy privát végpont használata, amely hozzáfér a munkaterülethez a virtuális hálózaton. További információkért tekintse meg a biztonságos bejövő pontozási kérelmeket , és konfiguráljon egy privát végpontot egy Azure Machine Learning-munkaterülethez.

    Másik lehetőségként, ha engedélyezni szeretné a végpontnak, hogy pontozási kéréseket fogadjon az internetről, bontsa ki a következő kódot, és futtassa helyette.

    # az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  3. Üzembe helyezés létrehozása a munkaterület által felügyelt virtuális hálózaton.

    az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic
    
  4. Az üzembe helyezés állapotának lekérése.

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  5. Tesztelje a végpontot egy pontozási kéréssel a parancssori felület használatával.

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  6. Üzembehelyezési naplók lekérése.

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    
  7. Ha már nincs rá szüksége, törölje a végpontot.

    az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait
    
  8. Törölje a cikkben létrehozott összes erőforrást. Cserélje le <resource-group-name> a példában használt erőforráscsoport nevére:

    az group delete --resource-group <resource-group-name>
    

Hibaelhárítás

Az online végpont létrehozása meghiúsul a következő üzenettel: V1LegacyMode == true

Konfigurálhatja az Azure Machine Learning-munkaterületet v1_legacy_mode, amely letiltja a v2 API-kat. A felügyelt online végpontok a v2 API platform egyik funkciója, és nem működnek, ha v1_legacy_mode engedélyezve vannak a munkaterületen.

A letiltásról v1_legacy_modelásd a hálózatelkülönítést a v2-vel.

Fontos

A letiltás v1_legacy_modeelőtt forduljon a hálózati biztonsági csapathoz, mert lehetséges, hogy valamilyen okból engedélyezték.

Az online végpont kulcsalapú hitelesítéssel való létrehozása meghiúsul

Az alábbi paranccsal listázhatja a munkaterület azure-kulcstartójának hálózati szabályait. Cserélje le <keyvault-name> a kulcstartó nevére:

az keyvault network-rule list -n <keyvault-name>

A parancs válasza hasonló a következő JSON-kódhoz:

{
    "bypass": "AzureServices",
    "defaultAction": "Deny",
    "ipRules": [],
    "virtualNetworkRules": []
}

Ha az érték bypass nemAzureServices, a Key Vault hálózati beállításainak konfigurálásához használja az útmutatótAzureServices.

Az online üzemelő példányok egy rendszerkép letöltésével kapcsolatos hibaüzenettel meghiúsulnak

Feljegyzés

Ez a probléma akkor érvényes, ha a felügyelt online végpontokhoz az örökölt hálózatelkülönítési módszert használja, amelyben az Azure Machine Learning egy felügyelt virtuális hálózatot hoz létre minden egyes üzembe helyezéshez egy végpont alatt.

  1. Ellenőrizze, hogy a egress-public-network-access jelző az üzembe helyezéshez tartozik-e disabled . Ha ez a jelző engedélyezve van, és a tárolóregisztrációs adatbázis láthatósága privát, ez a hiba várható.

  2. A privát végpontkapcsolat állapotának ellenőrzéséhez használja az alábbi parancsot. Cserélje le <registry-name> a munkaterület azure-tárolóregisztrációs adatbázisának nevére:

    az acr private-endpoint-connection list -r <registry-name> --query "[?privateLinkServiceConnectionState.description=='Egress for Microsoft.MachineLearningServices/workspaces/onlineEndpoints'].{Name:name, status:privateLinkServiceConnectionState.status}"
    

    A válaszkódban ellenőrizze, hogy a status mező be van-e állítva Approved. Ha nem, a következő paranccsal hagyja jóvá. Cserélje le <private-endpoint-name> az előző parancsból visszaadott névre.

    az network private-endpoint-connection approve -n <private-endpoint-name>
    

A pontozási végpont nem oldható fel

  1. Ellenőrizze, hogy a pontozási kérelmet kiállító ügyfél egy olyan virtuális hálózat-e, amely hozzáfér az Azure Machine Learning-munkaterülethez.

  2. nslookup A végpont állomásneve parancsával kérje le az IP-cím adatait, például:

    nslookup endpointname.westcentralus.inference.ml.azure.com
    

    A válasz egy címet tartalmaz, amely a virtuális hálózat által megadott tartományban kell lennie.

    Feljegyzés

    • Kubernetes online végpont esetén a végpont gazdagépneve a Kubernetes-fürtben megadott CName (tartománynév).
    • Ha a végpont HTTP, az IP-cím a végpont URI-jában található, amelyet a studio felhasználói felületéről szerezhet be.
    • A végpont IP-címének lekérésére további módszereket is találhat a Biztonságos Kubernetes online végpontján.
  3. Ha a nslookup parancs nem oldja fel a gazdagép nevét, hajtsa végre a következő műveleteket:

Felügyelt online végpontok

  1. Az alábbi paranccsal ellenőrizheti, hogy létezik-e A rekord a virtuális hálózat privát tartománynév-kiszolgálójának (DNS) zónájában.

    az network private-dns record-set list -z privatelink.api.azureml.ms -o tsv --query [].name
    

    Az eredményeknek a következőhöz hasonló bejegyzést kell tartalmazniuk *.<GUID>.inference.<region>.

  2. Ha nem ad vissza következtetési értéket, törölje a munkaterület privát végpontját, majd hozza létre újra. További információ: Privát végpont konfigurálása.

  3. Ha a privát végponttal rendelkező munkaterület egyéni DNS-kiszolgálót használ, futtassa az alábbi parancsot annak ellenőrzéséhez, hogy az egyéni DNS-ből származó feloldás megfelelően működik-e.

dig endpointname.westcentralus.inference.ml.azure.com

Online Kubernetes-végpontok

  1. Ellenőrizze a DNS-konfigurációt a Kubernetes-fürtben.

  2. Ellenőrizze azt is, hogy az azureml-fe a várt módon működik-e a következő paranccsal:

    kubectl exec -it deploy/azureml-fe -- /bin/bash
    (Run in azureml-fe pod)
    
    curl -vi -k https://localhost:<port>/api/v1/endpoint/<endpoint-name>/swagger.json
    "Swagger not found"
    

    HTTP esetén használja a következő parancsot:

     curl https://localhost:<port>/api/v1/endpoint/<endpoint-name>/swagger.json
    "Swagger not found"
    
  3. Ha a curl HTTP-k sikertelenek vagy időtúllépést jeleznek, de a HTTP működik, ellenőrizze, hogy a tanúsítvány érvényes-e.

  4. Ha az előző folyamat nem oldható fel az A rekordra, ellenőrizze, hogy a feloldás működik-e az Azure DNS-ből (168.63.129.16).

    dig @168.63.129.16 endpointname.westcentralus.inference.ml.azure.com
    
  5. Ha az előző parancs sikeres, az egyéni DNS-en található privát hivatkozás feltételes továbbítójának hibaelhárítása.

Az online üzemelő példányok nem pontozhatók

  1. Futtassa a következő parancsot annak megtekintéséhez, hogy az üzembe helyezés sikeres volt-e:

    az ml online-deployment show -e <endpointname> -n <deploymentname> --query '{name:name,state:provisioning_state}' 
    

    Ha az üzembe helyezés sikeresen befejeződött, az érték state a következő Succeeded: .

  2. Ha az üzembe helyezés sikeres volt, az alábbi paranccsal ellenőrizze, hogy a forgalom hozzá van-e rendelve az üzemelő példányhoz. Cserélje le <endpointname> a végpont nevére.

    az ml online-endpoint show -n <endpointname>  --query traffic
    

    A parancs válaszának fel kell sorolnia az üzemelő példányokhoz rendelt forgalom százalékos arányát.

    Tipp.

    Ez a lépés nem szükséges, ha a azureml-model-deployment kérés fejlécét használja az üzemelő példány megcélzásához.

  3. Ha a forgalom-hozzárendelések vagy az üzembehelyezési fejléc helyesen van beállítva, az alábbi paranccsal kérje le a végpont naplóit. Cserélje le <endpointname> a végpont nevére és <deploymentname> az üzembe helyezésre.

    az ml online-deployment get-logs  -e <endpointname> -n <deploymentname> 
    
  4. Tekintse át a naplókat, és ellenőrizze, hogy probléma van-e a pontozási kód futtatásával, amikor kérelmet küld az üzembe helyezéshez.

Következő lépések