Configurar um ponto de extremidade privado para um Workspace do Azure Machine Learning

APLICA-SE A:Extensão do ML da CLI do Azure v2 (atual)

Neste documento, você vai aprender a configurar um ponto de extremidade privado para o Workspace do Azure Machine Learning. Para obter informações sobre como criar uma rede virtual para o Azure Machine Learning, confira Visão geral de isolamento e privacidade de rede virtual.

O Link Privado do Azure permite que você se conecte ao seu espaço de trabalho usando um ponto de extremidade privado. O ponto de extremidade privado é um conjunto de endereços IP privados na sua rede virtual. Você pode limitar o acesso ao seu espaço de trabalho para ocorrer somente nos endereços de IP privados. Um ponto de extremidade privado ajuda a reduzir o risco de exfiltração dos dados. Para saber mais sobre pontos de extremidade privados, confira o artigo Link Privado do Azure.

Aviso

Proteger um workspace com pontos de extremidade privados não garante a segurança de ponta a ponta por si só. Você deve proteger todos os componentes individuais da sua solução. Por exemplo, se você usa um ponto de extremidade privado para o workspace, mas a sua conta de Armazenamento do Microsoft Azure não está atrás da VNet, o tráfego entre o workspace e o armazenamento não usa a VNet para segurança.

Para obter mais informações sobre como proteger os recursos usados pelo Azure Machine Learning, confira os seguintes artigos:

Pré-requisitos

  • Você deve ter uma rede virtual existente na qual criar o ponto de extremidade privado.

    Aviso

    Não use o intervalo de endereços IP 172.17.0.0/16 para sua VNet. Esse é o intervalo de sub-rede padrão usado pela rede de ponte do Docker e resultará em erros se usado para sua VNet. Outros intervalos também podem entrar em conflito dependendo do que você deseja conectar à rede virtual. Por exemplo, se você planeja conectar sua rede local à VNet e sua rede local também usa o intervalo 172.16.0.0/16. Por fim, cabe a você planejar sua infraestrutura de rede.

  • Desabilitar as políticas de rede paras ponto de extremidade privados antes de adicionar o ponto de extremidade privado.

Limitações

  • Se você habilitar o acesso público para um workspace protegido com ponto de extremidade privado e usar o Estúdio do Azure Machine Learning pela Internet pública, alguns recursos, como o designer, poderão não conseguir acessar os dados. Esse problema ocorre quando os dados são armazenados em um serviço protegido por trás da VNet. Por exemplo, uma Conta de Armazenamento do Azure.

  • Você pode encontrar problemas ao tentar acessar o ponto de extremidade privado para o seu espaço de trabalho, se estiver usando o Mozilla Firefox. Esse problema pode estar relacionado ao DNS sobre HTTPS no Mozilla Firefox. É recomendável usar o Microsoft Edge ou o Google Chrome.

  • Usar um ponto de extremidade privado não afeta o painel de controle do Azure (operações de gerenciamento), como excluir o espaço de trabalho ou gerenciar recursos de computação. Por exemplo, criando, atualizando ou excluindo um destino de computação. Essas operações são executadas pela internet pública normalmente. Operações de plano de dados, como usar o Estúdio do Azure Machine Learning, APIs (incluindo pipelines publicados) ou o SDK usam o ponto de extremidade privado.

  • Ao criar uma instância de computação ou um cluster de cálculo em um workspace com um ponto de extremidade privado, a instância de computação e o cluster de cálculo devem estar na mesma região do Azure que o workspace.

  • Ao anexar um cluster do Serviço de Kubernetes do Azure a um espaço de trabalho com um ponto de extremidade privado, o cluster deve estar na mesma região que o espaço de trabalho.

  • Quando um workspace é usado com vários pontos de extremidade privados, um dos pontos de extremidade privados precisa estar na mesma VNet dos seguintes serviços de dependência:

    • Conta de Armazenamento do Microsoft Azure que fornece o armazenamento padrão para o workspace
    • Azure Key Vault para o workspace
    • Registro de Contêiner do Azure para o workspace.

    Por exemplo, uma VNet (VNet 'serviços') conterá um ponto de extremidade privado para os serviços de dependência e o workspace. Essa configuração permite que o workspace se comunique com os serviços. Outra VNet ('clientes') pode conter apenas um ponto de extremidade privado para o workspace e ser usada somente para comunicação entre computadores de desenvolvimento de cliente e o workspace.

Criar um espaço de trabalho que usa um ponto de extremidade privado

Use um dos métodos a seguir para criar um espaço de trabalho com um ponto de extremidade privado. Cada um desses métodos requer uma rede virtual existente:

Dica

Se você quiser criar um espaço de trabalho, um ponto de extremidade privado e uma rede virtual ao mesmo tempo, consulte Usar um modelo do Azure Resource Manager para criar um espaço de trabalho no Azure Machine Learning.

APLICA-SE A: Extensão de ML da CLI do Azure v2 (atual)

Ao usar a extensão CLI do Azure 2.0 CLI para machine learning, um documento YAML é usado para configurar o espaço de trabalho. O seguinte exemplo demonstra a criação de um novo espaço de trabalho usando uma configuração YAML:

Dica

Ao usar o link privado, seu workspace não pode usar a computação de tarefas do Registro de Contêiner do Azure para a criação de imagens. A propriedade image_build_compute nessa configuração especifica um nome de cluster de cálculo de CPU a ser usado para a compilação do ambiente de imagem do Docker. Você também pode especificar se o workspace do Link Privado deve ser acessível pela Internet usando a propriedade public_network_access.

Neste exemplo, o cálculo referenciado por image_build_compute precisará ser criado antes da compilação de imagens.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create \
    -g <resource-group-name> \
    --file privatelink.yml

Depois de criar o workspace, use os comandos da CLI de rede do Azure para criar um ponto de extremidade de link privado para o workspace.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Para criar as entradas da zona DNS privada para o workspace, use os seguintes comandos:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.api.azureml.ms

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.api.azureml.ms \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.api.azureml.ms \
    --zone-name privatelink.api.azureml.ms

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.notebooks.azure.net

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.notebooks.azure.net \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.notebooks.azure.net \
    --zone-name privatelink.notebooks.azure.net

Adicionar um ponto de extremidade privado a um espaço de trabalho

Use um dos métodos a seguir para adicionar um ponto de extremidade privado a um espaço de trabalho existente:

Aviso

Se você tiver destinos de computação existentes associados a este espaço de trabalho e eles não estiverem atrás da mesma rede virtual em que o ponto de extremidade privado será criado, eles não funcionarão.

APLICA-SE A: Extensão de ML da CLI do Azure v2 (atual)

Ao usar a extensão CLI do Azure 2.0 CLI para machine learning, use os comandos da CLI de rede do Azure para criar um ponto de extremidade de link privado para o espaço de trabalho.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Para criar as entradas da zona DNS privada para o workspace, use os seguintes comandos:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Remover um ponto de extremidade privado

Você pode remover um ou todos os pontos de extremidade privados de um workspace. Remover um ponto de extremidade privado remove o workspace da VNet a que o ponto de extremidade estava associado. Remover o ponto de extremidade privado pode impedir que o espaço de trabalho acesse recursos nessa VNet ou que recursos na VNet acessem o espaço de trabalho. Por exemplo, se a VNet não permitir acesso à Internet pública ou proveniente dela.

Aviso

Remover os pontos de extremidade privados de um workspace não o torna publicamente acessível. Para tornar o workspace publicamente acessível, use as etapas na seção Habilitar acesso público.

Para remover um ponto de extremidade privado, use as seguintes informações:

APLICA-SE A: Extensão de ML da CLI do Azure v2 (atual)

Ao usar a extensão CLI do Azure 2.0 CLI para machine learning, use o seguinte comando para remover o ponto de extremidade privado:

az network private-endpoint delete \
    --name <private-endpoint-name> \
    --resource-group <resource-group-name> \

Permitir o acesso público

Em algumas situações, talvez você queira permitir que alguém se conecte ao seu espaço de trabalho protegido por um ponto de extremidade público, em vez de por meio da VNet. Ou talvez você queira remover o workspace da VNet e habilitar o acesso público novamente.

Importante

Habilitar o acesso público não remove nenhum ponto de extremidade privado existente. Todas as comunicações entre os componentes por trás da VNet a que os pontos de extremidade privados se conectam ainda são protegidas. Isso permite acesso público somente ao workspace, além do acesso privado por meio dos pontos de extremidade privados.

Aviso

Ao se conectar pelo ponto de extremidade público enquanto o workspace usa um ponto de extremidade privado para se comunicar com outros recursos:

  • Alguns recursos do estúdio não acessarão seus dados. Esse problema ocorre quando os dados são armazenados em um serviço protegido por uma VNet. Por exemplo, uma Conta de Armazenamento do Azure. Para resolve esse problema, adicione o endereço IP do dispositivo cliente ao firewall da Conta do Armazenamento do Azure.
  • Não há suporte para usar o Jupyter, o JupyterLab, o RStudio ou Posit Workbench (anteriormente RStudio Workbench) em uma instância de computação, incluindo a execução de notebooks.

Para habilitar o acesso público, use as seguintes etapas:

Dica

Há duas propriedades possíveis que você pode configurar:

  • allow_public_access_when_behind_vnet – usada pelo SDK do Python v1
  • public_network_access – usada pela CLI e pelo SDK do Python v2 Cada propriedade substitui a outra. Por exemplo, a configuração public_network_access substituirá qualquer configuração anterior como allow_public_access_when_behind_vnet.

A Microsoft recomenda usar public_network_access para habilitar ou desabilitar o acesso público a um workspace.

APLICA-SE A: Extensão de ML da CLI do Azure v2 (atual)

Ao usar a extensão da CLI 2.0 para machine learning da CLI do Azure, use o comando az ml update para habilitar public_network_access para o workspace:

az ml workspace update \
    --set public_network_access=Enabled \
    -n <workspace-name> \
    -g <resource-group-name>

Também é possível habilitar o acesso à rede pública usando um arquivo YAML. Para saber mais, confira a Referência do YAML de workspace.

Habilitar o Acesso Público somente de intervalos de IP da Internet (versão prévia)

Você pode usar regras de rede IP para permitir o acesso ao workspace e ao ponto de extremidade de intervalos de endereços IP públicos da Internet específicos criando regras de rede IP. Cada workspace do Azure Machine Learning dá suporte a até 200 regras. Essas regras concedem acesso a serviços específicos baseados na Internet e redes locais e bloqueia o tráfego geral da Internet.

Aviso

  • Habilite o sinalizador de acesso de rede pública do ponto de extremidade se você quiser permitir o acesso ao ponto de extremidade de intervalos de endereços IP públicos específicos da Internet.
  • Quando você habilita esse recurso, isso afeta todos os pontos de extremidade públicos existentes associados ao seu workspace. Isso pode limitar o acesso a pontos de extremidade novos ou existentes. Se você acessar pontos de extremidade de um IP não permitido, um erro 403 será exibido.
  • Para usar esse recurso com a rede virtual gerenciada do Azure Machine Learning, consulte Rede virtual gerenciada do Azure Machine Learning.

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)

A CLI do Azure não dá suporte para isso.

Restrições para regras de rede IP

As restrições a seguir se aplicam a intervalos de endereços IP:

  • As regras de rede IP são permitidas apenas para endereços IP públicos da internet.

    intervalos de endereços IP reservados não são permitidos em regras de IP, como endereços privados que começam com 10, 172.16 a 172.31 e 192.168.

  • Forneça intervalos de endereços de Internet permitidos usando a notação CIDR no formulário 16.17.18.0/24 ou como endereços IP individuas como 16.17.18.19.

  • Somente endereços IPv4 são compatíveis com a configuração de regras de firewall de armazenamento.

  • Quando esse recurso estiver habilitado, você poderá testar pontos de extremidade públicos usando qualquer ferramenta de cliente, como o Postman ou outros, mas não há suporte para a ferramenta de Teste de Ponto de Extremidade no portal.

Conectar-se com segurança ao seu espaço de trabalho

Para se conectar a um workspace protegido por uma VNet, use um dos seguintes métodos:

  • Gateway de VPN do Azure – conecta redes locais à VNet por meio de uma conexão privada. A conexão é feita pela Internet pública. Há dois tipos de gateways de VPN que você pode usar:

    • Ponto a site: cada computador cliente usa um cliente VPN para se conectar à VNet.
    • Site a site: um dispositivo VPN conecta a VNet à sua rede local.
  • ExpressRoute – conecta redes locais à nuvem por meio de uma conexão privada. A conexão é feita usando um provedor de conectividade.

  • Azure Bastion – neste cenário, você cria uma máquina virtual do Azure (às vezes chamada de jump box) dentro da VNet. Em seguida, você se conecta à VM usando o Azure Bastion. O Bastion permite que você se conecte à VM usando uma sessão RDP ou SSH do navegador da Web local. Em seguida, use a jump box como seu ambiente de desenvolvimento. Por estar dentro da VNet, ela pode acessar o workspace diretamente. Para obter um exemplo de como usar uma jump box, confira Tutorial: criar um espaço de trabalho seguro.

Importante

Ao usar um Gateway de VPN ou ExpressRoute, você precisará planejar como a resolução de nomes funciona entre os recursos locais e os recursos na VNet. Para obter mais informações, confira Usar um servidor DNS personalizado.

Se você tiver problemas para se conectar ao workspace, consulte Solucionar problemas de conectividade segura do workspace.

Pontos de extremidade privados múltiplos

O Azure Machine Learning dá suporte a pontos de extremidade privados múltiplos em um workspace. Geralmente, vários pontos de extremidade privados são usados quando você deseja manter diferentes ambientes separados. Estes são alguns cenários habilitados usando vários pontos de extremidade privados:

  • Ambientes de desenvolvimento de cliente em uma VNet separada.

  • Um cluster do AKS (Serviço de Kubernetes do Azure) em uma VNet separada.

  • Outros serviços do Azure em uma VNet separada. Por exemplo, o Azure Synapse e o Azure Data Factory podem usar uma rede virtual gerenciada pela Microsoft. Em ambos os casos, um ponto de extremidade privado para o workspace pode ser adicionado à VNet gerenciada usada por esses serviços. Para obter mais informações sobre como usar uma rede virtual gerenciada com esses serviços, confira os seguintes artigos:

    Importante

    A proteção de exfiltração dos dados do Synapse não tem suporte no Azure Machine Learning.

Importante

Cada VNet que contém um ponto de extremidade privado para o workspace também deve acessar a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usados pelo workspace. Por exemplo, você pode criar um ponto de extremidade privado para os serviços em cada VNet.

A adição de pontos de extremidade privados múltiplos segue as mesmas etapas descritas na seção Adicionar um ponto de extremidade privado a um workspace.

Cenário: clientes isolados

Se você deseja isolar os clientes de desenvolvimento, para que não tenham acesso direto aos recursos de computação usados pelo Azure Machine Learning, siga estas etapas:

Observação

Estas etapas presumem que você tem um workspace existente, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.

  1. Crie outra VNet para os clientes. Essa VNet pode conter Máquinas Virtuais do Azure que atuam como os clientes ou pode conter um Gateway de VPN usado por clientes locais para se conectar à VNet.
  2. Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usado pelo workspace. Esses pontos de extremidade privados devem existir na VNet de cliente.
  3. Se você tiver outro armazenamento usado pelo espaço de trabalho, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
  4. Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
  5. Siga as etapas no artigo Usar o estúdio em uma rede virtual para habilitar o estúdio a acessar as contas de armazenamento.

O diagrama a seguir ilustra essa configuração. A VNet de Carga de Trabalho contém as computações criadas pelo workspace para treinamento e implantação. A VNet de Cliente contém os clientes ou as conexões ExpressRoute/VPN de cliente. Ambas as VNets contêm pontos de extremidade privados para o workspace, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure.

Diagram of isolated client VNet

Cenário: Serviço de Kubernetes do Azure isolado

Se você deseja criar um Serviço de Kubernetes do Azure isolado usado pelo workspace, siga estas etapas:

Observação

Estas etapas presumem que você tem um workspace existente, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.

  1. Criar uma instância do Serviço de Kubernetes do Azure. Durante a criação, o AKS cria uma VNet que contém o cluster do AKS.
  2. Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usado pelo workspace. Esses pontos de extremidade privados devem existir na VNet de cliente.
  3. Se você tiver outro armazenamento usado pelo workspace, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
  4. Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
  5. Anexe o cluster do AKS ao workspace do Azure Machine Learning. Para obter mais informações, confira Criar e anexar um cluster do Serviço de Kubernetes do Azure.

Diagram of isolated AKS VNet

Próximas etapas