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 aml
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:
- 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.
- (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.
- (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.
- 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.
- Az új online végpontok pontozási URI-jainak használatára invesztáló alkalmazások frissítése.
- 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égetView 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ékeketproperties.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 vagycurl
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
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>"
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.
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
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.
Adja meg a végpont nevét.
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
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
Ü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
Az üzembe helyezés állapotának lekérése.
az ml online-endpoint show -n $ENDPOINT_NAME
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
Üzembehelyezési naplók lekérése.
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
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
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_mode
lásd a hálózatelkülönítést a v2-vel.
Fontos
A letiltás v1_legacy_mode
elő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.
Ellenőrizze, hogy a
egress-public-network-access
jelző az üzembe helyezéshez tartozik-edisabled
. 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ó.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ítvaApproved
. 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
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.
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.
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
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>
.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.
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
Ellenőrizze a DNS-konfigurációt a Kubernetes-fürtben.
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"
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.
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
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
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
: .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.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>
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
- Hálózatelkülönítés felügyelt online végpontokkal
- Munkaterület kezelt hálózati elkülönítés
- Oktatóanyag: Biztonságos munkaterület létrehozása
- Biztonságos bevezetés online végpontokhoz
- Azure-erőforrások elérése online végponttal és felügyelt identitással
- Online végpontok üzembe helyezésének hibaelhárítása