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 loginslutfö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 Reader1 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ärden Microsoft.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örighetsdata Microsoft.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.