Zabezpečení pracovního prostoru Azure Machine Learning pomocí virtuálních sítí (v1)
PLATÍ PRO:Rozšíření Azure CLI ml v1Python SDK azureml v1
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.
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.
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
- Úložiště dat a datové sady služby Azure Machine Learning
- 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 azure Container Registry používá privátní koncový bod, musí být 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í. 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ě se také nachází ve virtuální síti, je potřeba splnit další požadavky na ověření:
- Pokud účet úložiště používá koncový bod služby, privátní koncový bod pracovního prostoru a koncový bod služby úložiště se musí nacházet ve stejné podsíti virtuální sítě.
- Pokud účet úložiště používá privátní koncový bod, privátní koncový bod pracovního prostoru a privátní koncový bod úložiště se musí nacházet 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 pracovní prostor služby Azure Machine Learning nakonfigurovaný s privátním koncovým bodem, nasazení do 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
Když je ACR za virtuální sítí, Azure Machine Learning ji nemůže použít k přímému sestavování imagí Dockeru. Místo toho se výpočetní cluster používá k sestavení imagí.
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, 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žívání řešení brány firewall najdete v tématu Použití brány firewall se službou Azure Machine Learning.
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žít ParallelRunStep v kanálu Služby Azure Machine Learning.
- Tabulka – Vyžaduje se pouze v případě, že plánujete použít 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
Bez ohledu na to, jestli používáte privátní koncový bod nebo koncový bod služby, musí být trezor klíčů ve stejné síti jako privátní koncový bod pracovního prostoru.
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 v1
Pokud jste nainstalovali rozšíření Machine Learning v1 pro Azure CLI, můžete pomocí
az ml workspace show
příkazu zobrazit informace o pracovním prostoru.az ml workspace show -w yourworkspacename -g resourcegroupname --query 'containerRegistry'
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.
Vytvoření výpočetního clusteru Azure Machine Learning Tento cluster slouží k vytváření imagí Dockeru, když je ACR za virtuální sítí. Další informace najdete v tématu Vytvoření výpočetního clusteru.
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
Tip
Pokud je ACR za virtuální sítí, můžete k ní také zakázat veřejný přístup .
Úložiště dat a datové sady
Následující tabulka uvádí služby, pro které je potřeba přeskočit ověření:
Služba | Vyžaduje se přeskočit ověření? |
---|---|
Azure Blob Storage | Ano |
Sdílená složka Azure | Ano |
Azure Data Lake Store Gen1 | No |
Azure Data Lake Store Gen2 | No |
Azure SQL Database | Ano |
PostgreSQL | Ano |
Poznámka:
Azure Data Lake Store Gen1 a Azure Data Lake Store Gen2 ve výchozím nastavení přeskočí ověřování, takže nemusíte nic dělat.
Následující ukázka kódu vytvoří nové úložiště dat Objektů blob v Azure a nastaví skip_validation=True
.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
datastore_name=blob_datastore_name,
container_name=container_name,
account_name=account_name,
account_key=account_key,
skip_validation=True ) // Set skip_validation to true
Použití datových sad
Syntaxe pro přeskočení ověření datové sady je podobná pro následující typy datových sad:
- Soubor s oddělovači
- JSON
- Parquet
- SQL
- Soubor
Následující kód vytvoří novou datovou sadu JSON a nastaví validate=False
.
json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths,
validate=False)
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:
Na webu Azure Portal otevřete prostředek Application Insights. 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. Postup 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.
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: