Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
É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
Egy Azure Machine Learning-munkaterület. A munkaterület létrehozásának utasításait a munkaterület létrehozása című témakörben találja.
Az Azure CLI és a
ml
bővítmény vagy az Azure Machine Learning Python SDK v2:Az Azure CLI és a
ml
bővítmény telepítéséhez lásd a parancssori felület (v2) telepítését és beállítását.A cikkben szereplő példák feltételezik, hogy Bash shellt vagy kompatibilis shellt használ. Használhat például egy parancssort Linux rendszeren vagy Windows alrendszert Linuxhoz.
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 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 bekapcsolása című témakörben leírt lépéseket.
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.