Ügyfelek hitelesítése online végpontokhoz
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)
Python SDK azure-ai-ml v2 (aktuális)
Ez a cikk bemutatja, hogyan hitelesítheti az ügyfeleket a vezérlősík- és adatsík-műveletek online végpontokon való végrehajtásához.
A vezérlősík-művelet vezérli a végpontot, és módosítja azt. A vezérlősík-műveletek közé tartozik a létrehozási, olvasási, frissítési és törlési (CRUD) műveletek az online végpontokon és az online üzemelő példányokon.
Az adatsík-műveletek az adatokat használják az online végpontokkal való interakcióhoz a végpont módosítása nélkül. Egy adatsík-művelet például egy pontozási kérés online végpontnak való elküldését és a válasz lekérését jelentheti.
Előfeltételek
A cikkben ismertetett lépések végrehajtása előtt győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, a gyorsútmutató lépéseit követve hozzon létre egyet a munkaterület erőforrásainak létrehozása című cikkben.
Az Azure CLI és a
ml
bővítmény vagy az Azure Machine Learning Python SDK v2:Az Azure CLI és a bővítmény telepítéséhez lásd a parancssori felület (v2) telepítését, beállítását és használatát.
Fontos
A jelen 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.
A Python SDK v2 telepítéséhez használja a következő parancsot:
pip install azure-ai-ml azure-identity
Ha frissíteni szeretné az SDK meglévő telepítését a legújabb verzióra, használja a következő parancsot:
pip install --upgrade azure-ai-ml azure-identity
További információ: Az Azure Machine Learninghez készült Python SDK v2 telepítése.
Felhasználói identitás előkészítése
Szüksége van egy felhasználói identitásra a vezérlősík műveleteinek (azaz CRUD-műveleteknek) és az adatsík-műveleteknek (azaz pontozási kérések küldésének) az online végponton történő végrehajtásához. Ugyanazt a felhasználói identitást vagy eltérő felhasználói identitást használhatja a vezérlősík és az adatsík műveleteihez. Ebben a cikkben ugyanazt a felhasználói identitást használja a vezérlősík és az adatsík műveleteihez is.
Ha a Microsoft Entra ID alatt szeretne felhasználói identitást létrehozni, olvassa el a Hitelesítés beállítása című témakört. Később szüksége lesz az identitásazonosítóra.
Engedélyek hozzárendelése az identitáshoz
Ebben a szakaszban engedélyeket rendel a végponttal való interakcióhoz használt felhasználói identitáshoz. Először használjon beépített szerepkört, vagy hozzon létre egy egyéni szerepkört. Ezt követően hozzárendeli a szerepkört a felhasználói identitáshoz.
Beépített szerepkör használata
A AzureML Data Scientist
beépített szerepkör végpontok és üzemelő példányok kezelésére és használatára használható, és helyettesítő karaktereket használ a vezérlősík RBAC-műveleteinek belefoglalásához:
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action
és a következő adatsík RBAC-műveletének belefoglalása:
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action
Azure Machine Learning Workspace Connection Secrets Reader
A beépített szerepkör használható a munkaterület-kapcsolatok titkos kulcsainak elérésére, és az alábbi RBAC-műveleteket tartalmazza:
Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action
Microsoft.MachineLearningServices/workspaces/metadata/secrets/read
Ha ezeket a beépített szerepköröket használja, ebben a lépésben nincs szükség műveletre.
(Nem kötelező) Egyéni szerepkör létrehozása
Ezt a lépést kihagyhatja, ha beépített szerepköröket vagy más előre elkészített egyéni szerepköröket használ.
Az egyéni szerepkörök hatókörének és műveleteinek meghatározása a szerepkörök JSON-definícióinak létrehozásával. Az alábbi szerepkördefiníció például lehetővé teszi, hogy a felhasználó egy online végpontot crudáljon egy adott munkaterületen.
custom-role-for-control-plane.json:
{ "Name": "Custom role for control plane operations - online endpoint", "IsCustom": true, "Description": "Can CRUD against online endpoints.", "Actions": [ "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action" ], "NotActions": [ ], "AssignableScopes": [ "/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>" ] }
Az alábbi szerepkördefiníció lehetővé teszi, hogy a felhasználó pontozási kéréseket küldjön egy online végpontnak egy megadott munkaterületen.
custom-role-for-scoring.json:
{ "Name": "Custom role for scoring - online endpoint", "IsCustom": true, "Description": "Can score against online endpoints.", "Actions": [ "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/action" ], "NotActions": [ ], "AssignableScopes": [ "/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>" ] }
Egyéni szerepkörök létrehozása a JSON-definíciókkal:
az role definition create --role-definition custom-role-for-control-plane.json --subscription <subscriptionId> az role definition create --role-definition custom-role-for-scoring.json --subscription <subscriptionId>
Feljegyzés
Egyéni szerepkörök létrehozásához három szerepkör egyikére van szükség:
- tulajdonos
- felhasználói hozzáférés rendszergazdája
- egyéni szerepkör engedélyekkel
Microsoft.Authorization/roleDefinitions/write
(egyéni szerepkörök létrehozásához/frissítéséhez/törléséhez) ésMicrosoft.Authorization/roleDefinitions/read
engedélyekkel (egyéni szerepkörök megtekintéséhez).
Az egyéni szerepkörök létrehozásával kapcsolatos további információkért tekintse meg az Azure-ra vonatkozó egyéni szerepköröket.
Ellenőrizze a szerepkördefiníciót:
az role definition list --custom-role-only -o table az role definition list -n "Custom role for control plane operations - online endpoint" az role definition list -n "Custom role for scoring - online endpoint" export role_definition_id1=`(az role definition list -n "Custom role for control plane operations - online endpoint" --query "[0].id" | tr -d '"')` export role_definition_id2=`(az role definition list -n "Custom role for scoring - online endpoint" --query "[0].id" | tr -d '"')`
Szerepkör hozzárendelése az identitáshoz
Ha a beépített szerepkört
AzureML Data Scientist
használja, a következő kóddal rendelje hozzá a szerepkört a felhasználói identitáshoz.az role assignment create --assignee <identityId> --role "AzureML Data Scientist" --scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
Ha a beépített szerepkört használja
Azure Machine Learning Workspace Connection Secrets Reader
, a következő kóddal rendelje hozzá a szerepkört a felhasználói identitáshoz.az role assignment create --assignee <identityId> --role "Azure Machine Learning Workspace Connection Secrets Reader" --scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
Ha egyéni szerepkört használ, a következő kóddal rendelje hozzá a szerepkört a felhasználói identitáshoz.
az role assignment create --assignee <identityId> --role "Custom role for control plane operations - online endpoint" --scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName> az role assignment create --assignee <identityId> --role "Custom role for scoring - online endpoint" --scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
Feljegyzés
Ha egyéni szerepköröket szeretne hozzárendelni a felhasználói identitáshoz, három szerepkör egyikére van szüksége:
- tulajdonos
- felhasználói hozzáférés rendszergazdája
- egy egyéni szerepkör, amely engedélyezi
Microsoft.Authorization/roleAssignments/write
az engedélyeket (egyéni szerepkörök hozzárendelését) ésMicrosoft.Authorization/roleAssignments/read
(a szerepkör-hozzárendelések megtekintését).
További információ a különböző Azure-szerepkörökről és azok engedélyeiről: Azure-szerepkörök és Azure-szerepkörök hozzárendelése az Azure Portal használatával.
Erősítse meg a szerepkör-hozzárendelést:
az role assignment list --scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
A Microsoft Entra-jogkivonat beszerzése vezérlősík-műveletekhez
Ezt a lépést akkor hajtsa végre, ha a vezérlősík-műveleteket a REST API-val tervezi végrehajtani, amely közvetlenül a jogkivonatot fogja használni.
Ha más módszereket, például az Azure Machine Learning CLI -t (v2), a Python SDK-t (v2) vagy az Azure Machine Learning Studiót szeretné használni, nem kell manuálisan beszereznie a Microsoft Entra-jogkivonatot. A bejelentkezés során a rendszer már hitelesíti a felhasználói identitást, és a jogkivonat automatikusan lekéri és átadja Önnek.
Az Azure-erőforrásvégpontról lekérheti a vezérlősík műveleteihez szükséges Microsoft Entra-jogkivonatot: https://management.azure.com
.
Jelentkezzen be az Azure-ba.
az login
Ha egy adott identitást szeretne használni, az alábbi kóddal jelentkezzen be az identitással:
az login --identity --username <identityId>
Ezzel a környezettel szerezheti be a jogkivonatot.
export CONTROL_PLANE_TOKEN=`(az account get-access-token --resource https://management.azure.com --query accessToken | tr -d '"')`
(Nem kötelező) A Microsoft Entra-jogkivonat erőforrásvégpontjának és ügyfélazonosítójának ellenőrzése
A Microsoft Entra-jogkivonat lekérése után ellenőrizheti, hogy a jogkivonat a megfelelő Azure-erőforrásvégponthoz management.azure.com
és a megfelelő ügyfél-azonosítóhoz tartozik-e a jogkivonat jwt.ms keresztül történő dekódolásával, amely json-választ ad vissza a következő információkkal:
{
"aud": "https://management.azure.com",
"oid": "<your-object-id>"
}
Végpont létrehozása
Az alábbi példa egy rendszer által hozzárendelt identitással (SAI) hozza létre a végpontot végponti identitásként. A végpontok felügyelt identitásának alapértelmezett identitástípusa az SAI. A rendszer automatikusan hozzárendel néhány alapvető szerepkört az SAI-hoz. A rendszer által hozzárendelt identitás szerepkör-hozzárendeléséről további információt a végponti identitás automatikus szerepkör-hozzárendelése című témakörben talál.
A parancssori felület nem követeli meg, hogy explicit módon adja meg a vezérlősík jogkivonatát. Ehelyett a parancssori felület az login
hitelesíti Önt a bejelentkezés során, és a rendszer automatikusan lekéri és átadja Önnek a jogkivonatot.
Hozzon létre egy végpontdefiníciós YAML-fájlt.
endpoint.yml:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json name: my-endpoint auth_mode: aad_token
Lecserélheti
auth_mode
key
a kulcsok hitelesítésére vagyaml_token
az Azure Machine Learning-jogkivonat hitelesítésére. Ebben a példában a Microsoft Entra-jogkivonat hitelesítését használjaaad_token
.az ml online-endpoint create -f endpoint.yml
Ellenőrizze a végpont állapotát:
az ml online-endpoint show -n my-endpoint
Ha felül szeretné bírálni
auth_mode
(például: )aad_token
egy végpont létrehozásakor, futtassa a következő kódot:az ml online-endpoint create -n my-endpoint --auth_mode aad_token
Ha frissíteni szeretné a meglévő végpontot, és meg szeretné adni
auth_mode
(például erreaad_token
), futtassa a következő kódot:az ml online-endpoint update -n my-endpoint --set auth_mode=aad_token
Üzembe helyezés létrehozása
Üzembe helyezés létrehozásához lásd : Ml-modell üzembe helyezése online végponttal , vagy a MODELL üzembe helyezése REST használatával online végpontként. Nincs különbség abban, hogyan hozhat létre üzembe helyezéseket a különböző hitelesítési módokhoz.
Az alábbi kód egy példa az üzembe helyezés létrehozására. Az online végpontok üzembe helyezésével kapcsolatos további információkért lásd : Ml-modell üzembe helyezése online végponttal (cli-n keresztül)
Hozzon létre egy üzembehelyezési definíciós YAML-fájlt.
blue-deployment.yml:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: blue endpoint_name: my-aad-auth-endp1 model: path: ../../model-1/model/ code_configuration: code: ../../model-1/onlinescoring/ scoring_script: score.py environment: conda_file: ../../model-1/environment/conda.yml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: Standard_DS3_v2 instance_count: 1
Hozza létre az üzembe helyezést a YAML-fájllal. Ebben a példában állítsa be az összes forgalmat az új üzembe helyezésre.
az ml online-deployment create -f blue-deployment.yml --all-traffic
A végpont pontozási URI-jának lekérése
Ha a parancssori felület használatával szeretné meghívni a végpontot, nem kell explicit módon lekérnie a pontozási URI-t, mivel a parancssori felület kezeli Az Ön számára. A parancssori felülettel azonban továbbra is lekérheti a pontozási URI-t, így más csatornákkal, például a REST API-val is használhatja.
scoringUri=$(az ml online-endpoint show -n my-endpoint --query "scoring_uri")
Adatsík-műveletek kulcsának vagy jogkivonatának lekérése
Egy kulcs vagy jogkivonat adatsík-műveletekhez használható, annak ellenére, hogy a kulcs vagy a jogkivonat lekérésének folyamata vezérlősík-művelet. Más szóval egy vezérlősík-jogkivonatot használ az adatsík műveleteinek végrehajtásához később használt kulcs vagy jogkivonat lekéréséhez.
A kulcs vagy az Azure Machine Learning-jogkivonat lekéréséhez a megfelelő szerepkört kell hozzárendelni az azt kérő felhasználói identitáshoz a vezérlősík műveleteinek engedélyezésében leírtak szerint. A Microsoft Entra-jogkivonat beszerzése nem igényel további szerepköröket a felhasználói identitáshoz.
Ha a parancssori felület használatával szeretné meghívni a végpontot, nem kell explicit módon lekérnie az adatsík műveleteihez szükséges kulcsokat vagy jogkivonatokat, mivel a parancssori felület kezeli. A parancssori felülettel azonban továbbra is lekérheti az adatsík-művelethez szükséges kulcsokat vagy jogkivonatokat, hogy más csatornákkal, például a REST API-val is használhassa.
Az adatsík-műveletek kulcsainak vagy jogkivonatának lekéréséhez használja az az ml online-endpoint get-credentials parancsot. Ez a parancs egy JSON-kimenetet ad vissza, amely tartalmazza a kulcsokat, a jogkivonatot és/vagy a további információkat.
Tipp.
Ha egy adott információt szeretne kinyerni a JSON-kimenetből, a --query
parancssori felület parancs paraméterét használja példaként. Ehhez azonban bármilyen megfelelő eszközt használhat.
Mikor auth_mode
van a végpont key
- A rendszer visszaadja a kulcsokat a
primaryKey
mezőkbensecondaryKey
.
export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query primaryKey)
export DATA_PLANE_TOKEN2=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query secondaryKey)
Mikor auth_mode
van a végpont aml_token
- A jogkivonat a
accessToken
mezőben lesz visszaadva. - A jogkivonat lejárati ideje a
expiryTimeUtc
mezőben lesz visszaadva. - A jogkivonat frissítési ideje a
refreshAfterTimeUtc
mezőben lesz visszaadva.
export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query accessToken)
export EXPIRY_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query expiryTimeUtc)
export REFRESH_AFTER_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query refreshAfterTimeUtc)
Mikor auth_mode
van a végpont aad_token
- A jogkivonat a
accessToken
mezőben lesz visszaadva. - A jogkivonat lejárati ideje a
expiryTimeUtc
mezőben lesz visszaadva.
export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query accessToken)
export EXPIRY_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query expiryTimeUtc)
A Microsoft Entra-jogkivonat erőforrásvégpontjának és ügyfélazonosítójának ellenőrzése
Az Entra-jogkivonat lekérése után ellenőrizheti, hogy a jogkivonat a megfelelő Azure-erőforrásvégponthoz ml.azure.com
és a megfelelő ügyfél-azonosítóhoz tartozik-e a jogkivonat jwt.ms keresztül történő dekódolásával, amely json-választ ad vissza az alábbi információkkal:
{
"aud": "https://ml.azure.com",
"oid": "<your-object-id>"
}
Adatok pontozása a kulcs vagy a jogkivonat használatával
A végpontokhoz kulcs, Azure Machine Learning-jogkivonat vagy Microsoft Entra-jogkivonat használható az ml online-endpoint invoke
. A parancssori felület automatikusan kezeli a kulcsot vagy a jogkivonatot, így önnek nem kell explicit módon átadnia.
az ml online-endpoint invoke -n my-endpoint -r request.json
Forgalom naplózása és figyelése
Ha engedélyezni szeretné a forgalomnaplózást a végpont diagnosztikai beállításaiban, kövesse a naplók engedélyezésének/letiltásának lépéseit.
Ha a diagnosztikai beállítás engedélyezve van, a táblában megtekintheti a AmlOnlineEndpointTrafficLogs
hitelesítési módot és a felhasználói identitást.