Skydda en Azure Machine Learning-träningsmiljö med virtuella nätverk
GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)
Dricks
Du kan använda azure machine learning-hanterade virtuella nätverk i stället för stegen i den här artikeln. Med ett hanterat virtuellt nätverk hanterar Azure Machine Learning jobbet med nätverksisolering för din arbetsyta och hanterade beräkningar. Du kan också lägga till privata slutpunkter för resurser som behövs av arbetsytan, till exempel Azure Storage-konto. Mer information finns i Hanterad nätverksisolering för arbetsyta.
Azure Machine Learning-beräkningsinstanser, serverlös beräkning och beräkningskluster kan användas för att på ett säkert sätt träna modeller i ett virtuellt Azure-nätverk. När du planerar din miljö kan du konfigurera beräkningsinstansen/klustret eller serverlös beräkning med eller utan en offentlig IP-adress. De allmänna skillnaderna mellan de två är:
- Ingen offentlig IP-adress: Minskar kostnaderna eftersom den inte har samma nätverksresurskrav. Förbättrar säkerheten genom att ta bort kravet på inkommande trafik från Internet. Det krävs dock ytterligare konfigurationsändringar för att aktivera utgående åtkomst till nödvändiga resurser (Microsoft Entra-ID, Azure Resource Manager osv.).
- Offentlig IP-adress: Fungerar som standard, men kostar mer på grund av ytterligare Azure-nätverksresurser. Kräver inkommande kommunikation från Azure Machine Learning-tjänsten via det offentliga Internet.
Följande tabell innehåller skillnaderna mellan dessa konfigurationer:
Konfiguration | Med offentlig IP-adress | Utan offentlig IP-adress |
---|---|---|
Inkommande trafik | AzureMachineLearning tjänsttagg. |
Ingen |
Utgående trafik | Som standard kan du komma åt det offentliga Internet utan begränsningar. Du kan begränsa vad den får åtkomst till med hjälp av en nätverkssäkerhetsgrupp eller brandvägg. |
Som standard kan du komma åt det offentliga nätverket med hjälp av standardåtkomsten för utgående trafik som tillhandahålls av Azure. Vi rekommenderar att du använder en NAT-gateway för virtuellt nätverk eller brandvägg i stället om du behöver dirigera utgående trafik till nödvändiga resurser på Internet. |
Azure-nätverksresurser | Offentlig IP-adress, lastbalanserare, nätverksgränssnitt | Ingen |
Du kan också använda Azure Databricks eller HDInsight för att träna modeller i ett virtuellt nätverk.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln är en del av en serie om att skydda ett Azure Machine Learning-arbetsflöde. Se de andra artiklarna i den här serien:
- Översikt över virtuella nätverk
- Skydda arbetsytans resurser
- Skydda slutsatsdragningsmiljön
- Aktivera studiofunktioner
- Använda anpassad DNS
- Använda en brandvägg
En självstudiekurs om hur du skapar en säker arbetsyta finns i Självstudie: Skapa en säker arbetsyta, Bicep-mall eller Terraform-mall.
I den här artikeln får du lära dig hur du skyddar följande träningsberäkningsresurser i ett virtuellt nätverk:
- Azure Machine Learning-beräkningskluster
- Azure Machine Learning-beräkningsinstans
- Serverlös beräkning i Azure Machine Learning
- Azure Databricks
- Virtuell dator
- HDInsight-kluster
Förutsättningar
Läs artikeln Översikt över nätverkssäkerhet för att förstå vanliga scenarier för virtuella nätverk och övergripande arkitektur för virtuella nätverk.
Ett befintligt virtuellt nätverk och undernät som ska användas med dina beräkningsresurser. Det här virtuella nätverket måste finnas i samma prenumeration som din Azure Machine Learning-arbetsyta.
- Vi rekommenderar att du placerar de lagringskonton som används av arbetsytan och träningsjobben i samma Azure-region som du planerar att använda för beräkningsinstanser, serverlös beräkning och kluster. Om de inte finns i samma Azure-region kan det medföra kostnader för dataöverföring och ökad nätverksfördröjning.
- Kontrollera att WebSocket-kommunikation tillåts till
*.instances.azureml.net
och*.instances.azureml.ms
i ditt VNet. WebSockets används av Jupyter på beräkningsinstanser.
Ett befintligt undernät i det virtuella nätverket. Det här undernätet används när du skapar beräkningsinstanser, kluster och noder för serverlös beräkning.
- Kontrollera att undernätet inte delegeras till andra Azure-tjänster.
- Kontrollera att undernätet innehåller tillräckligt med kostnadsfria IP-adresser. Varje beräkningsinstans kräver en IP-adress. Varje nod i ett beräkningskluster och varje serverlös beräkningsnod kräver en IP-adress.
Om du har en egen DNS-server rekommenderar vi att du använder DNS-vidarebefordran för att matcha de fullständigt kvalificerade domännamnen (FQDN) för beräkningsinstanser och kluster. Mer information finns i Använda en anpassad DNS med Azure Machine Learning.
Om du vill distribuera resurser till ett virtuellt nätverk eller undernät måste ditt användarkonto ha behörighet till följande åtgärder i rollbaserad åtkomstkontroll i Azure (Azure RBAC):
- "Microsoft.Network/*/read" på den virtuella nätverksresursen. Den här behörigheten behövs inte för distributioner av Azure Resource Manager-mallar (ARM).
- "Microsoft.Network/virtualNetworks/join/action" på den virtuella nätverksresursen.
- "Microsoft.Network/virtualNetworks/subnets/join/action" på undernätsresursen.
Mer information om Azure RBAC med nätverk finns i inbyggda nätverksroller
Begränsningar
Beräkningskluster/instans och serverlös beräkningsdistribution i det virtuella nätverket stöds inte med Azure Lighthouse.
Port 445 måste vara öppen för privat nätverkskommunikation mellan dina beräkningsinstanser och standardlagringskontot under träning. Om dina beräkningar till exempel finns i ett virtuellt nätverk och lagringskontot finns i ett annat ska du inte blockera port 445 till det virtuella nätverkets lagringskonto.
Beräkningskluster i ett annat virtuellt nätverk/en annan region än arbetsytan
Viktigt!
Du kan inte skapa en beräkningsinstans i en annan region/ett annat VNet, bara ett beräkningskluster.
Om du vill skapa ett beräkningskluster i ett virtuellt Azure-nätverk i en annan region än ditt virtuella arbetsytenätverk har du några alternativ för att aktivera kommunikation mellan de två virtuella nätverken.
- Använd VNet-peering.
- Lägg till en privat slutpunkt för din arbetsyta i det virtuella nätverk som ska innehålla beräkningsklustret.
Viktigt!
Oavsett vilken metod som valts måste du också skapa det virtuella nätverket för beräkningsklustret. Azure Machine Learning skapar den inte åt dig.
Du måste också tillåta att standardlagringskontot, Azure Container Registry och Azure Key Vault får åtkomst till det virtuella nätverket för beräkningsklustret. Det finns flera sätt att åstadkomma detta. Du kan till exempel skapa en privat slutpunkt för varje resurs i det virtuella nätverket för beräkningsklustret, eller så kan du använda VNet-peering för att tillåta arbetsytans virtuella nätverk att komma åt det virtuella beräkningsklustrets virtuella nätverk.
Scenario: VNet-peering
Konfigurera din arbetsyta så att den använder ett virtuellt Azure-nätverk. Mer information finns i Skydda dina arbetsyteresurser.
Skapa ett andra virtuellt Azure-nätverk som ska användas för dina beräkningskluster. Den kan finnas i en annan Azure-region än den som används för din arbetsyta.
Konfigurera VNet-peering mellan de två virtuella nätverken.
Dricks
Vänta tills VNet-peeringstatusen är Ansluten innan du fortsätter.
privatelink.api.azureml.ms
Ändra DNS-zonen för att lägga till en länk till det virtuella nätverket för beräkningsklustret. Den här zonen skapas av din Azure Machine Learning-arbetsyta när den använder en privat slutpunkt för att delta i ett virtuellt nätverk.Lägg till en ny virtuell nätverkslänk till DNS-zonen. Du kan göra detta på flera olika sätt:
- Från Azure Portal navigerar du till DNS-zonen och väljer Virtuella nätverkslänkar. Välj sedan + Lägg till och välj det virtuella nätverk som du skapade för dina beräkningskluster.
- Använd kommandot från Azure CLI
az network private-dns link vnet create
. Mer information finns i az network private-dns link vnet create. - Använd kommandot från
New-AzPrivateDnsVirtualNetworkLink
Azure PowerShell. Mer information finns i New-AzPrivateDnsVirtualNetworkLink.
Upprepa föregående steg och understeg för
privatelink.notebooks.azure.net
DNS-zonen.Konfigurera följande Azure-resurser för att tillåta åtkomst från båda virtuella nätverken.
- Standardlagringskontot för arbetsytan.
- Azure Container-registret för arbetsytan.
- Azure Key Vault för arbetsytan.
Dricks
Det finns flera sätt som du kan konfigurera dessa tjänster för att tillåta åtkomst till de virtuella nätverken. Du kan till exempel skapa en privat slutpunkt för varje resurs i båda de virtuella nätverken. Eller så kan du konfigurera resurserna så att de tillåter åtkomst från båda de virtuella nätverken.
Skapa ett beräkningskluster som vanligt när du använder ett virtuellt nätverk, men välj det virtuella nätverk som du skapade för beräkningsklustret. Om det virtuella nätverket finns i en annan region väljer du den regionen när du skapar beräkningsklustret.
Varning
Om det är en annan region än din arbetsyta eller dina datalager när du ställer in regionen kan du se ökade kostnader för nätverksfördröjning och dataöverföring. Svarstiden och kostnaderna kan uppstå när klustret skapas och när jobb körs på det.
Scenario: Privat slutpunkt
Konfigurera din arbetsyta så att den använder ett virtuellt Azure-nätverk. Mer information finns i Skydda dina arbetsyteresurser.
Skapa ett andra virtuellt Azure-nätverk som ska användas för dina beräkningskluster. Den kan finnas i en annan Azure-region än den som används för din arbetsyta.
Skapa en ny privat slutpunkt för din arbetsyta i det virtuella nätverk som ska innehålla beräkningsklustret.
Om du vill lägga till en ny privat slutpunkt med hjälp av Azure Portal väljer du din arbetsyta och sedan Nätverk. Välj Privata slutpunktsanslutningar, + Privat slutpunkt och använd fälten för att skapa en ny privat slutpunkt.
- När du väljer Region väljer du samma region som ditt virtuella nätverk.
- När du väljer Resurstyp använder du Microsoft.MachineLearningServices/workspaces.
- Ange resursen till namnet på arbetsytan.
- Ange det virtuella nätverket och undernätet till det virtuella nätverk och undernät som du skapade för dina beräkningskluster.
Slutligen väljer du Skapa för att skapa den privata slutpunkten.
Om du vill lägga till en ny privat slutpunkt med hjälp av Azure CLI använder du
az network private-endpoint create
. Ett exempel på hur du använder det här kommandot finns i Konfigurera en privat slutpunkt för Azure Machine Learning-arbetsytan.
Skapa ett beräkningskluster som vanligt när du använder ett virtuellt nätverk, men välj det virtuella nätverk som du skapade för beräkningsklustret. Om det virtuella nätverket finns i en annan region väljer du den regionen när du skapar beräkningsklustret.
Varning
Om det är en annan region än din arbetsyta eller dina datalager när du ställer in regionen kan du se ökade kostnader för nätverksfördröjning och dataöverföring. Svarstiden och kostnaderna kan uppstå när klustret skapas och när jobb körs på det.
Beräkningsinstans/kluster eller serverlös beräkning utan offentlig IP-adress
Viktigt!
Den här informationen är endast giltig när du använder ett virtuellt Azure-nätverk. Om du använder ett hanterat virtuellt nätverk kan beräkningsresurser inte distribueras i ditt virtuella Azure-nätverk. Information om hur du använder ett hanterat virtuellt nätverk finns i Hanterad beräkning med ett hanterat nätverk.
Viktigt!
Om du har använt beräkningsinstanser eller beräkningskluster som konfigurerats för ingen offentlig IP-adress utan att du har valt förhandsversionen måste du ta bort och återskapa dem efter den 20 januari 2023 (när funktionen är allmänt tillgänglig).
Om du tidigare använde förhandsversionen av ingen offentlig IP-adress kan du också behöva ändra vilken trafik du tillåter inkommande och utgående trafik, eftersom kraven har ändrats för allmän tillgänglighet:
- Utgående krav – ytterligare två utgående, som endast används för hantering av beräkningsinstanser och kluster. Målet för dessa tjänsttaggar ägs av Microsoft:
AzureMachineLearning
tjänsttagg på UDP-port 5831.BatchNodeManagement
tjänsttagg på TCP-port 443.
Följande konfigurationer är utöver de som anges i avsnittet Krav och är specifika för att skapa beräkningsinstanser/kluster som har konfigurerats utan offentlig IP-adress. De gäller även för serverlös beräkning:
Du måste använda en privat slutpunkt för arbetsytan för beräkningsresursen för att kommunicera med Azure Machine Learning-tjänster från det virtuella nätverket. Mer information finns i Konfigurera en privat slutpunkt för Azure Machine Learning-arbetsytan.
I ditt virtuella nätverk tillåter du utgående trafik till följande tjänsttaggar eller fullständiga domännamn (FQDN):
Tjänsttagg Protokoll Port Kommentar AzureMachineLearning
TCP
UDP443/8787/18881
5831Kommunikation med Azure Machine Learning-tjänsten. BatchNodeManagement.<region>
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch. Beräkningsinstanser och beräkningskluster implementeras med hjälp av Azure Batch-tjänsten.Storage.<region>
TCP 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Den här tjänsttaggen används för att kommunicera med det Azure Storage-konto som används av Azure Batch.Viktigt!
Den utgående åtkomsten till
Storage.<region>
kan potentiellt användas för att exfiltera data från din arbetsyta. Genom att använda en tjänstslutpunktsprincip kan du minska den här sårbarheten. Mer information finns i artikeln Skydd mot dataexfiltrering i Azure Machine Learning.FQDN Protokoll Port Kommentar <region>.tundra.azureml.ms
UDP 5831 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta.graph.windows.net
TCP 443 Kommunikation med Microsoft Graph API. *.instances.azureml.ms
TCP 443/8787/18881 Kommunikation med Azure Machine Learning. *.<region>.batch.azure.com
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch.*.<region>.service.batch.azure.com
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch.*.blob.core.windows.net
TCP 443 Kommunikation med Azure Blob Storage. *.queue.core.windows.net
TCP 443 Kommunikation med Azure Queue Storage. *.table.core.windows.net
TCP 443 Kommunikation med Azure Table Storage. Som standard har beräkningsinstans/datorkluster konfigurerad utan offentlig IP inte utgående åtkomst till internet. Om du kan komma åt Internet från det beror det på Azures standardåtkomst till utgående trafik och du har en NSG som tillåter utgående trafik till Internet. Vi rekommenderar emellertid inte att du använder standardåtkomsten för utgående trafik. Om du behöver utgående åtkomst till Internet rekommenderar vi att du antingen använder en brandvägg och utgående regler eller en NAT-gateway och nätverkstjänstgrupper för att tillåta utgående trafik i stället.
Mer information om utgående trafik som används av Azure Machine Learning finns i följande artiklar:
Mer information om tjänsttaggar som kan användas med Azure Firewall finns i artikeln Taggar för virtuella nätverkstjänster .
Använd följande information för att skapa en beräkningsinstans eller ett kluster utan offentlig IP-adress:
az ml compute create
Ersätt följande värden i kommandot:
rg
: Den resursgrupp som beräkningen ska skapas i.ws
: Namnet på Azure Machine Learning-arbetsytan.yourvnet
: Det virtuella Azure-nätverket.yoursubnet
: Det undernät som ska användas för beräkningen.AmlCompute
ellerComputeInstance
: Om duAmlCompute
anger skapas ett beräkningskluster.ComputeInstance
skapar en beräkningsinstans.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False
# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False
Använd följande information för att konfigurera serverlösa beräkningsnoder utan offentlig IP-adress i det virtuella nätverket för en viss arbetsyta:
Viktigt!
Om du inte använder någon offentlig IP-serverlös beräkning och arbetsytan använder en lista över tillåtna IP-adresser måste du lägga till en utgående privat slutpunkt till arbetsytan. Den serverlösa beräkningen måste kommunicera med arbetsytan, men när den konfigureras för ingen offentlig IP-adress använder den Azure Default Outbound för Internetåtkomst. Den offentliga IP-adressen för utgående trafik är dynamisk och kan inte läggas till i listan över tillåtna IP-adresser. Om du skapar en utgående privat slutpunkt till arbetsytan kan trafik från den serverlösa beräkning som är bunden till arbetsytan kringgå listan över tillåtna IP-adresser.
Skapa en arbetsyta:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
Uppdatera arbetsyta:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
Beräkningsinstans/kluster eller serverlös beräkning med offentlig IP-adress
Viktigt!
Den här informationen är endast giltig när du använder ett virtuellt Azure-nätverk. Om du använder ett hanterat virtuellt nätverk kan beräkningsresurser inte distribueras i ditt virtuella Azure-nätverk. Information om hur du använder ett hanterat virtuellt nätverk finns i Hanterad beräkning med ett hanterat nätverk.
Följande konfigurationer är utöver de som anges i avsnittet Krav och är specifika för att skapa beräkningsinstanser/kluster som har en offentlig IP-adress. De gäller även för serverlös beräkning:
Om du placerar flera beräkningsinstanser/kluster i ett virtuellt nätverk kan du behöva begära en kvotökning för en eller flera av dina resurser. Machine Learning-beräkningsinstansen eller klustret allokerar automatiskt nätverksresurser i resursgruppen som innehåller det virtuella nätverket. För varje beräkningsinstans eller kluster allokerar tjänsten följande resurser:
En nätverkssäkerhetsgrupp (NSG) skapas automatiskt. Denna NSG tillåter inkommande TCP-trafik på port 44224 från
AzureMachineLearning
tjänsttaggen.Viktigt!
Beräkningsinstanser och beräkningskluster skapar automatiskt en NSG med de regler som krävs.
Om du har en annan NSG på undernätsnivå får reglerna på NSG på undernätsnivå inte vara i konflikt med reglerna i den automatiskt skapade NSG:n.
Information om hur NSG:er filtrerar nätverkstrafiken finns i Så filtrerar nätverkssäkerhetsgrupper nätverkstrafik.
En lastbalanserare
För beräkningskluster tas dessa resurser bort varje gång klustret skalar ned till 0 noder och skapas vid uppskalning.
För en beräkningsinstans behålls resurserna tills instansen tas bort. Att stoppa instansen tar inte bort resurserna.
Viktigt!
Dessa resurser begränsas av prenumerationens resurskvoter. Om resursgruppen för det virtuella nätverket är låst misslyckas borttagningen av beräkningsklustret/instansen. Det går inte att ta bort lastbalanseraren förrän beräkningsklustret/instansen har tagits bort. Se också till att det inte finns någon Azure Policy-tilldelning som förbjuder skapande av nätverkssäkerhetsgrupper.
Tillåt inkommande TCP-trafik på port 44224 från
AzureMachineLearning
tjänsttaggen i ditt virtuella nätverk.Viktigt!
Beräkningsinstansen/klustret tilldelas dynamiskt en IP-adress när den skapas. Eftersom adressen inte är känd innan den skapas och inkommande åtkomst krävs som en del av skapandeprocessen kan du inte statiskt tilldela den i brandväggen. Om du i stället använder en brandvägg med det virtuella nätverket måste du skapa en användardefinierad väg för att tillåta den inkommande trafiken.
I ditt virtuella nätverk tillåter du utgående trafik till följande tjänsttaggar:
Tjänsttagg Protokoll Port Kommentar AzureMachineLearning
TCP
UDP443/8787/18881
5831Kommunikation med Azure Machine Learning-tjänsten. BatchNodeManagement.<region>
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch. Beräkningsinstanser och beräkningskluster implementeras med hjälp av Azure Batch-tjänsten.Storage.<region>
TCP 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Den här tjänsttaggen används för att kommunicera med det Azure Storage-konto som används av Azure Batch.Viktigt!
Den utgående åtkomsten till
Storage.<region>
kan potentiellt användas för att exfiltera data från din arbetsyta. Genom att använda en tjänstslutpunktsprincip kan du minska den här sårbarheten. Mer information finns i artikeln Skydd mot dataexfiltrering i Azure Machine Learning.FQDN Protokoll Port Kommentar <region>.tundra.azureml.ms
UDP 5831 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta.graph.windows.net
TCP 443 Kommunikation med Microsoft Graph API. *.instances.azureml.ms
TCP 443/8787/18881 Kommunikation med Azure Machine Learning. *.<region>.batch.azure.com
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch.*.<region>.service.batch.azure.com
NÅGON 443 Ersätt <region>
med Azure-regionen som innehåller din Azure Machine Learning-arbetsyta. Kommunikation med Azure Batch.*.blob.core.windows.net
TCP 443 Kommunikation med Azure Blob Storage. *.queue.core.windows.net
TCP 443 Kommunikation med Azure Queue Storage. *.table.core.windows.net
TCP 443 Kommunikation med Azure Table Storage.
Använd följande information för att skapa en beräkningsinstans eller ett kluster med en offentlig IP-adress i det virtuella nätverket:
az ml compute create
Ersätt följande värden i kommandot:
rg
: Den resursgrupp som beräkningen ska skapas i.ws
: Namnet på Azure Machine Learning-arbetsytan.yourvnet
: Det virtuella Azure-nätverket.yoursubnet
: Det undernät som ska användas för beräkningen.AmlCompute
ellerComputeInstance
: Om duAmlCompute
anger skapas ett beräkningskluster.ComputeInstance
skapar en beräkningsinstans.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute
# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance
Använd följande information för att konfigurera serverlösa beräkningsnoder med en offentlig IP-adress i det virtuella nätverket för en viss arbetsyta:
Skapa en arbetsyta:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
Uppdatera arbetsyta:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
Azure Databricks
- Det virtuella nätverket måste finnas i samma prenumeration och region som Azure Machine Learning-arbetsytan.
- Om Azure Storage-kontona för arbetsytan också skyddas i ett virtuellt nätverk måste de finnas i samma virtuella nätverk som Azure Databricks-klustret.
- Förutom de databricks-private och databricks-offentliga undernät som används av Azure Databricks krävs även standardundernätet som skapats för det virtuella nätverket.
- Azure Databricks använder inte en privat slutpunkt för att kommunicera med det virtuella nätverket.
Specifik information om hur du använder Azure Databricks med ett virtuellt nätverk finns i Distribuera Azure Databricks i ditt virtuella Azure-nätverk.
Virtuell dator eller HDInsight-kluster
I det här avsnittet får du lära dig hur du använder en virtuell dator eller Ett Azure HDInsight-kluster i ett virtuellt nätverk med din arbetsyta.
Skapa den virtuella datorn eller HDInsight-klustret
Viktigt!
Azure Machine Learning stöder endast virtuella datorer som kör Ubuntu.
Skapa en virtuell dator eller ETT HDInsight-kluster med hjälp av Azure Portal eller Azure CLI och placera klustret i ett virtuellt Azure-nätverk. Mer information finns i följande artiklar:
Konfigurera nätverksportar
Tillåt att Azure Machine Learning kommunicerar med SSH-porten på den virtuella datorn eller klustret, konfigurera en källpost för nätverkssäkerhetsgruppen. SSH-porten är vanligtvis port 22. Gör följande för att tillåta trafik från den här källan:
I listrutan Källa väljer du Tjänsttagg.
I listrutan Källtjänsttagg väljer du AzureMachineLearning.
I listrutan Källportintervall väljer du *.
I listrutan Mål väljer du Alla.
I listrutan Målportintervall väljer du 22.
Under Protokoll väljer du Alla.
Under Åtgärd väljer du Tillåt.
Behåll standardreglerna för utgående trafik för nätverkssäkerhetsgruppen. Mer information finns i standardsäkerhetsreglerna i Säkerhetsgrupper.
Om du inte vill använda standardreglerna för utgående trafik och vill begränsa utgående åtkomst för ditt virtuella nätverk kan du läsa avsnittet om offentlig Internetåtkomst som krävs.
Koppla den virtuella datorn eller HDInsight-klustret
Koppla den virtuella datorn eller HDInsight-klustret till din Azure Machine Learning-arbetsyta. Mer information finns i Hantera beräkningsresurser för modellträning och distribution i studio.
Obligatorisk offentlig Internetåtkomst till träningsmodeller
Viktigt!
Medan föregående avsnitt i den här artikeln beskriver konfigurationer som krävs för att skapa beräkningsresurser, krävs konfigurationsinformationen i det här avsnittet för att använda dessa resurser för att träna modeller.
Azure Machine Learning kräver både inkommande och utgående åtkomst till det offentliga Internet. Följande tabeller ger en översikt över nödvändig åtkomst och vilket syfte den tjänar. För tjänsttaggar som slutar i .region
ersätter du region
med den Azure-region som innehåller din arbetsyta. Till exempel Storage.westus
:
Dricks
På den obligatoriska fliken visas den nödvändiga konfigurationen för inkommande och utgående trafik. På situationsfliken visas valfria konfigurationer för inkommande och utgående trafik som krävs av specifika konfigurationer som du kanske vill aktivera.
Riktning | Protokoll & portar |
Tjänsttagg | Syfte |
---|---|---|---|
Utgående | TCP: 80, 443 | AzureActiveDirectory |
Autentisering med Microsoft Entra ID. |
Utgående | TCP: 443, 18881 UDP: 5831 |
AzureMachineLearning |
Använda Azure Machine Learning Services. Python intellisense i notebook-filer använder port 18881. När du skapar, uppdaterar och tar bort en Azure Machine Learning-beräkningsinstans används port 5831. |
Utgående | ANY: 443 | BatchNodeManagement.region |
Kommunikation med Azure Batch-serverdelen för Azure Machine Learning-beräkningsinstanser/-kluster. |
Utgående | TCP: 443 | AzureResourceManager |
Skapa Azure-resurser med Azure Machine Learning, Azure CLI och Azure Machine Learning SDK. |
Utgående | TCP: 443 | Storage.region |
Få åtkomst till data som lagras i Azure Storage-kontot för beräkningskluster och beräkningsinstans. Information om hur du förhindrar dataexfiltrering över den här utgående informationen finns i Dataexfiltreringsskydd. |
Utgående | TCP: 443 | AzureFrontDoor.FrontEnd * Behövs inte i Microsoft Azure som drivs av 21Vianet. |
Global startpunkt för Azure Machine Learning-studio. Lagra avbildningar och miljöer för AutoML. Information om hur du förhindrar dataexfiltrering över den här utgående informationen finns i Dataexfiltreringsskydd. |
Utgående | TCP: 443 | MicrosoftContainerRegistry.region Observera att taggen har ett beroende av taggen AzureFrontDoor.FirstParty |
Åtkomst till Docker-avbildningar som tillhandahålls av Microsoft. Installation av Azure Machine Learning-routern för Azure Kubernetes Service. |
Dricks
Om du behöver IP-adresserna i stället för tjänsttaggar använder du något av följande alternativ:
- Ladda ned en lista från Azure IP-intervall och tjänsttaggar.
- Använd kommandot Azure CLI az network list-service-tags .
- Använd kommandot Azure PowerShell Get-AzNetworkServiceTag .
IP-adresserna kan ändras med jämna mellanrum.
Du kan också behöva tillåta utgående trafik till Visual Studio Code och andra webbplatser än Microsoft för installation av paket som krävs av ditt maskininlärningsprojekt. I följande tabell visas vanliga lagringsplatser för maskininlärning:
Värdnamn | Syfte |
---|---|
anaconda.com *.anaconda.com |
Används för att installera standardpaket. |
*.anaconda.org |
Används för att hämta lagringsplatsdata. |
pypi.org |
Används för att lista beroenden från standardindexet, om det finns några, och indexet skrivs inte över av användarinställningarna. Om indexet skrivs över måste du också tillåta *.pythonhosted.org . |
cloud.r-project.org |
Används vid installation av CRAN-paket för R-utveckling. |
*.pytorch.org |
Används av några exempel baserade på PyTorch. |
*.tensorflow.org |
Används av några exempel som baseras på Tensorflow. |
code.visualstudio.com |
Krävs för att ladda ned och installera Visual Studio Code Desktop. Detta krävs inte för Visual Studio Code Web. |
update.code.visualstudio.com *.vo.msecnd.net |
Används för att hämta Visual Studio Code-serverbitar som är installerade på beräkningsinstansen via ett installationsskript. |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
Krävs för att ladda ned och installera Visual Studio Code-tillägg. Dessa värdar aktiverar fjärranslutningen till Beräkningsinstanser som tillhandahålls av Azure ML-tillägget för Visual Studio Code. Mer information finns i Ansluta till en Azure Machine Learning-beräkningsinstans i Visual Studio Code. |
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* |
Används för att hämta websocket-serverbitar som är installerade på beräkningsinstansen. Websocket-servern används för att överföra begäranden från Visual Studio Code-klienten (skrivbordsprogrammet) till Visual Studio Code-servern som körs på beräkningsinstansen. |
Kommentar
När du använder Azure Machine Learning VS Code-tillägget kräver fjärrberäkningsinstansen åtkomst till offentliga lagringsplatser för att installera de paket som krävs av tillägget. Om beräkningsinstansen kräver en proxy för att få åtkomst till dessa offentliga lagringsplatser eller Internet måste du ange och exportera miljövariablerna HTTP_PROXY
och HTTPS_PROXY
i ~/.bashrc
-filen för beräkningsinstansen. Den här processen kan automatiseras vid etablering med hjälp av ett anpassat skript.
När du använder Azure Kubernetes Service (AKS) med Azure Machine Learning tillåter du följande trafik till det virtuella AKS-nätverket:
- Allmänna krav för inkommande/utgående trafik för AKS enligt beskrivningen i artikeln Begränsa utgående trafik i Azure Kubernetes Service .
- Utgående till mcr.microsoft.com.
- När du distribuerar en modell till ett AKS-kluster använder du vägledningen i artikeln Distribuera ML-modeller till Azure Kubernetes Service .
Information om hur du använder en brandväggslösning finns i Använda en brandvägg med Azure Machine Learning.
Nästa steg
Den här artikeln är en del av en serie om att skydda ett Azure Machine Learning-arbetsflöde. Se de andra artiklarna i den här serien: