Proteger ambientes de preparação do Azure Machine Learning com redes virtuais

APLICA-SE A: Python SDK azure-ai-ml v2 (atual)

Gorjeta

A Microsoft recomenda o uso de 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 de rede para seu espaço de trabalho e cálculos gerenciados. Você também pode adicionar pontos de extremidade privados para recursos necessários para o espaço de trabalho, como a Conta de Armazenamento do Azure. Para obter mais informações, consulte Isolamento de rede gerenciado pelo espaço de trabalho.

A instância de computação do Azure Machine Learning, a computação sem servidor e o cluster de computação podem ser usados para treinar modelos com segurança em uma Rede Virtual do Azure. Ao planejar seu ambiente, você pode configurar a instância/cluster de computação 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. Melhora a segurança removendo a necessidade de tráfego de entrada da Internet. No entanto, há alterações de configuração adicionais necessárias para habilitar o acesso de saída aos recursos necessários (ID do Microsoft Entra, Gerenciador de Recursos do Azure, etc.).
  • IP público: funciona por padrão, mas custa mais devido a recursos de rede adicionais do Azure. Requer comunicação de entrada do serviço Azure Machine Learning pela Internet pública.

A tabela a seguir contém as diferenças entre essas configurações:

Configuração Com IP público Sem IP público
Tráfego de entrada AzureMachineLearning etiqueta de serviço. Nenhuma
Tráfego de saída Por padrão, pode acessar a internet pública sem restrições.
Você pode restringir o que ele acessa usando um Grupo de Segurança de Rede ou firewall.
Por padrão, pode acessar a rede pública usando o acesso de saída padrão fornecido pelo Azure.
Em vez disso, recomendamos o uso de um gateway NAT de Rede Virtual ou Firewall 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, interface de rede Nenhuma

Você também pode usar o Azure Databricks ou o HDInsight para treinar modelos em uma rede virtual.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Este artigo faz parte de uma série sobre como proteger um fluxo de trabalho do Azure Machine Learning. Veja os outros artigos desta série:

Para obter um tutorial sobre como criar um espaço de trabalho seguro, consulte Tutorial: Criar um espaço de trabalho seguro ou Tutorial: Criar um espaço de trabalho seguro usando um modelo.

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 do HDInsight

Pré-requisitos

  • Leia o artigo Visão geral da segurança de rede para entender os cenários comuns de rede virtual e a arquitetura geral de rede virtual.

  • Uma rede virtual e uma sub-rede existentes para usar com seus recursos de computação. Essa rede virtual deve estar na mesma assinatura que seu espaço de trabalho do Azure Machine Learning.

    • Recomendamos colocar as contas de armazenamento usadas por seu espaço de trabalho e trabalhos de treinamento na mesma região do Azure que você planeja usar para instâncias de computação, computação sem servidor e clusters. Se eles não estiverem na mesma região do Azure, você poderá incorrer em custos de transferência de dados e maior latência de rede.
    • Confirme que a comunicação do WebSocket tem permissão para *.instances.azureml.net e *.instances.azureml.ms na VNet. Os WebSockets são utilizados 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.

    • Certifique-se de que a sub-rede não está delegada a outros serviços do Azure.
    • Certifique-se de que 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ê tiver seu próprio servidor DNS, recomendamos usar o encaminhamento DNS para resolver os FQDN (nomes de domínio totalmente qualificados) de instâncias de computação e clusters. 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 controle de acesso baseado em função do Azure (RBAC do Azure):

    • "Microsoft.Network/*/read" no recurso de rede virtual. Essa permissão não é necessária para implantações de modelo do Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" no recurso de rede virtual.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" no recurso de sub-rede.

    Para obter mais informações sobre o RBAC do Azure com rede, consulte as funções internas de rede

Limitações

  • O cluster/instância de computação e a implementação de computação sem servidor na rede virtual não são suportados com o Azure Lighthouse.

  • A porta 445 têm de estar aberta para comunicações de rede privadas entre as suas instâncias de computação e a conta de armazenamento predefinida durante a preparação. Por exemplo, se seus cálculos estiverem numa VNet e a conta de armazenamento estiver noutra, não bloqueie a porta 445 para a VNet da conta de armazenamento.

Computar cluster em uma rede virtual/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 espaço de trabalho, você tem algumas opções para habilitar a comunicação entre as duas redes virtuais.

  • Use o emparelhamento 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 Aprendizado de Máquina do Azure não o criará para você.

Você também deve permitir que a conta de armazenamento padrão, o Registro de Contêiner do Azure e o Cofre da Chave do Azure acessem a VNet para o cluster de computação. Existem várias maneiras de conseguir 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 de VNet para permitir que a VNet do espaço de trabalho acesse a VNet do cluster de computação.

Cenário: emparelhamento de rede virtual

  1. Configure seu espaço de trabalho para usar uma Rede Virtual do Azure. Para obter mais informações, consulte Proteger os recursos do espaço de trabalho.

  2. Crie uma segunda Rede Virtual do Azure que será usada para seus clusters de computação. Ele pode estar em uma região do Azure diferente daquela usada para seu espaço de trabalho.

  3. Configure o emparelhamento de VNet entre as duas redes virtuais.

    Gorjeta

    Aguarde até que o status de emparelhamento de rede virtual seja Conectado antes de continuar.

  4. Modifique a privatelink.api.azureml.ms zona DNS 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.

    1. 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, use o az network private-dns link vnet create comando. Para obter mais informações, consulte az network private-dns link vnet create.
      • No Azure PowerShell, use o New-AzPrivateDnsVirtualNetworkLink comando. Para obter mais informações, consulte New-AzPrivateDnsVirtualNetworkLink.
  5. Repita a etapa e as subetapas anteriores para a privatelink.notebooks.azure.net zona DNS.

  6. Configure os seguintes recursos do Azure para permitir o acesso de ambas as redes virtuais.

    • A conta de armazenamento padrão para o espaço de trabalho.
    • O Registro de Contêiner do Azure para o espaço de trabalho.
    • O Cofre da Chave do Azure para o espaço de trabalho.

    Gorjeta

    Há várias maneiras de configurar esses serviços para permitir o acesso às redes virtuais. 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.

  7. 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 armazenamentos de dados, você poderá ver maior latência de rede e 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

  1. Configure seu espaço de trabalho para usar uma Rede Virtual do Azure. Para obter mais informações, consulte Proteger os recursos do espaço de trabalho.

  2. Crie uma segunda Rede Virtual do Azure que será usada para seus clusters de computação. Ele pode estar em uma região do Azure diferente daquela usada para seu espaço de trabalho.

  3. 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 Azure, selecione seu espaço de trabalho e, em seguida, selecione 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 da sua rede virtual.
      • Ao selecionar Tipo de recurso, use Microsoft.MachineLearningServices/workspaces.
      • Defina o Recurso como o nome do seu 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.

      Por fim, selecione Criar para criar o ponto de extremidade privado.

    • Para adicionar um novo ponto de extremidade privado usando a CLI do Azure, use o az network private-endpoint create. Para obter um exemplo de como usar esse comando, consulte Configurar um ponto de extremidade privado para o espaço de trabalho do Azure Machine Learning.

  4. 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 armazenamentos de dados, você poderá ver maior latência de rede e custos de transferência de dados. A latência e os custos podem ocorrer ao criar o cluster e ao executar trabalhos nele.

Instância de computação/cluster ou computação sem servidor sem IP público

Aviso

Essas informações só são válidas ao usar uma Rede Virtual do Azure. Se você estiver usando uma rede virtual gerenciada, consulte Computação gerenciada com uma rede gerenciada.

Importante

Se você estiver usando instâncias de computação ou clusters de computação configurados para nenhum IP público sem optar pela visualização, será necessário excluí-los e recriá-los após 20 de janeiro de 2023 (quando o recurso estiver disponível ao público em geral).

Se você estava usando anteriormente a visualização de nenhum IP público, também pode ser necessário modificar o tráfego permitido de entrada e saída, pois os requisitos foram alterados para 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. O destino dessas tags de serviço pertence à Microsoft:
    • AzureMachineLearning etiqueta de serviço na porta UDP 5831.
    • BatchNodeManagement tag de serviço na porta TCP 443.

As configurações a seguir são adicionais às listadas na seção Pré-requisitos e são específicas para criar instâncias/clusters de computação configurados para nenhum IP público. Eles também se aplicam à computação sem servidor:

  • Você deve usar um ponto de extremidade privado do espaço de trabalho para que o recurso de computação se comunique com os serviços do Azure Machine Learning a partir da VNet. Para obter mais informações, consulte Configurar um ponto de extremidade privado para o espaço de trabalho do Azure Machine Learning.

  • Na sua VNet, permita o tráfego de saída para as seguintes etiquetas de serviço ou nomes de domínio completamente qualificados (FQDN):

    Etiqueta de serviço Protocolo Porta Notas
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Comunicação com o serviço Azure Machine Learning.
    BatchNodeManagement.<region> QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch. A instância de computação e o cluster de computação são implementados utilizando o serviço Azure Batch.
    Storage.<region> TCP 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Esta etiqueta de serviço é utilizada para comunicar com a conta de Armazenamento do Azure utilizada pelo Azure Batch.

    Importante

    O acesso de saída a Storage.<region> pode ser usado para exfiltrar dados do seu espaço de trabalho. Com uma Política de Ponto Final de Serviço, pode mitigar esta vulnerabilidade. Para obter mais informações, veja o artigo Prevenção contra exfiltração de dados do Azure Machine Learning.

    FQDN Protocolo Porta Notas
    <region>.tundra.azureml.ms UDP 5831 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning.
    graph.windows.net TCP 443 Comunicação com a Microsoft Graph API.
    *.instances.azureml.ms TCP 443/8787/18881 Comunicação com o Azure Machine Learning.
    *.<region>.batch.azure.com QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch.
    *.<region>.service.batch.azure.com QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch.
    *.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 predefinição, uma instância de computação/cluster de cálculo configurado para nenhum IP público não tem acesso de saída à Internet. Se puder aceder à Internet a partir do mesmo, é porque o acesso de saída predefinido do Azure e o utilizador têm um NSG que permite a saída para a Internet. No entanto, não recomendamos a utilização do acesso de saída predefinido. Se precisar de acesso de saída para a Internet, recomendamos que utilize uma firewall e regras de saída ou um NAT gateway e grupos de serviços de rede para permitir o tráfego de saída em alternativa.

    Para obter mais informações sobre o tráfego de saída utilizado pelo Azure Machine Learning, consulte os seguintes artigos:

    Para obter mais informações sobre marcas de serviço que podem ser usadas com o Firewall do Azure, consulte o artigo Marcas de serviço de rede virtual.

Use as seguintes informações para criar uma instância de computação ou cluster sem endereço IP público:

az ml compute create No comando, substitua os seguintes valores:

  • rg: O grupo de recursos no qual a computação será criada.
  • ws: O nome do espaço de trabalho do Azure Machine Learning.
  • yourvnet: A Rede Virtual do Azure.
  • yoursubnet: A sub-rede a ser usada para a computação.
  • AmlComputeou ComputeInstance: Especificar AmlCompute cria um cluster de computação. ComputeInstanceCria 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 nós de computação sem servidor sem endereço IP público na VNet para um determinado espaço de trabalho:

Crie um espaço de trabalho:

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 espaço de trabalho:

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 ou computação sem servidor com IP público

Importante

Essas informações só são válidas ao usar uma Rede Virtual do Azure. Se você estiver usando uma rede virtual gerenciada, consulte Computação gerenciada com uma rede gerenciada.

As configurações a seguir são adicionais às listadas na seção Pré-requisitos e são específicas para a criação de instâncias/clusters de computação que tenham um IP público. Eles também se aplicam à computação sem servidor:

  • Se você colocar várias instâncias/clusters de computação em uma rede virtual, talvez seja necessário solicitar um aumento de cota para um ou mais de seus recursos. A instância de computação ou cluster do Machine Learning aloca automaticamente recursos de rede no grupo de recursos que contém a rede virtual. Para cada instância de computação ou cluster, o serviço aloca os seguintes recursos:

    • Um grupo de segurança de rede (NSG) é criado automaticamente. Este NSG permite o tráfego TCP de entrada na porta 44224 a AzureMachineLearning partir da etiqueta de serviço.

      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 de 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 da rede, consulte Como os grupos de segurança de rede filtram o tráfego de rede.

    • Um balanceador de carga

    Para clusters de computação, esses recursos são excluídos sempre que o cluster é reduzido para 0 nós e criados durante a expansão.

    Para uma instância de computação, estes recursos são mantidos até que a instância seja eliminada. Parar a instância não remove os recursos.

    Importante

    Estes recursos estão limitados pelas quotas de recursos da subscrição. Se o grupo de recursos de rede virtual estiver bloqueado, a exclusão do cluster/instância de computação falhará. O balanceador de carga não pode ser excluído até que o cluster/instância de computação seja excluído. Certifique-se também de que não há nenhuma atribuição de Política do Azure que proíba a criação de grupos de segurança de rede.

  • Na sua rede virtual, permita o tráfego TCP de entrada na porta 44224 a AzureMachineLearning partir da etiqueta de serviço.

    Importante

    A instância/cluster de computação recebe dinamicamente um endereço IP quando é criada. 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, não é possível atribuí-lo estaticamente no firewall. Em vez disso, se você estiver usando um firewall com a VNet, deverá criar uma rota definida pelo usuário para permitir esse tráfego de entrada.

  • Na sua VNet, permita o tráfego de saída para as seguintes etiquetas de serviço:

    Etiqueta de serviço Protocolo Porta Notas
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Comunicação com o serviço Azure Machine Learning.
    BatchNodeManagement.<region> QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch. A instância de computação e o cluster de computação são implementados utilizando o serviço Azure Batch.
    Storage.<region> TCP 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Esta etiqueta de serviço é utilizada para comunicar com a conta de Armazenamento do Azure utilizada pelo Azure Batch.

    Importante

    O acesso de saída a Storage.<region> pode ser usado para exfiltrar dados do seu espaço de trabalho. Com uma Política de Ponto Final de Serviço, pode mitigar esta vulnerabilidade. Para obter mais informações, veja o artigo Prevenção contra exfiltração de dados do Azure Machine Learning.

    FQDN Protocolo Porta Notas
    <region>.tundra.azureml.ms UDP 5831 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning.
    graph.windows.net TCP 443 Comunicação com a Microsoft Graph API.
    *.instances.azureml.ms TCP 443/8787/18881 Comunicação com o Azure Machine Learning.
    *.<region>.batch.azure.com QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch.
    *.<region>.service.batch.azure.com QUALQUER 443 Substitua <region> pela região do Azure que contém a sua área de trabalho do Azure Machine Learning. Comunicação com o Azure Batch.
    *.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 com um endereço IP público na rede virtual:

az ml compute create No comando, substitua os seguintes valores:

  • rg: O grupo de recursos no qual a computação será criada.
  • ws: O nome do espaço de trabalho do Azure Machine Learning.
  • yourvnet: A Rede Virtual do Azure.
  • yoursubnet: A sub-rede a ser usada para a computação.
  • AmlComputeou ComputeInstance: Especificar AmlCompute cria um cluster de computação. ComputeInstanceCria 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 nós de computação sem servidor com um endereço IP público na VNet para um determinado espaço de trabalho:

Crie um espaço de trabalho:

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 espaço de trabalho:

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 espaço de trabalho do Azure Machine Learning.
  • Se a(s) Conta(s) de Armazenamento do Azure para o espaço de trabalho 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-private e databricks-public usadas pelo 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 como usar o Azure Databricks com uma rede virtual, consulte Implantar o Azure Databricks em sua Rede Virtual do Azure.

Máquina virtual ou cluster HDInsight

Nesta seção, você aprenderá a usar uma máquina virtual ou cluster do Azure HDInsight em uma rede virtual com seu espaço de trabalho.

Criar a VM ou o cluster HDInsight

Importante

O Azure Machine Learning suporta apenas máquinas virtuais que executam o Ubuntu.

Crie uma VM ou cluster HDInsight usando o portal do Azure ou a CLI do Azure e coloque o cluster em uma rede virtual do Azure. Para obter mais informações, consulte os seguintes artigos que podem estar em inglês:

Configurar as portas de rede

Permitir que o Aprendizado de Máquina do Azure se comunique com a porta SSH na VM ou 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 fonte, execute as seguintes ações:

  1. Na lista suspensa Origem, selecione Etiqueta de serviço.

  2. Na lista suspensa Tag de serviço de origem, selecione AzureMachineLearning.

    Uma captura de tela de regras de entrada para fazer experimentação em uma VM ou cluster HDInsight em uma rede virtual.

  3. Na lista suspensa Intervalos de portas de origem, selecione *.

  4. Na lista suspensa Destino, selecione Qualquer.

  5. Na lista suspensa Intervalos de portas de destino, selecione 22.

  6. Em Protocolo, selecione Qualquer.

  7. 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 da sua rede virtual, consulte a seção Acesso público necessário à Internet.

Anexar a VM ou o cluster HDInsight

Anexe a VM ou o cluster HDInsight ao seu espaço de trabalho do Azure Machine Learning. Para obter mais informações, consulte Gerenciar recursos de computação para treinamento e implantação de modelos no estúdio.

Acesso público à Internet obrigatório para os modelos de comboio

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 requer acesso de entrada e saída à Internet pública. As tabelas a seguir fornecem uma visão geral do acesso necessário e para que finalidade. Para tags de serviço que terminam em .region, substitua region pela região do Azure que contém seu espaço de trabalho. Por exemplo: Storage.westus

Gorjeta

A guia obrigatório lista a configuração de entrada e saída necessária. A guia situacional lista as configurações opcionais de entrada e saída exigidas por configurações específicas que você pode querer habilitar.

Direção Protocolo &
ports
Etiqueta de serviço Propósito
De Saída Porta TCP: 80, 443 AzureActiveDirectory Autenticação com o Microsoft Entra ID.
De Saída TCP: 443, 18881
UDP: 5831
AzureMachineLearning Utilizar os serviços do Azure Machine Learning.
Python intellisense em notebooks usa a porta 18881.
Criar, atualizar e excluir uma instância de computação do Azure Machine Learning usa a porta 5831.
De Saída QUALQUER: 443 BatchNodeManagement.region Comunicação com o back-end do Azure Batch para instâncias/clusters de computação do Azure Machine Learning.
De Saída Porta 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.
De Saída Porta TCP: 443 Storage.region Aceda aos dados armazenados na Conta de Armazenamento do Azure para o cluster de cálculo e a instância de computação. Para obter informações sobre como evitar a exfiltração de dados nessa saída, consulte Proteção contra exfiltração de dados.
De Saída Porta TCP: 443 AzureFrontDoor.FrontEnd
* Não é necessário no Microsoft Azure operado pela 21Vianet.
Ponto de entrada global para estúdio do Azure Machine Learning. Armazene imagens e ambientes para AutoML. Para obter informações sobre como evitar a exfiltração de dados nessa saída, consulte Proteção contra exfiltração de dados.
De Saída Porta TCP: 443 MicrosoftContainerRegistry.region
Observe que essa tag tem uma dependência da AzureFrontDoor.FirstParty tag
Aceder a imagens do Docker fornecidas pela Microsoft. Configuração do roteador do Azure Machine Learning para o Serviço Kubernetes do Azure.

Gorjeta

Se você precisar dos endereços IP em vez de tags de serviço, use uma das seguintes opções:

Os endereços IP podem mudar periodicamente.

Também pode ser necessário permitir o tráfego de saída para o Visual Studio Code e sites que não sejam da Microsoft para a instalação de pacotes exigidos pelo seu projeto de aprendizado de máquina. A tabela a seguir lista os repositórios comumente usados para aprendizado de máquina:

Nome do anfitrião Objetivo
anaconda.com
*.anaconda.com
Usado para instalar pacotes padrão.
*.anaconda.org Usado para obter dados de recompra.
pypi.org Usado para listar dependências do índice padrão, se houver, e o índice não é substituído pelas configurações do usuário. Se o índice for substituído, você também deverá permitir *.pythonhosted.org.
cloud.r-project.org Usado na instalação de pacotes CRAN para desenvolvimento R.
*.pytorch.org Usado por alguns exemplos baseados em PyTorch.
*.tensorflow.org Usado por alguns exemplos baseados no Tensorflow.
code.visualstudio.com Necessário para baixar e instalar o Visual Studio Code desktop. Isso não é necessário para o Visual Studio Code Web.
update.code.visualstudio.com
*.vo.msecnd.net
Usado para recuperar bits de servidor do Visual Studio Code 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 com instâncias de computação fornecidas pela extensão Azure ML para Visual Studio Code. Para obter mais informações, veja Ligar 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 de servidor websocket, que são instalados na instância de computação. O servidor websocket é utilizado para transmitir pedidos do cliente do Visual Studio Code (aplicação de ambiente de trabalho) para o servidor do Visual Studio Code em execução na instância de computação.

Nota

Ao usar a extensão VS Code do Azure Machine Learning, a instância de computação remota exigirá um 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 HTTP_PROXY variáveis e HTTPS_PROXY de ambiente no ~/.bashrc arquivo da instância de computação. Esse processo pode ser automatizado no momento do provisionamento usando um script personalizado.

Ao usar o Serviço Kubernetes do Azure (AKS) com o Azure Machine Learning, permita o seguinte tráfego para a VNet do AKS:

Para obter informações sobre como usar uma solução de firewall, consulte Usar um firewall com o Azure Machine Learning.

Próximos passos

Este artigo faz parte de uma série sobre como proteger um fluxo de trabalho do Azure Machine Learning. Veja os outros artigos desta série: