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

APLICA-SE A: Extensão de ML da CLI do Azurev2 (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ê restrinja as conexões com seu workspace e as limite a uma Rede Virtual do Azure. Você pode restringir um workspace para aceitar conexões apenas de uma rede virtual criando 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 a um workspace protegido com ponto de extremidade privado e usar o Estúdio do Azure Machine Learning por meio da internet pública, alguns recursos, como o designer, talvez não consigam acessar seus dados. Esse problema ocorre quando os dados são armazenados em um serviço protegido por trás de uma rede virtual. Por exemplo, uma Conta de Armazenamento do Azure.

  • Se estiver usando o Mozilla Firefox, você talvez tenha problemas quando tentar acessar o ponto de extremidade privado do seu workspace. 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.

  • Quando você cria uma instância ou um cluster de computação em um workspace com um ponto de extremidade privado, a instância e o cluster de computação precisam estar na mesma região do Azure que o workspace.

  • Quando você anexa um cluster do Serviço de Kubernetes do Azure a um workspace com um ponto de extremidade privado, o cluster precisa estar na mesma região que o workspace.

  • Quando você usa um workspace com vários pontos de extremidade privados, um dos pontos de extremidade privados precisa estar na mesma rede virtual 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 rede virtual ("serviços") poderá conter um ponto de extremidade privado para o workspace e serviços de dependência. Essa configuração permite que o workspace se comunique com os serviços. Outra rede virtual ("clientes") poderá conter um ponto de extremidade privado apenas para o workspace e ser usada somente para fins de comunicação entre o workspace e computadores de desenvolvimento de clientes.

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 Azurev2 (atual)

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

Dica

Quando você usa 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. Em vez disso, o workspace usa um cluster de computação sem servidor como padrão para criar imagens. Essa opção funciona somente quando os recursos dependentes do workspace, como a conta de armazenamento ou o registro de contêiner, não estão sujeitos a nenhuma restrição de rede (pontos de extremidade privados). Se as dependências do seu workspace estiverem sujeitas a restrições de rede, use a propriedade image_build_compute para especificar um cluster de computação a ser usado 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 Azurev2 (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. A remoção de um ponto de extremidade privado remove o workspace da rede virtual à qual o ponto extremidade estava associado. A remoção do ponto de extremidade privado talvez impeça o workspace de acessar os recursos nessa rede virtual ou os recursos localizados na rede virtual de acessar o workspace. Por exemplo, se a rede virtual não permitir o acesso de ou para a Internet pública.

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 Azurev2 (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 querer permitir que alguém se conecte ao seu workspace por meio de um ponto de extremidade público e não por meio da rede virtual. Ou poderá querer remover o espaço de trabalho da rede virtual e reativar o acesso público.

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 Azurev2 (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.
  • Você só pode usar endereços IPv4.
  • 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 Azurev2 (atual)

A CLI do Azure não dá suporte à habilitação do acesso público proveniente de intervalos de IP.

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 Curl, mas a ferramenta de Teste de Ponto de Extremidade do portal não tem suporte.

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 clientes em uma rede virtual separada.

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

  • Outros serviços do Azure em uma rede virtual 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 à rede virtual 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 rede virtual para os clientes. Essa rede virtual talvez contenha Máquinas Virtuais do Azure que atuam como seus clientes ou um Gateway de VPN usado por clientes locais para se conectar à rede virtual.
  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 rede virtual do 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 rede virtual de cliente e ter uma integração com a zona DNS privada habilitada.
  4. Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na rede virtual de cliente e ter uma integração habilitada com a zona DNS privada.
  5. Para permitir que o estúdio do Azure Machine Learning acesse as contas de armazenamento, acesse o artigo Estúdio do Azure Machine Learning em uma rede virtual.

O diagrama a seguir ilustra essa configuração. A rede virtual da Carga de trabalho contém recursos de computação criados pelo workspace para fins de treinamento e implantação. A rede virtual Clientes contém as conexões de ExpressRoute/VPN de um cliente ou clientes. 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.

Diagrama da VNet de cliente isolado

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 rede virtual 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 rede virtual do 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 rede virtual de cliente e ter uma integração com a zona DNS privada habilitada.
  4. Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na rede virtual de cliente e ter uma integração habilitada com a zona DNS privada.
  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.

Diagrama da VNet do AKS isolado