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:

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í:

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:

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.

  1. Na webu Azure Portal vyberte účet úložiště Azure.

  2. 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.

    Snímek obrazovky zobrazující stránku konfigurace privátního koncového bodu s možnostmi objektů blob a souborů

    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.

  3. 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ě.

  4. 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.

    Síťová oblast na stránce Azure Storage na webu Azure Portal při použití privátního koncového bodu

  5. 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:

  1. 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.

  2. 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.

  3. Nakonfigurujte ACR pro pracovní prostor tak, aby umožňoval přístup důvěryhodnými službami.

  4. 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.

  5. 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ďte myworkspace názvem pracovního prostoru skupinu prostředků, myresourcegroup která obsahuje pracovní prostor, a mycomputecluster 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:

  1. 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.

  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.

  3. 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: