Partilhar via


Configurar um ponto de extremidade privado para um espaço de trabalho do Azure Machine Learning com SDK e CLI v1

APLICA-SE A:Azure CLI ml extension v1Python SDK azureml v1

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

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, podem falhar ao acessar seus dados. Este problema acontece quando os dados estão armazenados num 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 seu espaço de trabalho se estiver usando o Mozilla Firefox. Esse problema pode estar relacionado ao DNS sobre HTTPS no Mozilla Firefox. Recomendamos o uso do Microsoft Edge ou do Google Chrome como uma solução alternativa.

  • 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.

  • Ao criar uma instância de computação ou um cluster de cálculo numa área de trabalho com um ponto final privado, a instância de computação e o cluster de cálculo têm de estar na mesma região do Azure da área de trabalho.

  • Ao criar ou anexar 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.

  • Ao usar um espaço de trabalho com vários pontos de extremidade privados, um dos pontos de extremidade privados deve estar na mesma VNet 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 VNet (VNet 'services') 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 VNet ('clientes') pode conter apenas um ponto de extremidade privado para o espaço de trabalho e ser usado apenas para comunicação entre máquinas de desenvolvimento 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.

O SDK Python do Azure Machine Learning fornece a classe PrivateEndpointConfig , que pode ser usada com Workspace.create() para criar um espaço de trabalho com um ponto de extremidade privado. Esta classe requer uma rede virtual existente.

APLICA-SE A: Python SDK azureml v1

from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig

pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.create(name='myworkspace',
    subscription_id='<my-subscription-id>',
    resource_group='myresourcegroup',
    location='eastus2',
    private_endpoint_config=pe,
    private_endpoint_auto_approval=True,
    show_output=True)

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 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: Python SDK azureml v1

from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig

pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.from_config()
ws.add_private_endpoint(private_endpoint_config=pe, private_endpoint_auto_approval=True, show_output=True)

Para obter mais informações sobre as classes e métodos usados neste exemplo, consulte PrivateEndpointConfig e Workspace.add_private_endpoint.

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 VNet à qual o ponto de extremidade estava associado. A remoção do 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 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:

Para remover um ponto de extremidade privado, use Workspace.delete_private_endpoint_connection. O exemplo a seguir demonstra como remover um ponto de extremidade privado:

APLICA-SE A: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
# get the connection name
_, _, connection_name = ws.get_details()['privateEndpointConnections'][0]['id'].rpartition('/')
ws.delete_private_endpoint_connection(private_endpoint_connection_name=connection_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 VNet. Ou talvez você queira remover o espaço de trabalho da VNet 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.
  • 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 e CLI v2
  • public_network_access - usado pelo Python SDK e CLI 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.

Para habilitar o acesso público, use Workspace.update e defina allow_public_access_when_behind_vnet=True.

APLICA-SE A: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
ws.update(allow_public_access_when_behind_vnet=True)

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 VNet separada.

  • Um cluster do Serviço Kubernetes do Azure (AKS) 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 espaço de trabalho 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, 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 VNet para os clientes. Essa VNet 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 à VNet.
  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 VNet 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 VNet 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 VNet do cliente e ter a integração de zona DNS privada habilitada.
  5. Use as etapas no artigo Usar estúdio em uma rede virtual para permitir que o estúdio acesse a(s) conta(s) de armazenamento.

O diagrama a seguir ilustra essa configuração. A VNet de carga de trabalho contém cálculos criados pelo espaço de trabalho para treinamento e implantação. A VNet 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 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 VNet 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 VNet 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 VNet 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 VNet 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.

Próximos passos