Autentisering för hanterade onlineslutpunkter
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
Den här artikeln beskriver begreppen identitet och behörighet i kontexten för onlineslutpunkter. Vi börjar med en diskussion om Microsoft Entra-ID:er som stöder Azure RBAC. Beroende på syftet med Microsoft Entra-identiteten refererar vi till den antingen som en användaridentitet eller en slutpunktsidentitet.
En användaridentitet är ett Microsoft Entra-ID som du kan använda för att skapa en slutpunkt och dess distributioner eller använda för att interagera med slutpunkter eller arbetsytor. Med andra ord kan en identitet betraktas som en användaridentitet om den skickar begäranden till slutpunkter, distributioner eller arbetsytor. Användaridentiteten skulle behöva rätt behörigheter för att utföra kontrollplans- och dataplansåtgärder på slutpunkterna eller arbetsytorna.
En slutpunktsidentitet är ett Microsoft Entra-ID som kör användarcontainern i distributioner. Med andra ord, om identiteten är associerad med slutpunkten och används för användarcontainern för distributionen kallas den för en slutpunktsidentitet. Slutpunktsidentiteten skulle också behöva rätt behörigheter för att användarcontainern ska kunna interagera med resurser efter behov. Slutpunktsidentiteten skulle till exempel behöva rätt behörighet för att hämta avbildningar från Azure Container Registry eller interagera med andra Azure-tjänster.
I allmänhet skulle användaridentiteten och slutpunktsidentiteten ha separata behörighetskrav. Mer information om hur du hanterar identiteter och behörigheter finns i Autentisera klienter för onlineslutpunkter. Mer information om specialfallet med att automatiskt lägga till extra behörighet för hemligheter finns i Ytterligare behörigheter för användaridentitet.
Begränsning
Microsoft Entra ID-autentisering (aad_token
) stöds endast för hanterade onlineslutpunkter. För Kubernetes onlineslutpunkter kan du använda antingen en nyckel eller en Azure Machine Learning-token (aml_token
).
Behörigheter som krävs för användaridentitet
När du loggar in på din Azure-klientorganisation med ditt Microsoft-konto (till exempel med ), az login
slutför du användarautentiseringssteget (kallas ofta authn) och din identitet som användare bestäms. Anta nu att du vill skapa en onlineslutpunkt under en arbetsyta. Du behöver rätt behörighet för att göra det. Det är här auktorisering (kallas ofta authz) kommer in.
Kontrollplansåtgärder
Kontrollera planåtgärder och ändra onlineslutpunkterna. Dessa åtgärder omfattar åtgärder för att skapa, läsa, uppdatera och ta bort (CRUD) på onlineslutpunkter och onlinedistributioner. För onlineslutpunkter och distributioner går begäranden om att utföra kontrollplansåtgärder till Azure Machine Learning-arbetsytan.
Autentisering för kontrollplansåtgärder
För kontrollplansåtgärder har du ett sätt att autentisera en klient till arbetsytan: med hjälp av en Microsoft Entra-token.
Beroende på ditt användningsfall kan du välja mellan flera autentiseringsarbetsflöden för att hämta den här token. Din användaridentitet måste också ha en korrekt rollbaserad åtkomstkontroll i Azure (Azure RBAC) för åtkomst till dina resurser.
Auktorisering för kontrollplansåtgärder
För kontrollplansåtgärder måste din användaridentitet ha rätt rollbaserad åtkomstkontroll i Azure (Azure RBAC) för åtkomst till dina resurser. Mer specifikt behöver du för CRUD-åtgärder på onlineslutpunkter och distributioner identiteten för att tilldela rollen med följande åtgärder:
Åtgärd | Nödvändig Azure RBAC-roll | Omfång som rollen har tilldelats för |
---|---|---|
Skapa/uppdatera åtgärder på onlineslutpunkter och distributioner | Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write |
arbetsyta |
Ta bort åtgärder på onlineslutpunkter och distributioner | Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete |
arbetsyta |
Skapa/uppdatera/ta bort åtgärder på onlineslutpunkter och distributioner via Azure Machine Learning-studio | Ägare, deltagare eller någon roll som tillåter Microsoft.Resources/deployments/write |
resursgrupp där arbetsytan tillhör |
Läsåtgärder på onlineslutpunkter och distributioner | Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read |
arbetsyta |
Hämta en Azure Machine Learning-token (aml_token ) för att anropa onlineslutpunkter (både hanterade och Kubernetes) från arbetsytan |
Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action |
slutpunkt |
Hämta en nyckel för att anropa onlineslutpunkter (både hanterade och Kubernetes) från arbetsytan | Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action |
slutpunkt |
Återskapa nycklar för onlineslutpunkter (både hanterade och Kubernetes) | Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action |
slutpunkt |
Hämta en Microsoft Entra-token (aad_token ) för att anropa hanterade onlineslutpunkter |
Kräver ingen roll. | inte tillämpligt |
Kommentar
Du kan hämta din Microsoft Entra-token (aad_token
) direkt från Microsoft Entra-ID när du är inloggad och du behöver inte extra Azure RBAC-behörighet på arbetsytan.
Ytterligare behörigheter för användaridentitet vid framtvingande av åtkomst till standardhemlighetslager
Om du tänker använda funktionen för hemlig inmatning , och när du skapar dina slutpunkter, anger du flaggan för att framtvinga åtkomst till standardhemlighetslagren, måste din användaridentitet ha behörighet att läsa hemligheter från arbetsyteanslutningar.
När slutpunkten skapas med en systemtilldelad identitet (SAI) och flaggan har angetts för att framtvinga åtkomst till standardhemlighetslagren måste användaridentiteten ha behörighet att läsa hemligheter från arbetsyteanslutningar när du skapar slutpunkten och skapar distributionerna under slutpunkten. Den här begränsningen säkerställer att endast en användaridentitet med behörighet att läsa hemligheter kan ge slutpunktsidentiteten behörighet att läsa hemligheter.
Om en användaridentitet inte har behörighet att läsa hemligheter från arbetsyteanslutningar, men den försöker skapa slutpunkten med ett SAI och slutpunktens flagga inställd för att framtvinga åtkomst till standardhemlighetslagren, avvisas skapandet av slutpunkten.
På samma sätt avvisas distributionen om en användaridentitet inte har behörighet att läsa hemligheter från arbetsyteanslutningar, men försöker skapa en distribution under slutpunkten med ett SAI och slutpunktens flagga inställd för att framtvinga åtkomst till standardhemlighetslagren.
När (1) slutpunkten skapas med en UAI, eller (2) flaggan inte har angetts för att framtvinga åtkomst till standardhemlighetslagren även om slutpunkten använder ett SAI, behöver din användaridentitet inte ha behörighet att läsa hemligheter från arbetsyteanslutningar. I det här fallet beviljas slutpunktsidentiteten inte automatiskt behörighet att läsa hemligheter, men du kan fortfarande bevilja slutpunktsidentiteten den här behörigheten manuellt genom att tilldela rätt roller om det behövs. Oavsett om rolltilldelningen gjordes automatiskt eller manuellt utlöses fortfarande den hemliga hämtningen och inmatningen om du mappade miljövariablerna med hemliga referenser i distributionsdefinitionen, och den använder slutpunktsidentiteten för att göra det.
Mer information om hur du hanterar auktorisering till en Azure Machine Learning-arbetsyta finns i Hantera åtkomst till Azure Machine Learning.
Mer information om hemlig injektion finns i Hemlig injektion i onlineslutpunkter.
Dataplansåtgärder
Dataplansåtgärder ändrar inte onlineslutpunkterna, snarare använder de data för att interagera med slutpunkterna. Ett exempel på en dataplansåtgärd är att skicka en bedömningsbegäran till en onlineslutpunkt och få ett svar från den. För onlineslutpunkter och distributioner går begäranden om att utföra dataplansåtgärder till slutpunktens bedömnings-URI.
Autentisering för dataplansåtgärder
För dataplansåtgärder kan du välja mellan tre sätt att autentisera en klient för att skicka begäranden till en slutpunkts bedömnings-URI:
- key
- Azure Machine Learning-token (
aml_token
) - Microsoft Entra-token (
aad_token
)
Mer information om hur du autentiserar klienter för dataplansåtgärder finns i Autentisera klienter för onlineslutpunkter.
Auktorisering för dataplansåtgärder
För dataplansåtgärder måste din användaridentitet ha rätt rollbaserad åtkomstkontroll i Azure (Azure RBAC) för åtkomst till dina resurser, endast om slutpunkten är inställd på att använda Microsoft Entra-token (aad_token
). Mer specifikt behöver du identiteten för att tilldela rollen med följande åtgärder för dataplansåtgärder på onlineslutpunkter och distributioner:
Åtgärd | Nödvändig Azure RBAC-roll | Omfång som rollen har tilldelats för |
---|---|---|
Anropa onlineslutpunkter med nyckel- eller Azure Machine Learning-token (aml_token ). |
Kräver ingen roll. | Inte tillämpligt |
Anropa hanterade onlineslutpunkter med Microsoft Entra-token (aad_token ). |
Ägare, deltagare eller någon roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action |
slutpunkt |
Anropa Kubernetes onlineslutpunkter med Microsoft Entra-token (aad_token ). |
Kräver ingen roll. | Inte tillämpligt |
Behörigheter som krävs för slutpunktsidentitet
En onlinedistribution kör din användarcontainer med slutpunktsidentiteten, dvs. den hanterade identitet som är associerad med slutpunkten. Slutpunktsidentiteten är ett Microsoft Entra-ID som stöder Azure RBAC. Därför kan du tilldela Azure-roller till slutpunktsidentiteten för att styra behörigheter som krävs för att utföra åtgärder. Den här slutpunktsidentiteten kan vara antingen en systemtilldelad identitet (SAI) eller en användartilldelad identitet (UAI). Du kan bestämma om du vill använda en SAI eller en UAI när du skapar slutpunkten.
- För en systemtilldelad identitet skapas identiteten automatiskt när du skapar slutpunkten och roller med grundläggande behörigheter (till exempel Pull-behörigheten för Azure Container Registry och lagringsblobdataläsaren) tilldelas automatiskt.
- För en användartilldelad identitet måste du först skapa identiteten och sedan associera den med slutpunkten när du skapar slutpunkten. Du ansvarar också för att tilldela rätt roller till UAI efter behov.
Automatisk rolltilldelning för slutpunktsidentitet
Om slutpunktsidentiteten är en systemtilldelad identitet tilldelas vissa roller till slutpunktsidentiteten för enkelhetens skull.
Roll | beskrivning | Villkor för automatisk rolltilldelning |
---|---|---|
AcrPull |
Tillåter att slutpunktsidentiteten hämtar avbildningar från Azure Container Registry (ACR) som är associerad med arbetsytan. | Slutpunktsidentiteten är en systemtilldelad identitet (SAI). |
Storage Blob Data Reader |
Gör att slutpunktsidentiteten kan läsa blobar från arbetsytans standarddatalager. | Slutpunktsidentiteten är en systemtilldelad identitet (SAI). |
AzureML Metrics Writer (preview) |
Gör att slutpunktsidentiteten kan skriva mått till arbetsytan. | Slutpunktsidentiteten är en systemtilldelad identitet (SAI). |
Azure Machine Learning Workspace Connection Secrets Reader 1 |
Gör att slutpunktsidentiteten kan läsa hemligheter från arbetsyteanslutningar. | Slutpunktsidentiteten är en systemtilldelad identitet (SAI). Slutpunkten skapas med en flagga för att framtvinga åtkomst till standardhemlighetsarkiven. Användaridentiteten som skapar slutpunkten har samma behörighet att läsa hemligheter från arbetsyteanslutningar. 2 |
1 Mer information om rollen finns i Azure Machine Learning Workspace Connection Secrets Reader
Tilldela behörigheter till identiteten.
2 Även om slutpunktsidentiteten är SAI, om framtvingandeflaggan inte har angetts eller användaridentiteten inte har behörigheten, finns det ingen automatisk rolltilldelning för den här rollen. Mer information finns i Distribuera onlineslutpunkt med hemlig inmatning.
Om slutpunktsidentiteten är en användartilldelad identitet finns det ingen automatisk rolltilldelning. I det här fallet måste du tilldela roller till slutpunktsidentiteten manuellt efter behov.
Välja behörigheter och omfång för auktorisering
Med Azure RBAC kan du definiera och tilldela roller med en uppsättning tillåtna och/eller nekade åtgärder för specifika omfång. Du kan anpassa de här rollerna och omfången efter dina affärsbehov. Följande exempel fungerar som utgångspunkt och kan utökas efter behov.
Exempel på användaridentitet
- Om du vill styra alla åtgärder som anges i föregående tabell för kontrollplansåtgärder och tabellen för dataplansåtgärder kan du överväga att använda en inbyggd roll
AzureML Data Scientist
som innehåller behörighetsåtgärdenMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
. - Överväg att använda omfånget
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>
för att kontrollera åtgärderna för en viss slutpunkt. - Om du vill styra åtgärderna för alla slutpunkter i en arbetsyta bör du överväga att använda omfånget
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
.
Exempel på slutpunktsidentitet
- Om du vill tillåta att användarcontainern läser blobar bör du överväga att använda en inbyggd roll
Storage Blob Data Reader
som innehåller åtgärden för behörighetsdataMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/read
.
Mer information om riktlinjer för kontrollplansåtgärder finns i Hantera åtkomst till Azure Machine Learning. Mer information om rolldefinition, omfång och rolltilldelning finns i Azure RBAC. Information om omfånget för tilldelade roller finns i Förstå omfånget för Azure RBAC.