Sårbarhetshantering för Azure Machine Learning
Sårbarhetshantering innebär att identifiera, utvärdera, minimera och rapportera eventuella säkerhetsrisker som finns i en organisations system och programvara. Sårbarhetshantering är ett ansvar som både du och Microsoft har.
Den här artikeln beskriver dessa ansvarsområden och beskriver de upravljanje ranjivostima kontroller som Azure Mašinsko učenje tillhandahåller. Du lär dig hur du håller din tjänstinstans och dina program uppdaterade med de senaste säkerhetsuppdateringarna och hur du minimerar fönstret med möjligheter för angripare.
Microsoft-hanterade VM-avbildningar
Azure Mašinsko učenje hanterar avbildningar av virtuella värddatorer (VM) för Azure Mašinsko učenje beräkningsinstanser, Azure Mašinsko učenje beräkningskluster och Data Science Virtual Machines. Uppdateringsfrekvensen är månadsvis och innehåller följande information:
För varje ny vm-avbildningsversion kommer de senaste uppdateringarna från den ursprungliga utgivaren av operativsystemet. Med hjälp av de senaste uppdateringarna ser du till att du får alla tillämpliga OS-relaterade korrigeringar. För Azure Mašinsko učenje är utgivaren Kanonisk för alla Ubuntu-avbildningar. Dessa avbildningar används för Azure Mašinsko učenje beräkningsinstanser, beräkningskluster och Data Science Virtual Machines.
Vm-avbildningar uppdateras varje månad.
Förutom korrigeringar som den ursprungliga utgivaren tillämpar uppdaterar Azure Mašinsko učenje systempaket när uppdateringar är tillgängliga.
Azure Mašinsko učenje kontrollerar och validerar alla maskininlärningspaket som kan kräva en uppgradering. I de flesta fall innehåller nya VM-avbildningar de senaste paketversionerna.
Alla VM-avbildningar bygger på säkra prenumerationer som regelbundet kör sårbarhetsgenomsökning. Azure Mašinsko učenje flaggar eventuella oadresserade säkerhetsrisker och åtgärdar dem i nästa version.
Frekvensen är ett månatligt intervall för de flesta bilder. För beräkningsinstanser justeras avbildningsversionen med versionstakt för Azure Mašinsko učenje SDK som är förinstallerad i miljön.
Utöver den vanliga versionstakten tillämpar Azure Mašinsko učenje snabbkorrigeringar om sårbarheter dyker upp. Microsoft distribuerar snabbkorrigeringar inom 72 timmar för Azure Mašinsko učenje beräkningskluster och inom en vecka för beräkningsinstanser.
Kommentar
Värdoperativsystemet är inte den operativsystemversion som du kan ange för en miljö när du tränar eller distribuerar en modell. Miljöer körs i Docker. Docker körs på värdoperativsystemet.
Microsoft-hanterade containeravbildningar
Grundläggande docker-avbildningar som Azure Mašinsko učenje underhåller hämtar ofta säkerhetskorrigeringar för att åtgärda nyligen identifierade säkerhetsrisker.
Azure Mašinsko učenje släpper uppdateringar för avbildningar som stöds varannan vecka för att åtgärda säkerhetsrisker. Som ett åtagande strävar vi efter att inte ha några sårbarheter som är äldre än 30 dagar i den senaste versionen av bilder som stöds.
Korrigerade bilder släpps under en ny oföränderlig tagg och en uppdaterad :latest
tagg. Att använda taggen :latest
eller fästa på en viss avbildningsversion kan vara en kompromiss mellan säkerhets- och miljöåtergivning för ditt maskininlärningsjobb.
Hantera miljöer och containeravbildningar
Reproducerbarhet är en viktig aspekt av programvaruutveckling och maskininlärningsexperiment. Azure Mašinsko učenje miljökomponentens primära fokus är att garantera reproducerbarhet för miljön där användarens kod körs. För att säkerställa reproducerbarhet för alla maskininlärningsjobb hämtas tidigare byggda avbildningar till beräkningsnoderna utan att behöva ommaterialiseras.
Även om Azure Mašinsko učenje korrigerar basavbildningar med varje version, kan det vara avvägning mellan reproducerbarhet och upravljanje ranjivostima om du använder den senaste avbildningen. Det är ditt ansvar att välja den miljöversion som du använder för dina jobb eller modelldistributioner.
Som standard läggs beroenden ovanpå basavbildningar som Azure Mašinsko učenje tillhandahåller när du skapar miljöer. Du kan också använda dina egna basavbildningar när du använder miljöer i Azure Mašinsko učenje. När du har installerat fler beroenden ovanpå avbildningarna som tillhandahålls av Microsoft eller har egna basavbildningar blir upravljanje ranjivostima ditt ansvar.
Associerad med din Azure Mašinsko učenje-arbetsyta är en Azure Container Registry-instans som fungerar som en cache för containeravbildningar. Alla avbildningar som materialiseras skickas till containerregistret. Arbetsytan använder den om experimentering eller distribution utlöses för motsvarande miljö.
Azure Mašinsko učenje tar inte bort någon avbildning från containerregistret. Du ansvarar för att utvärdera behovet av en bild över tid. Om du vill övervaka och underhålla miljöhygienen kan du använda Microsoft Defender för Container Registry för att söka igenom dina avbildningar efter säkerhetsrisker. Information om hur du automatiserar dina processer baserat på utlösare från Microsoft Defender finns i Automatisera reparationssvar.
Använda en lagringsplats för privata paket
Azure Mašinsko učenje använder Conda och Pip för att installera Python-paket. Som standard laddar Azure Mašinsko učenje ned paket från offentliga lagringsplatser. Om din organisation kräver att du endast hämtar paket från privata lagringsplatser som Azure DevOps-feeds kan du åsidosätta Conda- och Pip-konfigurationen som en del av dina basavbildningar och dina miljökonfigurationer för beräkningsinstanser.
Följande exempelkonfiguration visar hur du tar bort standardkanalerna och lägger till dina egna privata Conda- och Pip-feeds. Överväg att använda installationsskript för beräkningsinstanser för automatisering.
RUN conda config --set offline false \
&& conda config --remove channels defaults || true \
&& conda config --add channels https://my.private.conda.feed/conda/feed \
&& conda config --add repodata_fns <repodata_file_on_your_server>.json
# Configure Pip private indexes and ensure that the client trusts your host
RUN pip config set global.index https://my.private.pypi.feed/repository/myfeed/pypi/ \
&& pip config set global.index-url https://my.private.pypi.feed/repository/myfeed/simple/
# In case your feed host isn't secured through SSL
RUN pip config set global.trusted-host http://my.private.pypi.feed/
Information om hur du anger egna basavbildningar i Azure Mašinsko učenje finns i Skapa en miljö från en Docker-byggkontext. Mer information om hur du konfigurerar Conda-miljöer finns i Skapa en miljöfil manuellt på Conda-webbplatsen.
Sårbarhetshantering på beräkningsvärdar
Hanterade beräkningsnoder i Azure Mašinsko učenje använda Microsoft-hanterade VM-avbildningar. När du etablerar en nod hämtas den senaste uppdaterade VM-avbildningen. Det här beteendet gäller för beräkningsinstanser, beräkningskluster, serverlös beräkning (förhandsversion) och beräkningsalternativ för hanterad slutsatsdragning.
Även om VM-avbildningar för operativsystem regelbundet korrigeras söker Azure Mašinsko učenje inte aktivt igenom beräkningsnoder efter sårbarheter när de används. Överväg nätverksisolering av din beräkning för ett extra skyddslager.
Att se till att din miljö är uppdaterad och att beräkningsnoder använder den senaste operativsystemversionen är ett delat ansvar mellan dig och Microsoft. Noder som inte är inaktiva kan inte uppdateras till den senaste VM-avbildningen. Överväganden skiljer sig något åt för varje beräkningstyp, enligt beskrivningen i följande avsnitt.
Beräkningsinstans
Beräkningsinstanser får de senaste VM-avbildningarna när de etableras. Microsoft släpper nya VM-bilder varje månad. När du har distribuerat en beräkningsinstans uppdateras den inte aktivt. Du kan köra frågor mot en instans operativsystemversion. Om du vill hålla dig uppdaterad med de senaste programuppdateringarna och säkerhetskorrigeringarna kan du använda någon av följande metoder:
Återskapa en beräkningsinstans för att hämta den senaste OS-avbildningen (rekommenderas).
Om du använder den här metoden förlorar du data och anpassningar (till exempel installerade paket) som lagras på instansens operativsystem och tillfälliga diskar.
När du återskapar instansen:
- Lagra notebook-filer i katalogen Användarfiler för att spara dem.
- Montera data för att spara filer.
Mer information om avbildningsversioner finns i Viktig information om Azure Mašinsko učenje-beräkningsinstansens avbildning.
Uppdatera os- och Python-paket regelbundet.
Använd Linux-pakethanteringsverktyg för att uppdatera paketlistan med de senaste versionerna:
sudo apt-get update
Använd Linux-pakethanteringsverktyg för att uppgradera paket till de senaste versionerna. Paketkonflikter kan uppstå när du använder den här metoden.
sudo apt-get upgrade
Använd Python-pakethanteringsverktyg för att uppgradera paket och söka efter uppdateringar:
pip list --outdated
Du kan installera och köra ytterligare genomsökningsprogram på beräkningsinstansen för att söka efter säkerhetsproblem:
- Använd Trivy för att identifiera sårbarheter på os- och Python-paketnivå.
- Använd ClamAV för att identifiera skadlig kod. Den är förinstallerad på beräkningsinstanser.
Agentinstallationen för Microsoft Defender för servrar stöds för närvarande inte.
Överväg att använda anpassningsskript för automatisering. Ett exempel på ett installationsskript som kombinerar Trivy och ClamAV finns i Exempel på konfigurationsskript för Beräkningsinstans.
Beräkningskluster
Beräkningskluster uppgraderar automatiskt noder till den senaste VM-avbildningen. Om du konfigurerar klustret med min nodes = 0
uppgraderas noderna automatiskt till den senaste versionen av VM-avbildningen när alla jobb har slutförts och klustret reduceras till noll noder.
Under följande förhållanden skalas inte klusternoder ned, så de kan inte hämta den senaste VM-avbildningen:
- Klustrets minsta antal noder är inställt på ett värde som är större än noll.
- Jobb schemaläggs kontinuerligt i klustret.
Du ansvarar för att skala ned icke-inaktiva klusternoder för att hämta de senaste uppdateringarna av OS VM-avbildningen. Azure Mašinsko učenje stoppar inte arbetsbelastningar som körs på beräkningsnoder för att utfärda vm-uppdateringar. Ändra tillfälligt de minsta noderna till noll och gör det möjligt för klustret att minska till noll noder.
Hanterade onlineslutpunkter
Hanterade onlineslutpunkter tar automatiskt emot uppdateringar av os-värdavbildningar som innehåller sårbarhetskorrigeringar. Uppdateringsfrekvensen för bilder är minst en gång i månaden.
Beräkningsnoder uppgraderas automatiskt till den senaste vm-avbildningsversionen när den versionen släpps. Du behöver inte vidta några åtgärder.
Kundhanterade Kubernetes-kluster
Med Kubernetes-beräkning kan du konfigurera Kubernetes-kluster för att träna, utföra slutsatsdragning och hantera modeller i Azure Mašinsko učenje.
Eftersom du hanterar miljön med Kubernetes är det ditt ansvar att hantera både säkerhetsrisker för virtuella operativsystem och sårbarheter för containeravbildningar.
Azure Mašinsko učenje publicerar ofta nya versioner av Azure Mašinsko učenje tilläggscontaineravbildningar i Microsoft Artifact Registry. Microsoft ansvarar för att se till att nya avbildningsversioner är fria från sårbarheter. Varje version åtgärdar sårbarheter.
När dina kluster kör jobb utan avbrott kan körningsjobb köra inaktuella containeravbildningsversioner. När du har uppgraderat amlarc
tillägget till ett kluster som körs börjar nyligen skickade jobb att använda den senaste avbildningsversionen. När du uppgraderar amlarc
tillägget till den senaste versionen rensar du de gamla containeravbildningsversionerna från klustren efter behov.
Om du vill se om ditt Azure Arc-kluster kör den senaste versionen av amlarc
använder du Azure-portalen. Under din Azure Arc-resurs av typen Kubernetes – Azure Arc går du till Tillägg för att hitta versionen av amlarc
tillägget.
AutoML- och Designer-miljöer
För kodbaserade träningsupplevelser styr du vilken Azure-Mašinsko učenje miljö som ska användas. Med AutoML och designern kapslas miljön in som en del av tjänsten. De här typerna av jobb kan köras på beräkningar som du konfigurerar för att tillåta extra kontroller, till exempel nätverksisolering.
AutoML-jobb körs på miljöer som lagrar ovanpå Azure Mašinsko učenje grundläggande Docker-avbildningar.
Designerjobb delas upp i komponenter. Varje komponent har en egen miljö som lagrar ovanpå Azure Mašinsko učenje docker-basavbildningar. Mer information om komponenter finns i komponentreferensen.