Hemlig injektion i onlineslutpunkter (förhandsversion)

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

Hemlig inmatning i kontexten för en onlineslutpunkt är en process för att hämta hemligheter (till exempel API-nycklar) från hemliga arkiv och mata in dem i din användarcontainer som körs i en onlinedistribution. Hemligheter nås så småningom säkert via miljövariabler, som används av slutsatsdragningsservern som kör ditt bedömningsskript eller av den slutsatsdragningsstack som du använder med en BYOC-distributionsmetod (bring your own container).

Viktigt!

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.

Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Problembeskrivning

När du skapar en onlinedistribution kanske du vill använda hemligheter inifrån distributionen för att få åtkomst till externa tjänster. Några av dessa externa tjänster är Microsoft Azure OpenAI-tjänsten, Azure AI Services och Azure AI Content Valv ty.

Om du vill använda hemligheterna måste du hitta ett sätt att på ett säkert sätt skicka dem till din användarcontainer som körs i distributionen. Vi rekommenderar inte att du inkluderar hemligheter som en del av distributionsdefinitionen, eftersom den här metoden skulle exponera hemligheterna i distributionsdefinitionen.

En bättre metod är att lagra hemligheterna i hemliga arkiv och sedan hämta dem på ett säkert sätt inifrån distributionen. Den här metoden utgör dock en egen utmaning: hur distributionen ska autentisera sig till de hemliga arkiven för att hämta hemligheter. Eftersom onlinedistributionen kör din användarcontainer med hjälp av slutpunktsidentiteten, som är en hanterad identitet, kan du använda Azure RBAC för att styra slutpunktsidentitetens behörigheter och låta slutpunkten hämta hemligheter från de hemliga arkiven. Med den här metoden måste du utföra följande uppgifter:

  • Tilldela rätt roller till slutpunktsidentiteten så att den kan läsa hemligheter från de hemliga arkiven.
  • Implementera bedömningslogik för distributionen så att den använder slutpunktens hanterade identitet för att hämta hemligheterna från de hemliga arkiven.

Även om den här metoden för att använda en hanterad identitet är ett säkert sätt att hämta och mata in hemligheter, förenklar hemlig inmatning via funktionen för hemlig inmatning ytterligare processen för att hämta hemligheter för anslutningar till arbetsytor och nyckelvalv.

Hanterad identitet som är associerad med slutpunkten

En onlinedistribution kör din användarcontainer med den hanterade identitet som är associerad med slutpunkten. Den här hanterade identiteten , som kallas slutpunktsidentitet, är ett Microsoft Entra-ID som stöder Azure RBAC. Därför kan du tilldela Azure-roller till identiteten för att kontrollera behörigheter som krävs för att utföra åtgärder. Slutpunktsidentiteten kan vara antingen en systemtilldelad identitet (SAI) eller en användartilldelad identitet (UAI). Du kan bestämma vilken av de här typerna av identiteter som ska användas 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.

Mer information om hur du använder hanterade identiteter för en slutpunkt finns i Så här kommer du åt resurser från slutpunkter med hanterade identiteter och exemplet för att använda hanterade identiteter för att interagera med externa tjänster.

Rolltilldelning till slutpunktsidentiteten

Följande roller krävs av de hemliga arkiven:

  • För hemligheter som lagras i arbetsyteanslutningar under din arbetsyta: Workspace Connections innehåller ett API för listhemligheter (förhandsversion) som kräver att den identitet som anropar API:et har Azure Machine Learning Workspace Connection Secrets Reader tilldelats rollen (eller motsvarande) till identiteten.
  • För hemligheter som lagras i ett externt Microsoft Azure Key Vault: Key Vault tillhandahåller ett API för hämta hemliga versioner som kräver att den identitet som anropar API:et har Key Vault Secrets User tilldelats rollen (eller motsvarande) till identiteten.

Implementering av hemlig injektion

När hemligheter (till exempel API-nycklar) har hämtats från hemliga arkiv finns det två sätt att mata in dem i en användarcontainer som körs i onlinedistributionen:

  • Mata in hemligheter själv med hjälp av hanterade identiteter.
  • Mata in hemligheter med hjälp av funktionen för hemlig injektion.

Båda dessa metoder omfattar två steg:

  1. Hämta först hemligheter från de hemliga arkiven med hjälp av slutpunktsidentiteten.
  2. För det andra matar du in hemligheterna i din användarcontainer.

Hemlig inmatning via användning av hanterade identiteter

I distributionsdefinitionen måste du använda slutpunktsidentiteten för att anropa API:erna från hemliga arkiv. Du kan implementera den här logiken antingen i ditt bedömningsskript eller i gränssnittsskript som du kör i DIN BYOC-container. Information om hur du implementerar hemlig inmatning via användning av hanterade identiteter finns i exemplet för att använda hanterade identiteter för att interagera med externa tjänster.

Hemlig injektion via funktionen för hemlig injektion

Om du vill använda funktionen för hemlig inmatning mappar du hemligheterna (som du vill referera till) från arbetsyteanslutningar eller Key Vault till miljövariablerna i distributionsdefinitionen. Den här metoden kräver inte att du skriver någon kod i ditt bedömningsskript eller i shell-skript som du kör i DIN BYOC-container. Om du vill mappa hemligheterna från arbetsyteanslutningar eller Key Vault till miljövariablerna måste följande villkor uppfyllas:

  • Om en onlineslutpunkt har definierats för att framtvinga åtkomst till standardhemlighetslager (arbetsyteanslutningar under den aktuella arbetsytan) bör din användaridentitet som skapar distributionen under slutpunkten ha behörighet att läsa hemligheter från arbetsyteanslutningar.
  • Slutpunktsidentiteten som distributionen använder ska ha behörighet att läsa hemligheter från antingen arbetsyteanslutningar eller Key Vault, enligt beskrivningen i distributionsdefinitionen.

Kommentar

  • Om slutpunkten har skapats med en SAI och flaggan har angetts för att framtvinga åtkomst till standardhemlighetslager, skulle slutpunkten automatiskt ha behörighet för arbetsyteanslutningar.
  • Om slutpunkten använde en UAI eller flaggan för att framtvinga åtkomst till standardhemlighetslager inte angavs, kanske slutpunktsidentiteten inte har behörighet för arbetsyteanslutningar. I sådana fall måste du tilldela rollen för arbetsyteanslutningarna manuellt till slutpunktsidentiteten.
  • Slutpunktsidentiteten får inte automatiskt behörighet för det externa Nyckelvalvet. Om du använder Key Vault som ett hemligt arkiv måste du tilldela rollen för Nyckelvalvet manuellt till slutpunktsidentiteten.

Mer information om hur du använder hemlig inmatning finns i Distribuera maskininlärningsmodeller till onlineslutpunkter med hemlig inmatning (förhandsversion).