Proteger um ambiente de treinamento do Azure Machine Learning com redes virtuais
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Dica
Você pode usar as redes virtuais gerenciadas do Azure Machine Learning em vez das etapas neste artigo. Com uma rede virtual gerenciada, o Azure Machine Learning lida com o trabalho de isolamento da rede para seu workspace e computação gerenciada. Você também pode adicionar pontos de extremidade privados para os recursos necessários para o workspace, como uma Conta de Armazenamento do Azure. Para obter mais informações, confira Isolamento de rede gerenciada no workspace.
A instância de computação, o cluster de cálculo e a computação sem servidor do Azure Machine Learning podem ser usados para treinar os modelos com segurança em uma rede virtual do Azure. Ao planejar seu ambiente, você pode configurar a instância de cluster/cluster de cálculo ou a computação sem servidor com ou sem um endereço IP público. As diferenças gerais entre os dois são:
- Sem IP público: reduz os custos, pois não tem os mesmos requisitos de recursos de rede. Aumenta a segurança removendo o requisito de tráfego de entrada da Internet. No entanto, alterações de configuração adicionais são necessárias para habilitar o acesso de saída a recursos necessários (Microsoft Entra ID, Azure Resource Manager, etc.).
- Com IP público: funciona por padrão, mas custa mais devido a recursos de rede adicionais do Azure. Requer a comunicação de entrada do serviço Azure Machine Learning pela Internet pública.
A seguinte tabela contém as diferenças entre essas configurações:
Configuração | Com IP público | Sem IP público |
---|---|---|
Tráfego de entrada | Marca de serviço AzureMachineLearning . |
Nenhum |
Tráfego de saída | Por padrão, pode acessar a Internet pública sem restrições. Você pode restringir o que é acessado usando um grupo de segurança de rede ou um firewall. |
Por padrão, é possível acessar a rede pública utilizando o acesso de saída padrão fornecido pelo Azure. Recomendamos o uso de um gateway ou Firewall NAT da Rede Virtual, se você precisar rotear o tráfego de saída para os recursos necessários na Internet. |
Recursos de rede do Azure | Endereço IP público, balanceador de carga, adaptador de rede | Nenhum |
Você também pode usar o Azure Databricks ou o HDInsight para treinar modelos em uma rede virtual.
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
Este artigo faz parte de uma série sobre como proteger um fluxo de trabalho do Azure Machine Learning. Confira os outros artigos desta série:
- Visão geral da rede virtual
- Proteger os recursos do workspace
- Proteger o ambiente de inferência
- Habilitar a funcionalidade do estúdio
- Usar o DNS personalizado
- Usar um firewall
Para um tutorial sobre como criar um espaço de trabalho seguro, consulte Tutorial: Criar um espaço de trabalho seguro, modelo Bicep, ou modelo Terraform.
Neste artigo, você aprenderá a proteger os seguintes recursos de computação de treinamento em uma rede virtual:
- Cluster de computação do Azure Machine Learning
- Instância de computação do Azure Machine Learning
- Computação sem servidor do Azure Machine Learning
- Azure Databricks
- Máquina Virtual
- Cluster HDInsight
Pré-requisitos
Leia o artigo Visão geral de segurança de rede para entender cenários comuns de rede virtual e toda a arquitetura de rede virtual.
Uma rede e sub-rede virtuais existentes para usar com os recursos de computação. Essa VNet precisa estar na mesma assinatura que o workspace do Azure Machine Learning.
- Recomendamos colocar as contas de armazenamento usadas por seu workspace e seus trabalhos de treinamento na mesma região do Azure que você planeja usar para os clusters de cálculo, as instâncias de computação e a computação sem servidor. Se eles não estiverem na mesma região do Azure, você poderá incorrer em custos de transferência de dados e em maior latência de rede.
- Verifique se a comunicação WebSocket tem permissão para
*.instances.azureml.net
e*.instances.azureml.ms
na VNet. WebSockets são usados pelo Jupyter em instâncias de computação.
Uma sub-rede existente na rede virtual. Essa sub-rede é usada ao criar instâncias de computação, clusters e nós para computação sem servidor.
- Verifique se a sub-rede não está delegada a outros serviços do Azure.
- Verifique se a sub-rede contém endereços IP livres suficientes. Cada instância de computação requer um endereço IP. Cada nó dentro de um cluster de computação e cada nó de computação sem servidor requer um endereço IP.
Se você tem um servidor DNS, recomendamos usar o encaminhamento DNS para resolver os FQDNs (nomes de domínio totalmente qualificados) dos clusters de cálculo e das instâncias de computação. Para obter mais informações, consulte Usar um DNS personalizado com o Azure Machine Learning.
Para implantar recursos em uma rede virtual ou sub-rede, sua conta de usuário deve ter permissões para as seguintes ações no RBAC do Azure (controle de acesso baseado em função do Azure):
- "Microsoft.Network/*/read" no recurso de rede virtual. Essa permissão não é necessária para implantações do modelo do ARM (Azure Resource Manager).
- "Microsoft.Network/virtualNetworks/join/action" no recurso de rede virtual.
- "Microsoft.Network/virtualNetworks/subnets/join/action" no recurso de sub-rede.
Para saber mais sobre o RBAC do Azure com rede, confira Funções internas da rede
Limitações
Não há suporte para a implantação de instâncias de computação/clusters de cálculo e computação sem servidor na rede virtual com o Azure Lighthouse.
A porta 445 precisa estar aberta para comunicações de rede privada entre suas instâncias de computação e a conta de armazenamento padrão durante o treinamento. Por exemplo, se os cálculos estiverem em uma VNet e a conta de armazenamento estiver em outra, não bloqueie a porta 445 para a VNet da conta de armazenamento.
Cluster de computação em uma VNet/região diferente do espaço de trabalho
Importante
Não é possível criar uma instância de computação em uma região/VNet diferente, apenas um cluster de computação.
Para criar um cluster de computação em uma Rede Virtual do Azure em uma região diferente da rede virtual do seu espaço de trabalho, você tem algumas opções para habilitar a comunicação entre as duas VNets.
- Usar o Emparelhamento da VNet.
- Adicione um ponto de extremidade privado para seu espaço de trabalho na rede virtual que conterá o cluster de computação.
Importante
Independentemente do método selecionado, você também deve criar a VNet para o cluster de computação; o Azure Machine Learning não a criará para você.
Você também deve permitir que a conta de armazenamento padrão, o Registro de Contêiner do Azure e o Azure Key Vault acessem a VNet para o cluster de computação. Há várias maneiras de realizar isso. Por exemplo, você pode criar um ponto de extremidade privado para cada recurso na VNet para o cluster de computação ou pode usar o emparelhamento da VNet para permitir que a VNet do espaço de trabalho acesse a VNet do cluster de computação.
Cenário: emparelhamento da VNet
Configure seu espaço de trabalho para usar uma Rede Virtual do Azure. Para obter mais informações, confira Proteger os recursos do seu espaço de trabalho.
Crie uma segunda Rede Virtual do Azure a ser usada para seus clusters de computação. Ele pode estar em uma região do Azure diferente da usada no seu espaço de trabalho.
Configure o Emparelhamento da VNet entre as duas VNets.
Dica
Aguarde até que o status do Emparelhamento da VNet seja Conectado antes de continuar.
Modifique a zona DNS
privatelink.api.azureml.ms
para adicionar um link à VNet para o cluster de computação. Essa zona é criada pelo seu espaço de trabalho do Azure Machine Learning quando ele usa um ponto de extremidade privado para participar de uma VNet.Adicione um novo link de rede virtual à zona DNS. Você pode fazer isso de várias maneiras:
- No portal do Azure, navegue até a zona DNS e selecione Links de rede virtual. Em seguida, selecione + Adicionar e selecione a VNet que você criou para seus clusters de computação.
- Na CLI do Azure, utilize o comando
az network private-dns link vnet create
. Para obter mais informações, consulte az network private-dns link vnet create. - No Azure PowerShell, utilize o comando
New-AzPrivateDnsVirtualNetworkLink
. Para obter mais informações, consulte New-AzPrivateDnsVirtualNetworkLink.
Repita a etapa e as subetapas anteriores para a zona de DNS
privatelink.notebooks.azure.net
.Configure os seguintes recursos do Azure para permitir o acesso de ambas as VNets.
- A conta de armazenamento padrão para o workspace.
- O Registro de Contêiner do Azure para o espaço de trabalho.
- O Azure Key Vault do espaço de trabalho.
Dica
Há várias maneiras de configurar esses serviços para permitir o acesso às VNets. Por exemplo, você pode criar um ponto de extremidade privado para cada recurso em ambas as VNets. Ou você pode configurar os recursos para permitir o acesso de ambas as VNets.
Crie um cluster de computação como faria normalmente ao usar uma VNet, mas selecione a VNet que você criou para o cluster de computação. Se a VNet estiver em uma região diferente, selecione essa região ao criar o cluster de computação.
Aviso
Ao definir a região, se for uma região diferente do seu espaço de trabalho ou armazenamento de dados, você poderá observar um aumento na latência da rede e nos custos de transferência de dados. A latência e os custos podem ocorrer ao criar o cluster e ao executar trabalhos nele.
Cenário: ponto de extremidade privado
Configure seu espaço de trabalho para usar uma Rede Virtual do Azure. Para obter mais informações, confira Proteger os recursos do seu espaço de trabalho.
Crie uma segunda Rede Virtual do Azure a ser usada para seus clusters de computação. Ele pode estar em uma região do Azure diferente da usada no seu espaço de trabalho.
Crie um novo ponto de extremidade privado para seu espaço de trabalho na VNet que conterá o cluster de computação.
Para adicionar um novo ponto de extremidade privado usando o portal do Microsoft Azure, selecione seu espaço de trabalho e, em seguida, Rede. Selecione Conexões de ponto de extremidade privado, +Ponto de extremidade privado e use os campos para criar um novo ponto de extremidade privado.
- Ao selecionar a Região, selecione a mesma região que sua rede virtual.
- Ao selecionar Tipo de recurso, use Microsoft.MachineLearningServices/workspaces.
- Defina o Recurso no nome do espaço de trabalho.
- Defina a Rede virtual e a Sub-rede como a VNet e a sub-rede que você criou para seus clusters de computação.
Finalmente, selecione Criar para criar o ponto de extremidade privado.
Para adicionar um novo ponto de extremidade privado usando a CLI do Azure, use
az network private-endpoint create
. Para obter um exemplo de uso desse comando, confira Configurar um ponto de extremidade privado para o espaço de trabalho do Azure Machine Learning .
Crie um cluster de computação como faria normalmente ao usar uma VNet, mas selecione a VNet que você criou para o cluster de computação. Se a VNet estiver em uma região diferente, selecione essa região ao criar o cluster de computação.
Aviso
Ao definir a região, se for uma região diferente do seu espaço de trabalho ou armazenamento de dados, você poderá observar um aumento na latência da rede e nos custos de transferência de dados. Pode haver latência e custos ao criar o cluster e ao executar trabalhos nele.
Computação de instância/cluster ou computação sem servidor sem IP público
Importante
Essas informações são válidas apenas quando se usa uma Rede Virtual do Microsoft Azure. Se estiver a utilizar uma rede virtual gerida, os recursos computacionais não podem ser implantados na sua Rede Virtual Azure. Para obter informações sobre a utilização de uma rede virtual gerida, veja computação gerida com uma rede gerida.
Importante
Se você estiver usando instâncias de computação ou clusters de computação configurados para nenhum IP público sem aceitar a versão prévia, será necessário excluí-los e recriá-los após 20 de janeiro de 2023 (quando o recurso estiver disponível).
Se você estava usando a versão prévia sem IP público, talvez também precise modificar o tráfego de entrada e saída permitido, pois os requisitos foram alterados para a disponibilidade geral:
- Requisitos de saída – duas saídas adicionais, que são usadas apenas para o gerenciamento de instâncias de computação e clusters de cálculo. O destino dessas marcas de serviço pertence à Microsoft:
- Marca de serviço
AzureMachineLearning
na porta UDP 5831. - Marca de serviço
BatchNodeManagement
na porta TCP 443.
- Marca de serviço
As seguintes configurações são adicionais àquelas listadas na seção Pré-requisitos e são específicas para criar uma instância de computação/cluster de cálculo configurado para não ter um IP público. Elas também se aplicam à computação sem servidor:
Você deve usar um ponto de extremidade privado do workspace para que o recurso de computação se comunique com os serviços do Azure Machine Learning da VNet. Para obter mais informações, confira Configurar um ponto de extremidade privado para um workspace do Azure Machine Learning.
Na VNet, permita o tráfego de saída para as seguintes marcas de serviço ou FQDNs (nomes de domínio totalmente qualificados):
Marca de serviço Protocolo Porta Observações AzureMachineLearning
TCP
UDP443/8787/18881
5831Comunicação com o serviço do Azure Machine Learning. BatchNodeManagement.<region>
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure. A instância de computação e o cluster de computação são implementados usando o serviço do Lote do Azure.Storage.<region>
TCP 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Essa marca de serviço é usada para se comunicar com a conta de Armazenamento do Azure usada pelo Lote do Azure.Importante
O acesso de saída a
Storage.<region>
pode ser usado para exfiltrar dados de seu workspace. Com o uso da Política do Ponto de Extremidade de Serviço, você pode atenuar essa vulnerabilidade. Para obter mais informações, confira o artigo Prevenção de exfiltração dos dados do Azure Machine Learning.FQDN Protocolo Porta Observações <region>.tundra.azureml.ms
UDP 5831 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning.graph.windows.net
TCP 443 Comunicação com a API do Microsoft Graph. *.instances.azureml.ms
TCP 443/8787/18881 Comunicação com o Azure Machine Learning. *.<region>.batch.azure.com
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure.*.<region>.service.batch.azure.com
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure.*.blob.core.windows.net
TCP 443 Comunicação com o Armazenamento de Blobs do Azure. *.queue.core.windows.net
TCP 443 Comunicação com o Armazenamento de Filas do Azure. *.table.core.windows.net
TCP 443 Comunicação com o Armazenamento de Tabelas do Azure. Por padrão, uma instância/cluster de computação configurada para nenhum IP público não tem acesso de saída para a Internet. Se você pode acessar a Internet a partir dela, é por causa do acesso de saída padrão do Azure e você tem um NSG que permite a saída para a Internet. No entanto, não recomendamos o uso do acesso de saída padrão. Se você precisar de acesso de saída à Internet, recomendamos o uso de um firewall e regras de saída ou um gateway NAT e grupos de serviços de rede para permitir o tráfego de saída.
Para obter mais informações sobre o tráfego de saída usado pelo Azure Machine Learning, confira os seguintes artigos:
Para obter mais informações sobre marcas de serviço que podem ser usadas com Firewall do Azure, confira o artigo Marcas de serviço da rede virtual.
Use as seguintes informações para criar uma instância de computação ou cluster de cálculo sem endereço IP público:
No comando az ml compute create
, substitua estes valores:
rg
: o grupo de recursos no qual a computação será criada.ws
: o nome de workspace do Azure Machine Learning.yourvnet
: a rede virtual do Azure.yoursubnet
: a sub-rede a ser usada para a computação.AmlCompute
ouComputeInstance
: a especificação deAmlCompute
cria um cluster de computação.ComputeInstance
criar uma instância de computação.
# 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
Use as seguintes informações para configurar os nós de computação sem servidor sem endereço IP público na VNet para um determinado workspace:
Importante
Se você estiver usando uma computação sem servidor sem IP público e o workspace tiver uma lista de IPs permitidos, será necessário adicionar um ponto de extremidade privado de saída ao workspace. A computação sem servidor precisa se comunicar com o workspace, mas, quando configurada sem IP público, ela utiliza o Azure Default Outbound para acessar a Internet. O IP público para essa saída é dinâmico e não pode ser adicionado à lista de IPs permitidos. Criar um ponto de extremidade privado de saída para o workspace permite que o tráfego da computação sem servidor destinado ao workspace contorne a lista de IPs permitidos.
Criar um workspace:
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
Atualizar o workspace:
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
Instância de computação/cluster de cálculo ou computação sem servidor com IP público
Importante
Essas informações são válidas apenas quando se usa uma Rede Virtual do Microsoft Azure. Se estiver a utilizar uma rede virtual gerida, os recursos computacionais não podem ser implantados na sua Rede Virtual Azure. Para obter informações sobre a utilização de uma rede virtual gerida, veja computação gerida com uma rede gerida.
As seguintes configurações são adicionais àquelas listadas na seção Pré-requisitos e são específicas para criar instâncias de computação/clusters de cálculo que têm um IP público. Elas também se aplicam à computação sem servidor:
Se você colocar várias instâncias de computação/clusters de cálculo em uma rede virtual, talvez precise solicitar um aumento de cota para um ou mais de seus recursos. A instância ou cluster de computação do Machine Learning aloca automaticamente recursos de rede no grupo de recursos que contém a rede virtual. Para cada instância ou cluster de computação, o serviço aloca os seguintes recursos:
Um NSG (grupo de segurança de rede) é criado automaticamente. Esse NSG permite o tráfego TCP de entrada na porta 44224 da marca de serviço
AzureMachineLearning
.Importante
A instância de computação e o cluster de computação criam automaticamente um NSG com as regras necessárias.
Se você tiver outro NSG no nível da sub-rede, as regras no NSG de nível de sub-rede não devem entrar em conflito com as regras no NSG criado automaticamente.
Para saber como os NSGs filtram o tráfego de rede, consulte Como os grupos de segurança de rede filtram o tráfego de rede.
Um balanceador de carga
Para clusters de cálculo, esses recursos são excluídos toda vez que o cluster é reduzido para 0 nós e criado ao escalar verticalmente.
Para uma instância de computação, esses recursos são mantidos até que a instância seja excluída. Parar a instância não remove os recursos.
Importante
Esses recursos são limitados pelas cotas de recursos da assinatura. Se o grupo de recursos de rede virtual estiver bloqueado, ocorrerá falha na exclusão do cluster/instância de computação. Não é possível excluir o balanceador de carga até que o cluster/instância de computação seja excluído. Além disso, verifique se não há nenhuma atribuição do Azure Policy que proíba a criação de grupos de segurança de rede.
Na sua VNet, permita o tráfego TCP de entrada na porta 44224 da marca de serviço
AzureMachineLearning
.Importante
Um endereço IP é atribuído dinamicamente quando a instância ou o cluster de computação é criado. Como o endereço não é conhecido antes da criação e o acesso de entrada é necessário como parte do processo de criação, você não pode atribuí-lo estaticamente no firewall. Em vez disso, se você estiver usando um firewall com a VNet, precisará criar uma rota definida pelo usuário para permitir esse tráfego de entrada.
Na VNet, permita o tráfego de saída para as seguintes marcas de serviço:
Marca de serviço Protocolo Porta Observações AzureMachineLearning
TCP
UDP443/8787/18881
5831Comunicação com o serviço do Azure Machine Learning. BatchNodeManagement.<region>
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure. A instância de computação e o cluster de computação são implementados usando o serviço do Lote do Azure.Storage.<region>
TCP 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Essa marca de serviço é usada para se comunicar com a conta de Armazenamento do Azure usada pelo Lote do Azure.Importante
O acesso de saída a
Storage.<region>
pode ser usado para exfiltrar dados de seu workspace. Com o uso da Política do Ponto de Extremidade de Serviço, você pode atenuar essa vulnerabilidade. Para obter mais informações, confira o artigo Prevenção de exfiltração dos dados do Azure Machine Learning.FQDN Protocolo Porta Observações <region>.tundra.azureml.ms
UDP 5831 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning.graph.windows.net
TCP 443 Comunicação com a API do Microsoft Graph. *.instances.azureml.ms
TCP 443/8787/18881 Comunicação com o Azure Machine Learning. *.<region>.batch.azure.com
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure.*.<region>.service.batch.azure.com
ANY 443 Substitua <region>
pela região do Azure que contém seu espaço de trabalho do Azure Machine Learning. Comunicação com o Lote do Azure.*.blob.core.windows.net
TCP 443 Comunicação com o Armazenamento de Blobs do Azure. *.queue.core.windows.net
TCP 443 Comunicação com o Armazenamento de Filas do Azure. *.table.core.windows.net
TCP 443 Comunicação com o Armazenamento de Tabelas do Azure.
Use as seguintes informações para criar uma instância de computação ou cluster de cálculo com um endereço IP público na VNet:
No comando az ml compute create
, substitua estes valores:
rg
: o grupo de recursos no qual a computação será criada.ws
: o nome de workspace do Azure Machine Learning.yourvnet
: a rede virtual do Azure.yoursubnet
: a sub-rede a ser usada para a computação.AmlCompute
ouComputeInstance
: a especificação deAmlCompute
cria um cluster de computação.ComputeInstance
criar uma instância de computação.
# 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
Use as seguintes informações para configurar os nós de computação sem servidor com um endereço IP público na VNet para um determinado workspace:
Criar um workspace:
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
Atualizar o workspace:
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
- A rede virtual deve estar na mesma assinatura e região que o workspace do Azure Machine Learning.
- Se as Contas de Armazenamento do Azure para o workspace também estiverem protegidas em uma rede virtual, elas deverão estar na mesma rede virtual que o cluster do Azure Databricks.
- Além das sub-redes databricks-particular e databricks-público usadas pelos Azure Databricks, a sub-rede padrão criada para a rede virtual também é necessária.
- O Azure Databricks não usa um ponto de extremidade privado para se comunicar com a rede virtual.
Para obter informações específicas sobre o uso do Azure Databricks com uma rede virtual, consulte Implantar o Azure Databricks na sua Rede Virtual do Azure.
Máquina virtual ou cluster HDInsight
Nesta seção, você aprenderá a usar uma máquina virtual ou um cluster do Azure HDInsight em uma rede virtual com seu espaço de trabalho.
Criar a VM ou o cluster do HDInsight
Importante
O Azure Machine Learning dá suporte apenas a máquinas virtuais que executam Ubuntu.
Crie um cluster de VM ou HDInsight usando o portal do Azure ou a CLI do Azure e coloque-o em uma rede virtual do Azure. Para obter mais informações, consulte os seguintes artigos:
Configurar portas de rede
Para permitir que o Azure Machine Learning se comunique com a porta SSH na VM ou no cluster, configure uma entrada de origem para o grupo de segurança de rede. A porta SSH geralmente é a porta 22. Para permitir o tráfego dessa origem, execute as seguintes ações:
Na lista suspensa Origem, selecione Marca de serviço.
Na lista suspensa Marca de serviço da origem, selecione AzureMachineLearning.
Na lista suspensa Intervalos da porta de origem, selecione *.
Na lista suspensa Destino, selecione Qualquer um.
Na lista suspensa Intervalos da porta de destino, selecione 22.
Em Protocolo, selecione Qualquer um.
Em Ação, selecione Permitir.
Mantenha as regras de saída padrão para o grupo de segurança de rede. Para obter mais informações, consulte as regras de segurança padrão em Grupos de segurança.
Se você não quiser usar as regras de saída padrão e quiser limitar o acesso de saída de sua rede virtual, confira a seção acesso à Internet pública exigido.
Anexar a VM ou o cluster do HDInsight
Anexe o cluster da VM ou do HDInsight ao seu workspace do Azure Machine Learning. Para mais informações, confira Gerencie recursos de computação para treinamento e implantação de modelos no estúdio.
Acesso público à Internet obrigatório para treinar modelos
Importante
Embora as seções anteriores deste artigo descrevam as configurações necessárias para criar recursos de computação, as informações de configuração nesta seção são necessárias para usar esses recursos para treinar modelos.
O Azure Machine Learning exige o acesso de entrada e de saída à Internet pública. As tabelas a seguir fornecem uma visão geral do acesso necessário e para o que ele é usado. Para as marcas de serviço que terminam em .region
, substitua region
pela região do Azure que contém o seu workspace. Por exemplo Storage.westus
:
Dica
A guia necessária lista a configuração de entrada e saída exigida. A guia situacional lista as configurações opcionais de entrada e saída exigidas por configurações específicas que talvez você queira habilitar.
Direção | Protocolo e ports |
Marca de serviço | Finalidade |
---|---|---|---|
Saída | TCP: 80, 443 | AzureActiveDirectory |
Autenticação usando o Microsoft Entra ID. |
Saída | TCP: 443, 18881 UDP: 5831 |
AzureMachineLearning |
Uso dos serviços do Azure Machine Learning. O IntelliSense do Python em notebooks usa a porta 18881. Criar, atualizar e excluir uma instância de computação do Azure Machine Learning usa a porta 5831. |
Saída | ANY: 443 | BatchNodeManagement.region |
Comunicação com o back-end do Lote do Azure para instâncias/clusters de computação do Azure Machine Learning. |
Saída | TCP: 443 | AzureResourceManager |
Criação de recursos do Azure com o Azure Machine Learning, a CLI do Azure e o SDK do Azure Machine Learning. |
Saída | TCP: 443 | Storage.region |
Acessar dados armazenados na Conta de Armazenamento do Microsoft Azure para cluster de cálculo e instância de computação. Para obter informações sobre como evitar a exfiltração dos dados nessa saída, confira Proteção contra exfiltração dos dados. |
Saída | TCP: 443 | AzureFrontDoor.FrontEnd * Não é necessário no Microsoft Azure operado pela 21Vianet. |
Ponto de entrada global para o Estúdio do Azure Machine Learning. Armazene imagens e ambientes para AutoML. Para obter informações sobre como evitar a exfiltração dos dados nessa saída, confira Proteção contra exfiltração dos dados. |
Saída | TCP: 443 | MicrosoftContainerRegistry.region Observe que essa marca tem uma dependência na marca AzureFrontDoor.FirstParty |
Acesse as imagens do Docker fornecidas pela Microsoft. Instalação do roteador do Azure Machine Learning para o Serviço de Kubernetes do Azure. |
Dica
Se você precisar dos endereços IP em vez de marcas de serviço, use uma das seguintes opções:
- Baixe uma lista de Marcas de serviço e intervalos de IP do Azure.
- Use o comando da CLI do Azure az network list-service-tags.
- Use o comando Get-AzNetworkServiceTag do Azure PowerShell.
Os endereços IP podem ser alterados periodicamente.
Talvez você também precise permitir o tráfego de saída no Visual Studio Code e em sites que não são da Microsoft para a instalação de pacotes necessários para o seu projeto de machine learning. A seguinte tabela lista os repositórios usados com frequência para machine learning:
Nome do host | Finalidade |
---|---|
anaconda.com *.anaconda.com |
Usado para instalar pacotes padrão. |
*.anaconda.org |
Usado para obter dados do repositório. |
pypi.org |
Usado para listar dependências com base no índice padrão, se houver, quando o índice não foi substituído pelas configurações do usuário. Se o índice tiver sido substituído, você deverá permitir também *.pythonhosted.org . |
cloud.r-project.org |
Usado ao instalar pacotes CRAN para desenvolvimento de R. |
*.pytorch.org |
Usado por alguns exemplos com base em PyTorch. |
*.tensorflow.org |
Usado por alguns exemplos com base em Tensorflow. |
code.visualstudio.com |
Necessário para baixar e instalar a área de trabalho do Visual Studio Code. Isso não é necessário para o Visual Studio Code Web. |
update.code.visualstudio.com *.vo.msecnd.net |
Usado para recuperar bits do servidor do Visual Studio Code que estão instalados na instância de computação por meio de um script de instalação. |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
Necessário para baixar e instalar as extensões do Visual Studio Code. Esses hosts habilitam a conexão remota para instâncias de computação usando a extensão do Azure ML para Visual Studio Code. Para obter mais informações, consulte Conectar-se a uma instância de computação do Azure Machine Learning no Visual Studio Code. |
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* |
Usado para recuperar bits do servidor WebSocket que estão instalados na instância de computação. O servidor websocket é usado para transmitir solicitações do cliente do Visual Studio Code (aplicativo de área de trabalho) para o servidor do Visual Studio Code em execução na instância de computação. |
Observação
Ao usar a extensão do VS Code do Azure Machine Learning, a instância de computação remota exigirá acesso a repositórios públicos para instalar os pacotes exigidos pela extensão. Se a instância de computação exigir um proxy para acessar esses repositórios públicos ou a Internet, você precisará definir e exportar as variáveis de ambiente HTTP_PROXY
e HTTPS_PROXY
no arquivo ~/.bashrc
da instância de computação. Esse processo pode ser automatizado no momento do provisionamento usando um script personalizado.
Ao usar AKS (Serviço de Kubernetes do Azure) com o Azure Machine Learning, permita o seguinte tráfego para a VNet do AKS:
- Requisitos gerais de entrada/saída do AKS, conforme descrito no artigo Restringir tráfego de saída no Serviço de Kubernetes do Azure.
- Saída para o mcr.microsoft.com.
- Ao implantar um modelo em um cluster do AKS, siga as diretrizes no artigo Implantar modelos de ML para o Serviço de Kubernetes do Azure.
Para obter informações sobre como usar uma solução de firewall, confira Usar um firewall com o Azure Machine Learning.
Próximas etapas
Este artigo faz parte de uma série sobre como proteger um fluxo de trabalho do Azure Machine Learning. Confira os outros artigos desta série: