Metodtips för Azure Machine Learning för företagssäkerhet

Den här artikeln beskriver rekommenderade säkerhetsmetoder för planering eller hantering av en säker Azure Machine Learning-distribution. Bästa praxis kommer från Microsoft och kundupplevelsen med Azure Machine Learning. Varje riktlinje förklarar praxis och dess logik. Artikeln innehåller också länkar till instruktioner och referensdokumentation.

Den rekommenderade nätverkssäkerhetsarkitekturen för maskininlärning är ett virtuellt nätverk med följande undernät:

  • Träning innehåller beräkningsresurser som används för träning, till exempel beräkningsinstanser för maskininlärning eller beräkningskluster.
  • Bedömning innehåller beräkningsresurser som används för bedömning, till exempel Azure Kubernetes Service (AKS).
  • Brandväggen innehåller brandväggen som tillåter trafik till och från det offentliga Internet, till exempel Azure Firewall.

Ett diagram över den rekommenderade säkra arkitekturen.

Det virtuella nätverket innehåller också en privat slutpunkt för din maskininlärningsarbetsyta och följande beroende tjänster:

  • Azure-lagringskonto
  • Azure Key Vault
  • Azure Container Registry

Utgående kommunikation från det virtuella nätverket måste kunna nå följande Microsoft-tjänster:

  • Maskininlärning
  • Azure Active Directory (Azure AD)
  • Azure Container Registry och specifika register som Microsoft underhåller
  • Azure Front Door
  • Azure Resource Manager
  • Azure Storage

Fjärrklienter ansluter till det virtuella nätverket med hjälp av antingen Azure ExpressRoute eller en VPN-anslutning (Virtual Private Network).

Design av virtuellt nätverk och privat slutpunkt

När du utformar virtuella nätverk, undernät och privata slutpunkter bör du tänka på följande krav:

  • I allmänhet skapar du separata undernät för träning och bedömning och använder träningsundernätet för alla privata slutpunkter.

  • För IP-adressering behöver beräkningsinstanser en privat IP-adress vardera. Beräkningskluster behöver en privat IP-adress per nod. AKS-kluster behöver många privata IP-adresser, enligt beskrivningen i Planera IP-adressering för ditt AKS-kluster. Ett separat undernät för minst AKS hjälper till att förhindra överbelastning av IP-adresser.

  • Beräkningsresurserna i undernäten för träning och bedömning måste ha åtkomst till lagringskontot, nyckelvalvet och containerregistret. Skapa privata slutpunkter för lagringskontot, nyckelvalvet och containerregistret.

  • Standardlagring för maskininlärningsarbetsyta behöver två privata slutpunkter, en för Azure Blob Storage och en annan för Azure File Storage.

  • Om du använder Azure Machine Learning-studio ska arbetsytan och de privata lagringsslutpunkterna finnas i samma virtuella nätverk.

  • Om du har flera arbetsytor använder du ett virtuellt nätverk för varje arbetsyta för att skapa en explicit nätverksgräns mellan arbetsytor.

Använda privata IP-adresser

Privata IP-adresser minimerar dina Azure-resursers exponering för Internet. Maskininlärning använder många Azure-resurser och den privata slutpunkten för maskininlärningsarbetsytan räcker inte för privat IP från slutpunkt till slutpunkt. I följande tabell visas de större resurser som maskininlärning använder och hur du aktiverar privat IP för resurserna. Beräkningsinstanser och beräkningskluster är de enda resurser som inte har den privata IP-funktionen.

Resurser Privat IP-lösning Dokumentation
Arbetsyta Privat slutpunkt Konfigurera en privat slutpunkt för en Azure Machine Learning-arbetsyta
Associerade resurser
Lagring Privat slutpunkt Skydda Azure Storage-konton med tjänstslutpunkter
Key Vault Privat slutpunkt Skydda Azure Key Vault
Container Registry Privat slutpunkt Aktivera Azure Container Registry
Träningsresurser
Beräkninsinstans Privat IP (ingen offentlig IP-förhandsversion) Säkra träningsmiljöer
Beräkningskluster Privat IP (ingen offentlig IP-förhandsversion) Säkra träningsmiljöer
Fler värdresurser
Kubernetes-kluster Privat slutpunkt Säkra inferensmiljöer
Maskininlärningslastbalanserare på AKS Privat lastbalanserare Säkra inferensmiljöer
Azure Container Instances Privat slutpunkt Observera: Du kan inte använda en privat slutpunkt med containerinstanser om containerregistret också använder en privat slutpunkt.

Kontrollera inkommande och utgående trafik för virtuella nätverk

Använd en brandvägg eller Azure-nätverkssäkerhetsgrupp (NSG) för att styra inkommande och utgående trafik i virtuella nätverk. Mer information om inkommande och utgående krav finns i Konfigurera inkommande och utgående nätverkstrafik. Mer information om hur trafik flödar mellan komponenter finns i Nätverkstrafikflöde i en skyddad arbetsyta.

Kontrollera åtkomsten till din arbetsyta

Utför följande steg för att säkerställa att din privata slutpunkt kan komma åt din maskininlärningsarbetsyta:

  1. Kontrollera att du har åtkomst till ditt virtuella nätverk med hjälp av en VPN-anslutning, ExpressRoute eller en virtuell dator (VM) med Azure Bastion-åtkomst. Den offentliga användaren kan inte komma åt arbetsytan för maskininlärning med den privata slutpunkten, eftersom den endast kan nås från ditt virtuella nätverk. Mer information finns i Skydda din arbetsyta med virtuella nätverk.

  2. Kontrollera att du kan matcha arbetsytans fullständigt kvalificerade domännamn (FQDN) med din privata IP-adress. Om du använder en egen DNS-server (Domain Name System) eller en central DNS-infrastruktur måste du konfigurera en DNS-vidarebefordrare. Mer information finns i Så här använder du din arbetsyta med en anpassad DNS-server.

Åtkomsthantering för arbetsyta

När du definierar kontroller för maskininlärningsidentitet och åtkomsthantering kan du separera kontroller som definierar åtkomst till Azure-resurser från kontroller som hanterar åtkomst till datatillgångar. Beroende på ditt användningsfall bör du överväga om du vill använda självbetjäning, datacentrerad eller projektcentrerad identitets- och åtkomsthantering.

Självbetjäningsmönster

I ett självbetjäningsmönster kan dataexperter skapa och hantera arbetsytor. Det här mönstret passar bäst för proof-of-concept-situationer som kräver flexibilitet för att prova olika konfigurationer. Nackdelen är att dataexperter behöver expertis för att etablera Azure-resurser. Den här metoden är mindre lämplig när strikt kontroll och granskning av resursanvändning och dataåtkomst krävs.

  1. Definiera Azure-principer för att ange skydd för resursetablering och användning, till exempel tillåtna klusterstorlekar och VM-typer.

  2. Skapa en resursgrupp för att lagra arbetsytorna och ge dataexperter en deltagarroll i resursgruppen.

  3. Dataexperter kan nu skapa arbetsytor och associera resurser i resursgruppen på ett självbetjäningssätt.

  4. För att få åtkomst till datalagring skapar du användartilldelade hanterade identiteter och beviljar identiteterna läsåtkomstroller i lagringen.

  5. När dataexperter skapar beräkningsresurser kan de tilldela hanterade identiteter till beräkningsinstanserna för att få dataåtkomst.

Metodtips finns i Autentisering för analys i molnskala.

Datacentrerade mönster

I ett datacentrerat mönster tillhör arbetsytan en enskild dataexpert som kanske arbetar med flera projekt. Fördelen med den här metoden är att dataexperten kan återanvända kod eller träningspipelines i olika projekt. Så länge arbetsytan är begränsad till en enskild användare kan dataåtkomst spåras tillbaka till användaren vid granskning av lagringsloggar.

Nackdelen är att dataåtkomsten inte är uppdelad eller begränsad per projekt, och alla användare som läggs till på arbetsytan kan komma åt samma tillgångar.

  1. Skapa arbetsytan.

  2. Skapa beräkningsresurser med systemtilldelade hanterade identiteter aktiverade.

  3. När en dataexpert behöver åtkomst till data för ett visst projekt beviljar du den beräkningshanterade identiteten läsåtkomst till data.

  4. Ge beräkningshanterad identitet åtkomst till andra resurser som krävs, till exempel ett containerregister med anpassade Docker-avbildningar för träning.

  5. Bevilja även arbetsytans hanterade identitet läsåtkomstroll för data för att aktivera dataförhandsgranskning.

  6. Ge dataexperten åtkomst till arbetsytan.

  7. Dataexperten kan nu skapa datalager för att komma åt data som krävs för projekt och skicka träningskörningar som använder data.

Du kan också skapa en Azure AD säkerhetsgrupp och ge den läsåtkomst till data och sedan lägga till hanterade identiteter i säkerhetsgruppen. Den här metoden minskar antalet direkta rolltilldelningar för resurser, så att du inte når prenumerationsgränsen för rolltilldelningar.

Projektcentrerat mönster

Ett projektcentrerat mönster skapar en maskininlärningsarbetsyta för ett visst projekt och många dataexperter samarbetar på samma arbetsyta. Dataåtkomst är begränsad till det specifika projektet, vilket gör metoden lämplig för att arbeta med känsliga data. Det är också enkelt att lägga till eller ta bort dataexperter från projektet.

Nackdelen med den här metoden är att det kan vara svårt att dela tillgångar mellan projekt. Det är också svårt att spåra dataåtkomst till specifika användare under granskningar.

  1. Skapa arbetsytan

  2. Identifiera datalagringsinstanser som krävs för projektet, skapa en användartilldelad hanterad identitet och ge identiteten läsbehörighet till lagringen.

    Du kan också ge arbetsytans hanterade identitet åtkomst till datalagring för att tillåta förhandsgranskning av data. Du kan utelämna den här åtkomsten för känsliga data som inte är lämpliga för förhandsversion.

  3. Skapa datalager utan autentiseringsuppgifter för lagringsresurserna.

  4. Skapa beräkningsresurser på arbetsytan och tilldela den hanterade identiteten till beräkningsresurserna.

  5. Ge beräkningshanterad identitet åtkomst till andra resurser som krävs, till exempel ett containerregister med anpassade Docker-avbildningar för träning.

  6. Ge dataexperter som arbetar med projektet en roll på arbetsytan.

    Med rollbaserad åtkomstkontroll i Azure (RBAC) kan du begränsa dataexperter från att skapa nya datalager eller nya beräkningsresurser med olika hanterade identiteter. Den här metoden förhindrar åtkomst till data som inte är specifika för projektet.

    Om du vill förenkla hanteringen av projektmedlemskap kan du skapa en Azure AD säkerhetsgrupp för projektmedlemmar och ge gruppen åtkomst till arbetsytan.

Azure Data Lake Storage med genomströmning av autentiseringsuppgifter

Du kan använda Azure AD användaridentitet för interaktiv lagringsåtkomst från Machine Learning Studio. Data Lake Storage med hierarkiskt namnområde aktiverat möjliggör förbättrad organisation av datatillgångar för lagring och samarbete. Med Data Lake Storage hierarkisk namnrymd kan du dela upp dataåtkomst genom att ge olika användare åtkomstkontrollista (ACL)-baserad åtkomst till olika mappar och filer. Du kan till exempel endast ge en delmängd av användarna åtkomst till konfidentiella data.

RBAC och anpassade roller

Azure RBAC hjälper dig att hantera vem som har åtkomst till maskininlärningsresurser och konfigurera vem som kan utföra åtgärder. Du kanske till exempel bara vill ge specifika användare rollen som arbetsyteadministratör för att hantera beräkningsresurser.

