Zabezpečení pracovního prostoru služby Azure Machine Learning s využitím virtuálních sítí
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
Tip
Místo kroků v tomto článku můžete použít spravované virtuální sítě Azure Machine Learning. Se spravovanou virtuální sítí zpracovává Azure Machine Learning úlohu izolace sítě pro váš pracovní prostor a spravované výpočetní prostředky. Můžete také přidat privátní koncové body pro prostředky potřebné pracovním prostorem, jako je například účet služby Azure Storage. Další informace najdete v tématu Spravovaná izolace sítě pracovního prostoru.
V tomto článku se dozvíte, jak zabezpečit pracovní prostor Azure Machine Learning a jeho přidružené prostředky ve službě Azure Virtual Network.
Tento článek je součástí série o zabezpečení pracovního postupu služby Azure Machine Learning. Podívejte se na další články v této sérii:
- Přehled virtuální sítě
- Zabezpečení trénovacího prostředí
- Zabezpečení prostředí pro odvození
- Povolení funkcí studia
- Použití vlastní služby DNS
- Použití brány firewall
- Izolace sítě platformy API
Kurz vytvoření zabezpečeného pracovního prostoru najdete v tématu Kurz: Vytvoření zabezpečeného pracovního prostoru, šablony Bicep nebo šablony Terraformu.
V tomto článku se dozvíte, jak ve virtuální síti povolit následující prostředky pracovních prostorů:
- Pracovní prostor služby Azure Machine Learning
- Účty úložiště Azure
- Azure Key Vault
- Azure Container Registry
Požadavky
Přečtěte si článek s přehledem zabezpečení sítě a seznamte se s běžnými scénáři virtuální sítě a celkovou architekturou virtuální sítě.
Přečtěte si článek o osvědčených postupech služby Azure Machine Learning pro podnikové zabezpečení a seznamte se s osvědčenými postupy.
Existující virtuální síť a podsíť pro použití s výpočetními prostředky.
Upozorňující
Pro vaši virtuální síť nepoužívejte rozsah IP adres 172.17.0.0/16. Toto je výchozí rozsah podsítě používaný sítí mostu Docker a v případě použití pro vaši virtuální síť dojde k chybám. V závislosti na tom, co chcete k virtuální síti připojit, může docházet ke konfliktu s dalšími rozsahy. Pokud například plánujete k virtuální síti připojit místní síť, která také používá rozsah 172.16.0.0/16. Nakonec je na vás naplánovat síťovou infrastrukturu.
Pokud chcete nasadit prostředky do virtuální sítě nebo podsítě, musí mít váš uživatelský účet oprávnění k následujícím akcím v řízení přístupu na základě role v Azure (Azure RBAC):
- Microsoft.Network/*/read v prostředku virtuální sítě. Toto oprávnění není potřeba pro nasazení šablon Azure Resource Manageru (ARM).
- "Microsoft.Network/virtualNetworks/join/action" u prostředku virtuální sítě.
- Prostředek podsítě "Microsoft.Network/virtualNetworks/subnets/join/action".
Další informace o Azure RBAC se sítěmi najdete v předdefinovaných rolích sítě.
Azure Container Registry
Vaše služba Azure Container Registry musí být verze Premium. Další informace o upgradu najdete v tématu Změna skladových položek.
Pokud vaše služba Azure Container Registry používá privátní koncový bod, doporučujeme, aby byla ve stejné virtuální síti jako účet úložiště a cílové výpočetní objekty používané k trénování nebo odvozování. Může se ale také nacházet ve virtuální síti s partnerským vztahem.
Pokud používá koncový bod služby, musí být ve stejné virtuální síti a podsíti jako účet úložiště a cílové výpočetní objekty.
Váš pracovní prostor Azure Machine Learning musí obsahovat výpočetní cluster Služby Azure Machine Learning.
Omezení
Účet služby Azure Storage
Pokud plánujete používat studio Azure Machine Learning a účet úložiště je také ve virtuální síti, existují další požadavky na ověření:
- Pokud účet úložiště používá koncový bod služby, musí být privátní koncový bod pracovního prostoru a koncový bod služby úložiště ve stejné podsíti virtuální sítě.
- Pokud účet úložiště používá privátní koncový bod, musí být privátní koncový bod pracovního prostoru a privátní koncový bod úložiště ve stejné virtuální síti. V tomto případě se můžou nacházet v různých podsítích.
Azure Container Instances
Pokud je váš pracovní prostor Azure Machine Learning nakonfigurovaný s privátním koncovým bodem, nasazení do služby Azure Container Instances ve virtuální síti se nepodporuje. Místo toho zvažte použití spravovaného online koncového bodu s izolací sítě.
Azure Container Registry
Pokud je pracovní prostor Služby Azure Machine Learning nebo jakýkoli prostředek nakonfigurovaný s privátním koncovým bodem, může být potřeba nastavit uživatelský spravovaný výpočetní cluster pro sestavení imagí prostředí AzureML. Výchozí scénář využívá bezserverové výpočetní prostředky , které jsou aktuálně určené pro scénáře bez omezení sítě u prostředků přidružených k pracovnímu prostoru AzureML.
Důležité
Výpočetní cluster používaný k vytváření imagí Dockeru musí mít přístup k úložištím balíčků, která se používají k trénování a nasazování vašich modelů. Možná budete muset přidat pravidla zabezpečení sítě, která umožňují přístup k veřejným úložišťm, používat privátní balíčky Pythonu nebo používat vlastní image Dockeru (SDK v1), které už balíčky obsahují.
Upozorňující
Pokud služba Azure Container Registry používá ke komunikaci s virtuální sítí privátní koncový bod nebo koncový bod služby, nemůžete použít spravovanou identitu s výpočetním clusterem Azure Machine Learning.
Azure Monitor
Upozorňující
Azure Monitor podporuje připojení k virtuální síti pomocí služby Azure Private Link. Musíte ale použít otevřený režim Private Linku ve službě Azure Monitor. Další informace naleznete v tématu Režimy přístupu služby Private Link: Private only vs. Open.
Požadovaný veřejný internetový přístup
Azure Machine Learning vyžaduje příchozí i odchozí přístup k veřejnému internetu. Následující tabulky poskytují přehled požadovaného přístupu a účelu, který slouží. Pro značky služeb, které končí .region
, nahraďte region
oblastí Azure, která obsahuje váš pracovní prostor. Příklad: Storage.westus
Tip
Na požadované kartě je uvedena požadovaná příchozí a odchozí konfigurace. Na situační kartě jsou uvedeny volitelné příchozí a odchozí konfigurace vyžadované konkrétními konfiguracemi, které můžete chtít povolit.
Směr | Protokol a protokol ports |
Značka služby | Účel |
---|---|---|---|
Odchozí | TCP: 80, 443 | AzureActiveDirectory |
Ověřování pomocí Microsoft Entra ID. |
Odchozí | TCP: 443, 18881 UDP: 5831 |
AzureMachineLearning |
Použití služeb Azure Machine Learning. Python IntelliSense v poznámkových blocích používá port 18881. Vytvoření, aktualizace a odstranění výpočetní instance služby Azure Machine Learning používá port 5831. |
Odchozí | ANY: 443 | BatchNodeManagement.region |
Komunikace s back-endem služby Azure Batch pro výpočetní instance a clustery služby Azure Machine Learning |
Odchozí | TCP: 443 | AzureResourceManager |
Vytváření prostředků Azure pomocí azure Machine Learning, Azure CLI a sady Azure Machine Learning SDK |
Odchozí | TCP: 443 | Storage.region |
Přístup k datům uloženým v účtu služby Azure Storage pro výpočetní cluster a výpočetní instanci Informace o zabránění exfiltraci dat přes tento odchozí provoz naleznete v tématu Ochrana před exfiltrací dat. |
Odchozí | TCP: 443 | AzureFrontDoor.FrontEnd * V Microsoft Azure provozovaném společností 21Vianet není potřeba. |
Globální vstupní bod pro studio Azure Machine Learning. Ukládání imagí a prostředí pro automatizované strojové učení Informace o zabránění exfiltraci dat přes tento odchozí provoz naleznete v tématu Ochrana před exfiltrací dat. |
Odchozí | TCP: 443 | MicrosoftContainerRegistry.region Všimněte si , že tato značka má závislost na AzureFrontDoor.FirstParty značce. |
Získejte přístup k imagím Dockeru od Microsoftu. Nastavení směrovače Azure Machine Learning pro službu Azure Kubernetes Service |
Tip
Pokud místo značek služeb potřebujete IP adresy, použijte jednu z následujících možností:
- Stáhněte si seznam z rozsahů IP adres Azure a značek služeb.
- Použijte příkaz Azure CLI az network list-service-tags .
- Použijte příkaz Azure PowerShell Get-AzNetworkServiceTag .
IP adresy se můžou pravidelně měnit.
Pro instalaci balíčků vyžadovaných vaším projektem strojového učení možná budete muset povolit odchozí provoz na weby visual Studio Code a jiných webů než Microsoftu. V následující tabulce jsou uvedená běžně používaná úložiště pro strojové učení:
Název hostitele | Účel |
---|---|
anaconda.com *.anaconda.com |
Slouží k instalaci výchozích balíčků. |
*.anaconda.org |
Slouží k získání dat úložiště. |
pypi.org |
Používá se k výpisu závislostí z výchozího indexu( pokud existuje) a index se nepřepíše uživatelským nastavením. Pokud je index přepsán, musíte také povolit *.pythonhosted.org . |
cloud.r-project.org |
Používá se při instalaci balíčků CRAN pro vývoj R. |
*.pytorch.org |
Používá se v některých příkladech založených na PyTorchu. |
*.tensorflow.org |
Používá se v některých příkladech založených na Tensorflow. |
code.visualstudio.com |
Vyžaduje se ke stažení a instalaci desktopové verze editoru Visual Studio Code. To není nutné pro web editoru Visual Studio Code. |
update.code.visualstudio.com *.vo.msecnd.net |
Používá se k načtení bitů serveru editoru Visual Studio Code nainstalovaných ve výpočetní instanci pomocí instalačního skriptu. |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
Vyžaduje se ke stažení a instalaci rozšíření editoru Visual Studio Code. Tito hostitelé umožňují vzdálené připojení ke výpočetním instancím poskytovaným rozšířením Azure ML pro Visual Studio Code. Další informace najdete v tématu Připojení k výpočetní instanci služby Azure Machine Learning ve Visual Studio Code. |
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* |
Používá se k načtení bitů serveru websocket, které jsou nainstalované ve výpočetní instanci. Server WebSocket se používá k přenosu požadavků z klienta Visual Studio Code (desktopová aplikace) na server Visual Studio Code ve výpočetní instanci. |
Poznámka:
Při použití rozšíření Azure Machine Learning VS Code bude vzdálená výpočetní instance vyžadovat přístup k veřejným úložištím pro instalaci balíčků požadovaných rozšířením. Pokud výpočetní instance vyžaduje pro přístup k těmto veřejným úložištím nebo internetu proxy server, budete muset nastavit a exportovat proměnné prostředí HTTP_PROXY
a HTTPS_PROXY
v souboru ~/.bashrc
výpočetní instance. Tento proces je možné automatizovat při zřizování pomocí vlastního skriptu.
Při použití služby Azure Kubernetes Service (AKS) se službou Azure Machine Learning povolte následující provoz do virtuální sítě AKS:
- Obecné požadavky na příchozí a odchozí přenosy pro AKS, jak je popsáno v článku Omezení odchozího a odchozího provozu ve službě Azure Kubernetes Service .
- Odchozí do mcr.microsoft.com.
- Při nasazování modelu do clusteru AKS využijte pokyny v článku Nasazení modelů ML do služby Azure Kubernetes Service .
Informace o použití řešení brány firewall najdete v tématu Konfigurace požadované vstupní a výstupní komunikace.
Zabezpečení pracovního prostoru pomocí privátního koncového bodu
Azure Private Link umožňuje připojit se k pracovnímu prostoru pomocí privátního koncového bodu. Privátní koncový bod je sada privátních IP adres ve vaší virtuální síti. Pak můžete omezit přístup k vašemu pracovnímu prostoru tak, aby k nim docházelo jenom přes privátní IP adresy. Privátní koncový bod pomáhá snížit riziko exfiltrace dat.
Další informace o konfiguraci privátního koncového bodu pro váš pracovní prostor najdete v tématu Postup konfigurace privátního koncového bodu.
Upozorňující
Zabezpečení pracovního prostoru pomocí privátních koncových bodů nezajistí kompletní zabezpečení sama o sobě. Pokud chcete zabezpečit jednotlivé komponenty vašeho řešení, musíte postupovat podle kroků ve zbývající části tohoto článku a řady virtuálních sítí. Pokud například pro pracovní prostor používáte privátní koncový bod, ale váš účet úložiště Azure není za virtuální sítí, provoz mezi pracovním prostorem a úložištěm k zabezpečení nepoužívá virtuální síť.
Zabezpečení účtů úložiště Azure
Služba Azure Machine Learning podporuje účty úložiště nakonfigurované tak, aby používaly privátní koncový bod nebo koncový bod služby.
Na webu Azure Portal vyberte účet úložiště Azure.
Informace v části Použití privátních koncových bodů pro Azure Storage použijte k přidání privátních koncových bodů pro následující prostředky úložiště:
- Objekt blob
- Soubor
- Fronta – vyžaduje se pouze v případě, že plánujete používat koncové body služby Batch nebo ParallelRunStep v kanálu služby Azure Machine Learning.
- Tabulka – Vyžaduje se pouze v případě, že plánujete používat koncové body služby Batch nebo ParallelRunStep v kanálu služby Azure Machine Learning.
Tip
Při konfiguraci účtu úložiště, který není výchozím úložištěm, vyberte typ cílového podsourcu, který odpovídá účtu úložiště, který chcete přidat.
Po vytvoření privátních koncových bodů pro prostředky úložiště vyberte kartu Brány firewall a virtuální sítě v části Sítě pro účet úložiště.
Vyberte Vybrané sítě a pak v části Instance prostředků vyberte
Microsoft.MachineLearningServices/Workspace
jako typ prostředku. Vyberte pracovní prostor pomocí názvu instance. Další informace najdete v tématu Důvěryhodný přístup na základě spravované identity přiřazené systémem.Tip
Případně můžete v seznamu důvěryhodných služeb vybrat Možnost Povolit službám Azure přístup k tomuto účtu úložiště, abyste přístup z důvěryhodných služeb umožnili obecněji. Další informace najdete v tématu Konfigurace virtuálních sítí a bran firewall Azure Storage.
Výběrem tlačítka Uložit konfiguraci uložte.
Tip
Při použití privátního koncového bodu můžete také zakázat anonymní přístup. Další informace najdete v tématu zakázání anonymního přístupu.
Zabezpečení služby Azure Key Vault
Azure Machine Learning používá přidruženou instanci služby Key Vault k uložení následujících přihlašovacích údajů:
- Přidružený účet úložiště připojovací řetězec
- Hesla k instancím úložiště kontejnerů Azure
- Připojovací řetězce k úložištům dat
Trezor klíčů Azure je možné nakonfigurovat tak, aby používal privátní koncový bod nebo koncový bod služby. Pokud chcete používat možnosti experimentování ve službě Azure Machine Learning se službou Azure Key Vault za virtuální sítí, postupujte následovně:
Tip
Doporučujeme, aby trezor klíčů byl ve stejné virtuální síti jako pracovní prostor, ale může být v partnerské virtuální síti.
Informace o použití privátního koncového bodu se službou Azure Key Vault najdete v tématu Integrace služby Key Vault se službou Azure Private Link.
Povolení služby Azure Container Registry (ACR)
Tip
Pokud jste při vytváření pracovního prostoru nepoužili existující službu Azure Container Registry, nemusí existovat. Ve výchozím nastavení pracovní prostor nevytvoří instanci ACR, dokud ji nebude potřebovat. Pokud chcete vynutit vytvoření jednoho, vytrénujte nebo nasaďte model pomocí pracovního prostoru před použitím kroků v této části.
Službu Azure Container Registry je možné nakonfigurovat tak, aby používala privátní koncový bod. Pomocí následujících kroků nakonfigurujte pracovní prostor tak, aby používal ACR, když je ve virtuální síti:
Pomocí jedné z následujících metod vyhledejte název služby Azure Container Registry pro váš pracovní prostor:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
Pokud jste nainstalovali rozšíření Machine Learning v2 pro Azure CLI, můžete pomocí
az ml workspace show
příkazu zobrazit informace o pracovním prostoru. Rozšíření v1 nevrací tyto informace.az ml workspace show -n yourworkspacename -g resourcegroupname --query 'container_registry'
Tento příkaz vrátí hodnotu podobnou
"/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}"
. Poslední částí řetězce je název služby Azure Container Registry pro pracovní prostor.Omezte přístup k virtuální síti pomocí kroků v privátním připojení ke službě Azure Container Registry. Při přidávání virtuální sítě vyberte virtuální síť a podsíť pro prostředky Služby Azure Machine Learning.
Nakonfigurujte ACR pro pracovní prostor tak, aby umožňoval přístup důvěryhodnými službami.
Azure Machine Learning se ve výchozím nastavení pokusí vytvořit image pomocí bezserverového výpočetního prostředí . To funguje jenom v případě, že prostředky závislé na pracovním prostoru, jako je účet úložiště nebo container Registry, nejsou v žádném omezení sítě (privátní koncové body). Pokud jsou prostředky závislé na pracovním prostoru omezené na síť, použijte místo toho výpočetní prostředí image-build.
Pokud chcete nastavit výpočetní prostředky založené na imagi, vytvořte výpočetní cluster procesoru Služby Azure Machine Learning ve stejné virtuální síti jako prostředky závislé na pracovním prostoru. Tento cluster pak můžete nastavit jako výchozí výpočetní prostředky sestavení imagí a použije se k sestavení každé image v pracovním prostoru od tohoto okamžiku. Pomocí jedné z následujících metod nakonfigurujte pracovní prostor tak, aby sestavil image Dockeru pomocí výpočetního clusteru.
Důležité
Při použití výpočetního clusteru pro sestavení imagí platí následující omezení:
- Podporuje se jenom skladová položka procesoru.
- Pokud používáte výpočetní cluster nakonfigurovaný pro žádnou veřejnou IP adresu, musíte clusteru poskytnout nějaký způsob, jak získat přístup k veřejnému internetu. Přístup k internetu se vyžaduje při přístupu k imagím uloženým ve službě Microsoft Container Registry, balíčcích nainstalovaných v Pypi, Conda atd. Pokud chcete získat přístup k internetu, musíte nakonfigurovat směrování definované uživatelem (UDR). Můžete například použít veřejnou IP adresu brány firewall nebo použít překlad adres (NAT ) virtuální sítě s veřejnou IP adresou. Další informace najdete v tématu Bezpečné trénování ve virtuální síti.
K nastavení výpočetních prostředků sestavení můžete použít
az ml workspace update
příkaz. Příkaz je stejný pro rozšíření Azure CLI verze 1 i v2 pro strojové učení. V následujícím příkazu nahraďtemyworkspace
názvem pracovního prostoru skupinu prostředků,myresourcegroup
která obsahuje pracovní prostor, amycomputecluster
názvem výpočetního clusteru:az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
Zpět na výpočetní prostředky bez serveru můžete přepnout spuštěním stejného příkazu a odkazováním na výpočetní prostředky jako prázdné místo:
--image-build-compute ''
Tip
Pokud je ACR za virtuální sítí, můžete k ní také zakázat veřejný přístup .
Zabezpečení služby Azure Monitor a Application Insights
Pokud chcete povolit izolaci sítě pro Azure Monitor a instanci Application Insights pro pracovní prostor, postupujte takto:
Otevřete prostředek Application Insights na portálu Azure. Karta Přehled může nebo nemusí mít vlastnost Pracovní prostor. Pokud vlastnost nemá, proveďte krok 2. Pokud ano, můžete pokračovat přímo ke kroku 3.
Tip
Nové pracovní prostory ve výchozím nastavení vytvářejí prostředek Application Insights založený na pracovním prostoru. Pokud jste pracovní prostor vytvořili v nedávné době, nemusíte provádět krok 2.
Upgradujte instanci Application Insights pro váš pracovní prostor. Postup upgradu najdete v tématu Migrace na prostředky Application Insights založené na pracovních prostorech.
Vytvořte obor služby Azure Monitor Private Link a přidejte instanci Application Insights z kroku 1 do oboru. Další informace najdete v tématu Konfigurace privátního propojení služby Azure Monitor.
Bezpečné připojení k pracovnímu prostoru
Pokud se chcete připojit k pracovnímu prostoru zabezpečenému za virtuální sítí, použijte jednu z následujících metod:
Azure VPN Gateway – Připojí místní sítě k virtuální síti přes privátní připojení. Připojení se provádí přes veřejný internet. Existují dva typy bran VPN, které můžete použít:
- Point-to-site: Každý klientský počítač používá klienta VPN pro připojení k virtuální síti.
- Site-to-site: Zařízení VPN připojí virtuální síť k místní síti.
ExpressRoute – Připojuje místní sítě k cloudu přes privátní připojení. Připojení se provádí pomocí poskytovatele připojení.
Azure Bastion – V tomto scénáři vytvoříte virtuální počítač Azure (někdy označovaný jako jump box) uvnitř virtuální sítě. Pak se k virtuálnímu počítači připojíte pomocí služby Azure Bastion. Bastion umožňuje připojení k virtuálnímu počítači pomocí relace RDP nebo SSH z místního webového prohlížeče. Pak jako vývojové prostředí použijete jump box. Vzhledem k tomu, že je uvnitř virtuální sítě, má přímý přístup k pracovnímu prostoru. Příklad použití jump boxu najdete v tématu Kurz: Vytvoření zabezpečeného pracovního prostoru.
Důležité
Pokud používáte bránu VPN nebo ExpressRoute, budete muset naplánovat fungování překladu ip adres mezi místními prostředky a prostředky ve virtuální síti. Další informace najdete v tématu Použití vlastního serveru DNS.
Pokud máte problémy s připojením k pracovnímu prostoru, přečtěte si téma Řešení potíží se zabezpečeným připojením k pracovnímu prostoru.
Diagnostika pracovního prostoru
Diagnostiku pracovního prostoru můžete spustit z studio Azure Machine Learning nebo sady Python SDK. Po spuštění diagnostiky se vrátí seznam případných zjištěných problémů. Tento seznam obsahuje odkazy na možná řešení. Další informace naleznete v tématu Použití diagnostiky pracovního prostoru.
Veřejný přístup k pracovnímu prostoru
Důležité
I když se jedná o podporovanou konfiguraci pro Azure Machine Learning, Microsoft ji nedoporučuje. Tuto konfiguraci byste měli před použitím v produkčním prostředí ověřit u týmu zabezpečení.
V některých případech možná budete muset povolit přístup k pracovnímu prostoru z veřejné sítě (bez připojení přes virtuální síť pomocí metod podrobně popsaných v části Bezpečné připojení k vašemu pracovnímu prostoru ). Přístup přes veřejný internet je zabezpečený pomocí protokolu TLS.
Pokud chcete povolit přístup k pracovnímu prostoru přes veřejnou síť, postupujte následovně:
- Po konfiguraci privátního koncového bodu pracovního prostoru povolte veřejný přístup k pracovnímu prostoru.
- Nakonfigurujte bránu firewall služby Azure Storage tak, aby umožňovala komunikaci s IP adresou klientů, kteří se připojují přes veřejný internet. Možná budete muset změnit povolenou IP adresu, pokud klienti nemají statickou IP adresu. Pokud například některý z vašich Datoví vědci pracuje z domova a nemůže navázat připojení VPN k virtuální síti.
Další kroky
Tento článek je součástí série o zabezpečení pracovního postupu služby Azure Machine Learning. Podívejte se na další články v této sérii: