Partilhar via


Configurar um ponto final privado para uma área de trabalho do Azure Machine Learning

APLICA-SE A: Azure CLI ml extension v2 (atual)

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

O Azure Private Link permite restringir conexões ao seu espaço de trabalho para uma Rede Virtual do Azure. Você restringe um espaço de trabalho para aceitar apenas conexões de uma rede virtual criando um ponto de extremidade privado. O ponto de extremidade privado é um conjunto de endereços IP privados dentro da sua rede virtual. Em seguida, você pode limitar o acesso ao seu espaço de trabalho para ocorrer apenas nos endereços IP privados. Um endpoint privado ajuda a reduzir o risco de exfiltração de dados. Para saber mais sobre pontos de extremidade privados, consulte o artigo Azure Private Link .

Aviso

Proteger um espaço de trabalho 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ê usar um ponto de extremidade privado para o espaço de trabalho, mas sua Conta de Armazenamento do Azure não estiver atrás da VNet, o tráfego entre o espaço de trabalho e o armazenamento não usará a VNet para segurança.

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

Pré-requisitos

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

    Aviso

    Não use o intervalo de endereços IP 172.17.0.0/16 para sua rede virtual. Este é o intervalo de sub-rede padrão usado pela rede de ponte do Docker e resultará em erros se usado para sua rede virtual. Outros intervalos também podem entrar em conflito consoante o que pretende ligar à rede virtual. Por exemplo, se planear ligar a sua rede no ambiente no local à VNet e essa rede também utilizar o intervalo 172.16.0.0/16. Em última análise, cabe a você planejar sua infraestrutura de rede.

  • Desative as políticas de rede para pontos de extremidade privados antes de adicionar o ponto de extremidade privado.

Limitações

  • Se você habilitar o acesso público para um espaço de trabalho 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 seus dados. Esse problema acontece quando os dados são armazenados em um serviço que está protegido atrás da rede virtual. Por exemplo, uma conta de Armazenamento do Azure.

  • Se estiver a utilizar o Mozilla Firefox, poderá ter problemas ao tentar aceder ao ponto de extremidade privado para a sua área de trabalho. Esse problema pode estar relacionado a DNS sobre HTTPS no Mozilla Firefox. Recomendamos o uso do Microsoft Edge ou do Google Chrome.

  • O uso de um ponto de extremidade privado não afeta o plano de controle do Azure (operações de gerenciamento), como excluir o espaço de trabalho ou gerenciar recursos de computação. Por exemplo, criar, atualizar ou excluir um destino de computação. Estas operações são realizadas através da Internet pública normalmente. As operações do plano de dados, como o uso do 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 de computação ou cluster de computação em um espaço de trabalho com um ponto de extremidade privado, a instância de computação e o cluster de computação devem estar na mesma região do Azure que o espaço de trabalho.

  • Quando você anexa um cluster do Serviço 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 você usa um espaço de trabalho com vários pontos de extremidade privados, um dos pontos de extremidade privados deve estar na mesma rede virtual que os seguintes serviços de dependência:

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

    Por exemplo, uma rede virtual ('serviços') conteria um ponto de extremidade privado para os serviços de dependência e o espaço de trabalho. Essa configuração permite que o espaço de trabalho se comunique com os serviços. Outra rede virtual ('clientes') pode conter apenas um ponto de extremidade privado para o espaço de trabalho e ser usada apenas para comunicação entre as máquinas de desenvolvimento do cliente e o espaço de trabalho.

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

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

Gorjeta

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 para o Aprendizado de Máquina do Azure.

APLICA-SE A: Azure CLI ml extension v2 (atual)

Quando você usa a CLI da extensão 2.0 da CLI do Azure para aprendizado de máquina, um documento YAML é usado para configurar o espaço de trabalho. O exemplo a seguir demonstra a criação de um novo espaço de trabalho usando uma configuração YAML:

Gorjeta

Quando você usa um link privado, seu espaço de trabalho não pode usar as tarefas do Registro de Contêiner do Azure para a criação de imagens. Em vez disso, o espaço de trabalho assume como padrão o uso de um cluster de computação sem servidor para criar imagens. Isso funciona somente quando os recursos aprofundados do espaço de trabalho, como a conta de armazenamento e o registro de contêiner, não estão sob nenhuma restrição de rede (ponto de extremidade privado). Se as dependências do espaço de trabalho estiverem sob restrições de rede, use a image_build_compute propriedade para especificar um cluster de computação a ser usado para a criação de imagens. A image_build_compute propriedade nessa configuração especifica um nome de cluster de computação da CPU a ser usado para a criação do ambiente de imagem do Docker. Você também pode especificar se o espaço de trabalho de link privado deve ser acessível pela Internet usando a public_network_access propriedade.

Neste exemplo, o cálculo referenciado por image_build_compute precisará ser criado antes de criar 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 espaço de trabalho, 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 de zona DNS privada para o espaço de trabalho, 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 seguintes métodos para adicionar um ponto de extremidade privado a um espaço de trabalho existente:

Aviso

Se você tiver quaisquer destinos de computação existentes associados a esse espaço de trabalho e eles não estiverem atrás da mesma rede virtual na qual o ponto de extremidade privado foi criado, eles não funcionarão.

APLICA-SE A: Azure CLI ml extension v2 (atual)

Ao usar a CLI da extensão 2.0 da CLI do Azure para aprendizado de máquina, 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 de zona DNS privada para o espaço de trabalho, 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 espaço de trabalho. A remoção de um ponto de extremidade privado remove o espaço de trabalho da rede virtual à qual o ponto de extremidade estava associado. Remover o ponto de extremidade privado pode impedir que o espaço de trabalho acesse recursos nessa rede virtual ou que recursos na rede virtual acessem o espaço de trabalho. Por exemplo, se a rede virtual não permitir o acesso à Internet pública ou a partir dela.

Aviso

A remoção dos pontos de extremidade privados de um espaço de trabalho não o torna acessível publicamente. Para tornar o espaço de trabalho acessível publicamente, 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: Azure CLI ml extension v2 (atual)

Ao usar a CLI da extensão 2.0 da CLI do Azure para aprendizado de máquina, 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> \

Habilitar acesso público

Em algumas situações, talvez você queira permitir que alguém se conecte ao seu espaço de trabalho seguro por meio de um ponto de extremidade público, em vez de por meio da rede virtual. Ou talvez você queira 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 componentes por trás da VNet à qual o(s) ponto(s) de extremidade privado se conectam ainda estão protegidas. Permite o acesso público apenas ao espaço de trabalho, além do acesso privado através de quaisquer terminais privados.

Aviso

Ao ligar-se através do ponto final público enquanto a área de trabalho utiliza um ponto final privado para comunicar com outros recursos:

  • Alguns recursos do estúdio não conseguirão acessar seus dados. Esse problema acontece quando os dados são armazenados em um serviço que está protegido por trás da rede virtual. Por exemplo, uma conta de Armazenamento do Azure. Para resolver esse problema, adicione o endereço IP do dispositivo cliente ao firewall da Conta de Armazenamento do Azure.
  • Não há suporte para o uso do Jupyter, JupyterLab, 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:

Gorjeta

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

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

A Microsoft recomenda o uso public_network_access para habilitar ou desabilitar o acesso público a um espaço de trabalho.

APLICA-SE A: Azure CLI ml extension v2 (atual)

Ao usar a CLI da extensão 2.0 da CLI do Azure para aprendizado de máquina, use o az ml update comando para habilitar public_network_access o espaço de trabalho:

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

Você também pode habilitar o acesso à rede pública usando um arquivo YAML. Para obter mais informações, consulte a referência YAML do espaço de trabalho.

Ativar o Acesso Público apenas a partir de intervalos de IP da Internet (pré-visualização)

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

Aviso

  • Habilite o sinalizador de acesso à rede pública do seu ponto de extremidade se quiser permitir o acesso ao seu ponto de extremidade a partir de intervalos de endereços IP da Internet públicos específicos.
  • Quando você habilita esse recurso, isso afeta todos os pontos de extremidade públicos existentes associados ao seu espaço de trabalho. Isso pode limitar o acesso a pontos de extremidade novos ou existentes. Se aceder a quaisquer pontos finais a partir de um IP não permitido, obterá um erro 403.
  • 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: Azure CLI ml extension v2 (atual)

A CLI do Azure não oferece suporte à habilitação do acesso público a partir de intervalos de IP.

Restrições para regras de rede IP

As seguintes restrições aplicam-se aos 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.

  • Você deve fornecer intervalos de endereços de Internet permitidos usando a notação CIDR no formato 16.17.18.0/24 ou como endereços IP individuais como 16.17.18.19.

  • Apenas endereços IPv4 são suportados para a configuração de regras de firewall de armazenamento.

  • Quando esse recurso está habilitado, você pode testar pontos de extremidade públicos usando qualquer ferramenta de cliente, como Curl, mas a ferramenta Endpoint Test no portal não é suportada.

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

Para se conectar a um espaço de trabalho protegido atrás de uma rede virtual, 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 através da internet pública. Há dois tipos de gateways VPN que você pode usar:

    • Ponto a site: cada computador cliente usa um cliente VPN para se conectar à rede virtual.
    • Site a site: um dispositivo VPN conecta a rede virtual à 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 caixa de salto) dentro da VNet. Em seguida, você se conecta à VM usando o Azure Bastion. Bastion permite que você se conecte à VM usando uma sessão RDP ou SSH do seu navegador da Web local. Em seguida, você usa a caixa de salto como seu ambiente de desenvolvimento. Como ele está dentro da rede virtual, ele pode acessar diretamente o espaço de trabalho. Para obter um exemplo de como usar uma caixa de salto, consulte Tutorial: Criar um espaço de trabalho seguro.

Importante

Ao usar um gateway VPN ou Rota Expressa, você precisará planejar como funciona a resolução de nomes entre seus recursos locais e aqueles na VNet. Para obter mais informações, consulte Usar um servidor DNS personalizado.

Se você tiver problemas para se conectar ao espaço de trabalho, consulte Solucionar problemas de conectividade do espaço de trabalho seguro.

Vários endpoints privados

O Azure Machine Learning dá suporte a vários pontos de extremidade privados para um espaço de trabalho. Vários pontos de extremidade privados são frequentemente usados quando você deseja manter ambientes diferentes separados. A seguir estão alguns cenários que são habilitados usando vários pontos de extremidade privados:

  • Ambientes de desenvolvimento de clientes em uma rede virtual separada.

  • Um cluster do Serviço 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 espaço de trabalho 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, consulte os seguintes artigos:

    Importante

    A proteção de exfiltração de dados da Synapse não é suportada com o Azure Machine Learning.

Importante

Cada VNet que contém um ponto de extremidade privado para o espaço de trabalho também deve ser capaz de acessar a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure usados pelo espaço de trabalho. Por exemplo, você pode criar um ponto de extremidade privado para os serviços em cada VNet.

Adicionar vários pontos de extremidade privados usa as mesmas etapas descritas na seção Adicionar um ponto de extremidade privado a um espaço de trabalho .

Cenário: Clientes isolados

Se você quiser isolar os clientes de desenvolvimento, para que eles não tenham acesso direto aos recursos de computação usados pelo Azure Machine Learning, use as seguintes etapas:

Nota

Estas etapas pressupõem que você tenha um espaço de trabalho existente, Conta de Armazenamento do Azure, Cofre da Chave do Azure e 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 pode conter Máquinas Virtuais do Azure que atuam como seus clientes ou pode conter um Gateway VPN usado por clientes locais para se conectar à rede virtual.
  2. Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure usados pelo seu espaço de trabalho. Esses pontos de extremidade privados devem existir na rede virtual do cliente.
  3. Se você tiver outro armazenamento usado pelo seu espaço de trabalho, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na rede virtual do cliente e ter a integração de zona DNS privada habilitada.
  4. Adicione um novo ponto de extremidade privado ao seu espaço de trabalho. Esse ponto de extremidade privado deve existir na rede virtual do cliente e ter a integração de zona DNS privada habilitada.
  5. Para permitir que o estúdio do Azure Machine Learning acesse as contas de armazenamento, visite o estúdio em um artigo de rede virtual.

O diagrama a seguir ilustra essa configuração. A rede virtual Workload contém recursos de computação criados pelo espaço de trabalho para treinamento e implantação. A rede virtual do cliente contém clientes ou conexões ExpressRoute/VPN do cliente. Ambas as VNets contêm pontos de extremidade privados para o espaço de trabalho, a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure.

Diagrama de VNet de cliente isolado

Cenário: Serviço Kubernetes do Azure isolado

Se você quiser criar um Serviço Kubernetes do Azure isolado usado pelo espaço de trabalho, use as seguintes etapas:

Nota

Estas etapas pressupõem que você tenha um espaço de trabalho existente, Conta de Armazenamento do Azure, Cofre da Chave do Azure e Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.

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

Diagrama de AKS VNet isolado