Åtkomstomfånget kan skilja sig åt mellan miljöer. I en produktionsmiljö kanske du vill begränsa användarnas möjlighet att uppdatera slutsatsdragningsslutpunkter. I stället kan du bevilja den behörigheten till ett auktoriserat huvudnamn för tjänsten.

Maskininlärning har flera standardroller: ägare, deltagare, läsare och dataexpert. Du kan också skapa egna anpassade roller, till exempel för att skapa behörigheter som återspeglar organisationens struktur. Mer information finns i Hantera åtkomst till Azure Machine Learning-arbetsytan.

Med tiden kan sammansättningen av ditt team ändras. Om du skapar en Azure AD grupp för varje teamroll och arbetsyta kan du tilldela en Azure RBAC-roll till den Azure AD gruppen och hantera resursåtkomst och användargrupper separat.

Användarens huvudnamn och tjänstens huvudnamn kan ingå i samma Azure AD grupp. När du till exempel skapar en användartilldelad hanterad identitet som Azure Data Factory använder för att utlösa en maskininlärningspipeline kan du inkludera den hanterade identiteten i en ML-pipelines-köre Azure AD grupp.

Central Docker-avbildningshantering

Azure Machine Learning tillhandahåller utvalda Docker-avbildningar som du kan använda för träning och distribution. Dina krav på företagsefterlevnad kan dock kräva användning av avbildningar från en privat lagringsplats som ditt företag hanterar. Maskininlärning har två sätt att använda en central lagringsplats:

  • Använd avbildningarna från en central lagringsplats som basavbildningar. Miljöhanteringen för maskininlärning installerar paket och skapar en Python-miljö där tränings- eller slutsatsdragningskoden körs. Med den här metoden kan du enkelt uppdatera paketberoenden utan att behöva ändra basavbildningen.

  • Använd avbildningarna som de är utan att använda maskininlärningsmiljöhantering. Den här metoden ger dig en högre grad av kontroll, men kräver också att du noggrant skapar Python-miljön som en del av avbildningen. Du måste uppfylla alla beroenden som behövs för att köra koden, och eventuella nya beroenden kräver att avbildningen återskapas.

Mer information finns i Träna en modell med en anpassad Docker-avbildning.

Datakryptering

Vilande maskininlärningsdata har två datakällor:

  • Lagringen innehåller alla dina data, till exempel träningsdata och tränade modelldata, förutom metadata. Du ansvarar för din lagringskryptering.

  • Azure Cosmos DB innehåller dina metadata, inklusive körningshistorikinformation som experimentnamn och experimentöverföringsdatum och -tid. I de flesta arbetsytor finns Azure Cosmos DB i Microsoft-prenumerationen och krypteras av en Microsoft-hanterad nyckel.

    Om du vill kryptera dina metadata med hjälp av din egen nyckel kan du använda en kundhanterad nyckelarbetsyta. Nackdelen är att du måste ha Azure Cosmos DB i din prenumeration och betala dess kostnad. Mer information finns i Datakryptering med Azure Machine Learning.

Information om hur Azure Machine Learning krypterar data under överföring finns i Kryptering under överföring.

Övervakning

När du distribuerar maskininlärningsresurser konfigurerar du loggnings- och granskningskontroller för observerbarhet. Motivationen för att observera data kan variera beroende på vem som tittar på data. Scenarier är:

  • Maskininlärningsutövare eller driftsteam vill övervaka pipelinehälsa för maskininlärning. Dessa observatörer behöver förstå problem med schemalagd körning eller problem med datakvalitet eller förväntade träningsprestanda. Du kan skapa Azure-instrumentpaneler som övervakar Azure Machine Learning-data eller skapar händelsedrivna arbetsflöden.

  • Kapacitetshanterare, maskininlärningsutövare eller driftsteam kanske vill skapa en instrumentpanel för att observera beräknings- och kvotanvändning. Om du vill hantera en distribution med flera Azure Machine Learning-arbetsytor kan du skapa en central instrumentpanel för att förstå kvotanvändningen. Kvoter hanteras på prenumerationsnivå, så den miljöomfattande vyn är viktig för att driva optimering.

  • IT- och åtgärdsteam kan konfigurera diagnostikloggning för att granska resursåtkomst och ändra händelser på arbetsytan.

  • Överväg att skapa instrumentpaneler som övervakar övergripande infrastrukturhälsa för maskininlärning och beroende resurser, till exempel lagring. Om du till exempel kombinerar Azure Storage-mått med pipelinekörningsdata kan du optimera infrastrukturen för bättre prestanda eller identifiera rotorsaker till problem.

Azure samlar in och lagrar plattformsmått och aktivitetsloggar automatiskt. Du kan dirigera data till andra platser med hjälp av en diagnostikinställning. Konfigurera diagnostikloggning till en central Log Analytics-arbetsyta för att kunna observera flera instanser av arbetsytor. Använd Azure Policy för att automatiskt konfigurera loggning för nya maskininlärningsarbetsytor i den här centrala Log Analytics-arbetsytan.

Azure Policy

Du kan framtvinga och granska användningen av säkerhetsfunktioner på arbetsytor via Azure Policy. Här är några rekommendationer:

  • Framtvinga anpassad hanterad nyckelkryptering.
  • Framtvinga Azure Private Link och privata slutpunkter.
  • Framtvinga privata DNS-zoner.
  • Inaktivera icke-Azure AD autentisering, till exempel Secure Shell (SSH).

Mer information finns i Inbyggda principdefinitioner för Azure Machine Learning.

Du kan också använda anpassade principdefinitioner för att styra säkerheten på arbetsytan på ett flexibelt sätt.

Beräkningskluster och instanser

Följande överväganden och rekommendationer gäller för beräkningskluster och instanser för maskininlärning.

Diskkryptering

Operativsystemdisken (OS) för en beräkningsinstans eller beräkningsklusternod lagras i Azure Storage och krypteras med Microsoft-hanterade nycklar. Varje nod har också en lokal tillfällig disk. Om arbetsytan skapades med parametern hbi_workspace = True krypteras den tillfälliga disken också med Microsoft-hanterade nycklar. Mer information finns i Datakryptering med Azure Machine Learning.

Hanterad identitet

Beräkningskluster stöder användning av hanterade identiteter för att autentisera till Azure-resurser. Om du använder en hanterad identitet för klustret kan du autentisering till resurser utan att exponera autentiseringsuppgifter i koden. Mer information finns i Skapa ett Azure Machine Learning-beräkningskluster.

Installationsskript

Du kan använda ett installationsskript för att automatisera anpassning och konfiguration av beräkningsinstanser när du skapar. Som administratör kan du skriva ett anpassningsskript som ska användas när du skapar alla beräkningsinstanser på en arbetsyta. Du kan använda Azure Policy för att framtvinga användning av installationsskriptet för att skapa varje beräkningsinstans. Mer information finns i Skapa och hantera en Azure Machine Learning-beräkningsinstans.

Skapa för din räkning

Om du inte vill att dataexperter ska etablera beräkningsresurser kan du skapa beräkningsinstanser för deras räkning och sedan tilldela instanserna till dataexperterna. Mer information finns i Skapa och hantera en Azure Machine Learning-beräkningsinstans.

Privat slutpunktsaktiverad arbetsyta

Använd beräkningsinstanser med en privat slutpunktsaktiverad arbetsyta. Beräkningsinstansen avvisar all offentlig åtkomst utanför det virtuella nätverket. Den här konfigurationen förhindrar också paketfiltrering.

Stöd för Azure-princip

Du kan använda Azure Policy för att se till att varje beräkningskluster eller instans skapas i ett virtuellt nätverk och ange det virtuella standardnätverket och undernätet. Du kan också använda en princip för att inaktivera icke-Azure AD autentisering, till exempel SSH.

Nästa steg

Läs mer om säkerhetskonfigurationer för maskininlärning:

Kom igång med en maskininlärningsmallbaserad distribution:

Läs fler artiklar om arkitekturöverväganden för att distribuera maskininlärning: