Isolamento de rede com registros do Azure Machine Learning

Neste artigo, você aprenderá a proteger o registro do Azure Machine Learning usando a Rede Virtual do Azure e pontos de extremidade privados.

Os pontos de extremidade privados no Azure fornecem isolamento de rede ao permitir que os serviços do Azure sejam acessados por meio de um endereço IP privado em uma VNet (rede virtual). A VNet protege as conexões entre recursos do Azure e impede a exposição de dados confidenciais à Internet pública.

O uso do isolamento de rede com pontos de extremidade privados impede que o tráfego de rede passe pela Internet pública e traz o serviço de registro do Azure Machine Learning para a sua rede virtual. Todo o tráfego de rede ocorrerá por meio de um Link Privado do Azure quando pontos de extremidade privados forem usados.

Pré-requisitos

Proteção do registro do Azure Machine Learning

Observação

Para simplificar, vamos chamar de configuração segura do workspace o workspace, os recursos associados e a rede virtual da qual eles fazem parte. Exploraremos como adicionar registros do Azure Machine Learning como parte da configuração existente.

O diagrama a seguir mostra uma configuração de rede básica e como o registro do Azure Machine Learning se encaixa nela. Caso já esteja usando o workspace do Azure Machine Learning e tenha uma configuração de workspace segura na qual todos os recursos fazem parte da rede virtual, você poderá criar um ponto de extremidade privado da rede virtual existente para o registro do Azure Machine Learning e seus recursos associados (armazenamento e ACR).

Se você não tiver uma configuração de workspace segura, poderá criá-la usando o artigo Criar um workspace seguro no portal do Azure, o modelo Bicep ou o modelo do Terraform.

Diagrama do registro conectado à rede virtual, contendo o workspace e recursos associados usando o ponto de extremidade privado.

Limitações

Se você estiver usando um registro do Azure Machine Learning com isolamento de rede, poderá exibir os ativos do modelo no Estúdio do Azure Machine Learning. Você não poderá exibir outros tipos de ativos. Você não poderá executar operações no Registro do Azure Machine Learning ou ativos sob ele usando o estúdio. Em vez disso, use a CLI ou o SDK do Azure Machine Learning.

Cenário: a configuração do workspace é segura, e o registro do Azure Machine Learning é público

Esta seção descreve os cenários e a configuração de rede necessária se você tiver uma configuração de workspace segura, mas esteja usando um registro público.

Criar ativos no registro a partir de arquivos locais

A identidade (por exemplo, a identidade do usuário do Microsoft Entra de um Cientista de Dados) usada para criar ativos no registro deve ser atribuída à função de Usuário do Registro do AzureML, proprietário ou colaborador no controle de acesso baseado em função do Azure. Para obter mais informações, confira o artigo Gerenciar acesso ao Azure Machine Learning.

Compartilhar ativos do workspace com o registro

Observação

No momento, não há suporte para o compartilhamento de um componente do espaço de trabalho do Azure Machine Learning para o Registro do Azure Machine Learning.

Devido à proteção contra a exfiltração de dados, não é possível compartilhar um ativo do workspace seguro com um registro público se a conta de armazenamento que contém o ativo estiver com o acesso público desabilitado. Para habilitar o compartilhamento de ativos do espaço de trabalho para o Registro:

  • Acesse a seção Rede da conta de armazenamento anexada ao espaço de trabalho (de onde você quer permitir o compartilhamento de ativos no registro)
  • Defina o Acesso à rede pública como Habilitado de redes virtuais selecionadas e endereços IP
  • Role para baixo e vá para a seção Instâncias de recurso. Selecione o tipo de recurso para Microsoft.MachineLearningServices/registries e defina o Nome da instância como o nome do recurso do Registro do Azure Machine Learning, caso queira habilitar o compartilhamento no espaço de trabalho.
  • Verifique o restante das configurações de acordo com a configuração de rede.

Usar ativos do registro no workspace

Operações de exemplo:

  • Envie um trabalho que use um ativo do registro.
  • Use um componente do registro em um pipeline.
  • Use um ambiente do registro em um componente.

Para usar ativos do registro para um workspace seguro, deve-se configurar o acesso de saída ao registro.

Implantar um modelo a partir de um registro no workspace

Para implantar um modelo a partir de um registro para um ponto de extremidade online gerenciado seguro, a implantação deve ter egress_public_network_access=disabled definido. O Azure Machine Learning cria os pontos de extremidade privados necessários para o registro durante a implantação do ponto de extremidade. Para obter mais informações, confira Criar pontos de extremidade online seguros.

Configuração da rede de saída para acessar qualquer registro do Azure Machine Learning

Marca de serviço Protocolo e portas Finalidade
AzureMachineLearning TCP: 443, 877, 18881
UDP: 5831
Uso dos serviços do Azure Machine Learning.
Storage.<region> TCP: 443 Acesse dados armazenados na Conta de Armazenamento do Azure para clusters de cálculo e instâncias de computação. Essa saída pode ser usada para exfiltrar dados. Para obter mais informações, confira Proteção contra exfiltração dos dados.
MicrosoftContainerRegistry.<region> TCP: 443 Acesse as imagens do Docker fornecidas pela Microsoft.
AzureContainerRegistry.<region> TCP: 443 Acesse as imagens do Docker para ambientes.

Cenário: a configuração do workspace é segura, e o registro do Azure Machine Learning está conectado a redes virtuais usando pontos de extremidade privados

Esta seção descreve os cenários e a configuração de rede necessária se você tiver uma configuração de workspace segura com registros do Azure Machine Learning conectados usando o ponto de extremidade privado para uma rede virtual.

O registro do Azure Machine Learning tem instâncias de serviço de armazenamento/ACR associadas. Essas instâncias de serviço também podem ser conectadas à VNet usando pontos de extremidade privados para proteger a configuração. Para obter mais informações, confira a seção Como criar um ponto de extremidade privado.

Como localizar a Conta de Armazenamento do Azure e o Registro de Contêiner do Azure usados pelo seu registro

A conta de armazenamento e o ACR usados pelo registro do Azure Machine Learning são criados em um grupo de recursos gerenciados em sua assinatura do Azure. O nome do grupo de recurso gerenciado segue o padrão de azureml-rg-<name-of-your-registry>_<GUID>. O GUID é uma cadeia de caracteres gerada aleatoriamente. Por exemplo, se o nome do seu registro for "contosoreg", o nome do grupo de recursos gerenciado será azureml-rg-contosoreg_<GUID>.

No portal do Azure, você pode encontrar esse grupo de recursos pesquisando por azureml_rg-<name-of-your-registry>. Todos os recursos de armazenamento e do ACR do seu registro estão disponíveis nesse grupo de recursos.

Criar ativos no registro a partir de arquivos locais

Observação

Não há suporte para a criação de um ativo de ambiente em um registro privado em que o acesso público do ACR associado esteja desabilitado. Como alternativa, é possível criar um ambiente no workspace do Azure Machine Learning e compartilhá-lo com o Registro do Azure Machine Learning.

Os clientes precisam estar conectados à VNet à qual o registro esteja conectado a um ponto de extremidade privado.

Conectar-se com segurança ao seu registro

Para se conectar a um registro 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. Como ela está dentro da VNet, pode acessar o registro diretamente.

Compartilhar ativos do workspace com o registro

Observação

No momento, não há suporte para o compartilhamento de um componente do espaço de trabalho do Azure Machine Learning para o Registro do Azure Machine Learning.

Devido à proteção contra a exfiltração de dados, não é possível compartilhar um ativo do espaço de trabalho seguro com um Registro particular se a conta de armazenamento que contém o ativo estiver com o acesso público desabilitado. Para habilitar o compartilhamento de ativos do espaço de trabalho para o Registro:

  • Acesse a seção Rede da conta de armazenamento anexada ao espaço de trabalho (de onde você quer permitir o compartilhamento de ativos no registro)
  • Defina o Acesso à rede pública como Habilitado de redes virtuais selecionadas e endereços IP
  • Role para baixo e vá para a seção Instâncias de recurso. Selecione o tipo de recurso para Microsoft.MachineLearningServices/registries e defina o Nome da instância como o nome do recurso do Registro do Azure Machine Learning, caso queira habilitar o compartilhamento no espaço de trabalho.
  • Verifique o restante das configurações de acordo com a configuração de rede.

Usar ativos do registro no workspace

Operações de exemplo:

  • Envie um trabalho que use um ativo do registro.
  • Use um componente do registro em um pipeline.
  • Use um ambiente do registro em um componente.

Crie um ponto de extremidade privado para o registro, para o armazenamento e para o ACR da VNet do workspace. Caso esteja tentando se conectar a vários registros, crie um ponto de extremidade privado para cada registro e armazenamento associado e para os ACRs. Para obter mais informações, confira a seção Como criar um ponto de extremidade privado.

Implantar um modelo a partir de um registro no workspace

Para implantar um modelo a partir de um registro para um ponto de extremidade online gerenciado seguro, a implantação deve ter egress_public_network_access=disabled definido. O Azure Machine Learning cria os pontos de extremidade privados necessários para o registro durante a implantação do ponto de extremidade. Para obter mais informações, confira Criar pontos de extremidade online seguros.

Como criar um ponto de extremidade privado

Use as guias para exibir instruções para adicionar um ponto de extremidade privado a um registro existente ou para criar um novo registro que tenha um ponto de extremidade privado:

  1. No portal do Azure, pesquise o Ponto de extremidade privado e selecione a entrada Pontos de extremidade privados para ir para o Centro de link privado.

  2. Na página de visão geral do Centro de link privado, selecione + Criar.

  3. Forneça as informações solicitadas. No campo Região, selecione a mesma região que sua Rede Virtual do Microsoft Azure. Selecione Avançar.

  4. Na guia Recurso, ao selecionar Tipo de recurso, selecione Microsoft.MachineLearningServices/registries. Defina o campo Recurso como o nome do registro do Azure Machine Learning, depois selecione Avançar.

  5. Na guia Rede virtual, selecione a rede virtual e a sub-rede para seus recursos do Azure Machine Learning. Selecione Avançar para continuar.

  6. Na guia DNS, deixe os valores padrão, a menos que você tenha requisitos específicos de integração do DNS privado. Selecione Avançar para continuar.

  7. Na guia Revisar + Criar, selecione Criar para criar um ponto de extremidade privado.

  8. Caso queira definir o acesso à rede pública como desabilitado, use o comando a seguir. Confirme se o acesso à rede pública também está desabilitado para o armazenamento e o ACR.

    az ml registry update --set publicNetworkAccess=Disabled --name <name-of-registry>
    

Como localizar a Conta de Armazenamento do Azure e o Registro de Contêiner do Azure usados pelo seu registro

A conta de armazenamento e o ACR usados pelo registro do Azure Machine Learning são criados em um grupo de recursos gerenciados em sua assinatura do Azure. O nome do grupo de recurso gerenciado segue o padrão de azureml-rg-<name-of-your-registry>_<GUID>. O GUID é uma cadeia de caracteres gerada aleatoriamente. Por exemplo, se o nome do seu registro for "contosoreg", o nome do grupo de recursos gerenciado será azureml-rg-contosoreg_<GUID>.

No portal do Azure, você pode encontrar esse grupo de recursos pesquisando por azureml_rg-<name-of-your-registry>. Todos os recursos de armazenamento e do ACR do seu registro estão disponíveis nesse grupo de recursos.

Como criar um ponto de extremidade privado para a Conta de Armazenamento do Azure

Para criar um ponto de extremidade privado para a conta de armazenamento usada pelo registro, use as seguintes etapas:

  1. No portal do Azure, pesquise o Ponto de extremidade privado e selecione a entrada Pontos de extremidade privados para ir para o Centro de link privado.
  2. Na página de visão geral do Centro de link privado, selecione + Criar.
  3. Forneça as informações solicitadas. No campo Região, selecione a mesma região que sua Rede Virtual do Microsoft Azure. Selecione Avançar.
  4. Na guia Recurso, ao selecionar Tipo de recurso, selecione Microsoft.Storage/storageAccounts. Defina o campo Recurso com o nome da conta de armazenamento. Defina o Sub-recurso como Blob, depois selecione Avançar.
  5. Na guia Rede virtual, selecione a rede virtual e a sub-rede para seus recursos do Azure Machine Learning. Selecione Avançar para continuar.
  6. Na guia DNS, deixe os valores padrão, a menos que você tenha requisitos específicos de integração do DNS privado. Selecione Avançar para continuar.
  7. Na guia Revisar + Criar, selecione Criar para criar um ponto de extremidade privado.

Proteção contra exfiltração dos dados

Para um registro do Azure Machine Learning criado pelo usuário, recomendamos usar um ponto de extremidade privado para o registro, para a conta de armazenamento gerenciado e para o ACR gerenciado.

Para um registro do sistema, recomendamos criar uma Política de Ponto de Extremidade de Serviço para a conta de Armazenamento usando o alias /services/Azure/MachineLearning. Para obter mais informações, confira Configurar a prevenção contra a exfiltração de dados.

Como encontrar o nome de domínio totalmente qualificado do registro

Observação

Verifique se seu DNS é capaz de resolver o FQDN privado do registro que está neste formato: <registry-guid>.registry.<region>.privatelink.api.azureml.ms já que não há um FQDN específico de recurso público que é resolvido recursivamente pelo DNS do Azure.

Os exemplos a seguir mostram como usar a URL de descoberta para obter o FQDN (nome de domínio totalmente qualificado) do seu registro. Ao chamar a URL de descoberta, você deve fornecer um token de acesso do Azure no cabeçalho de solicitação. Os exemplos a seguir mostram como obter um token de acesso e como chamar a URL de descoberta:

Dica

O formato da URL de descoberta é https://<region>.api.azureml.ms/registrymanagement/v1.0/registries/<registry_name>/discovery, em que <region> é a região em que o registro está localizado e <registry_name> é o nome do registro. Para chamar a URL, faça uma solicitação GET:

   GET https://<region>.api.azureml.ms/registrymanagement/v1.0/registries/<registry_name>/discovery 
$region = "<region>"
$registryName = "<registry_name>"
$accessToken = (az account get-access-token | ConvertFrom-Json).accessToken 
(Invoke-RestMethod -Method Get `
                   -Uri "https://$region.api.azureml.ms/registrymanagement/v1.0/registries/$registryName/discovery" `
                   -Headers @{ Authorization="Bearer $accessToken" }).registryFqdns
  • REST API

Observação

Para obter mais informações sobre como usar APIs REST do Azure, confira a referência API REST do Azure.

  1. Obtenha o token de acesso do Azure. Você pode usar o seguinte comando da CLI do Azure para obter um token:

    az account get-access-token --query accessToken
    
  2. Use um cliente REST, como Curl, para fazer uma solicitação GET para a URL de descoberta. Use o token de acesso recuperado na etapa anterior para autorização. No exemplo a seguir, substitua <region> pela região em que seu registro está localizado e <registry_name> pelo nome do registro. Substitua <token> pelo token de acesso que você recuperou na etapa anterior:

    curl -X GET "https://<region>.api.azureml.ms/registrymanagement/v1.0/registries/<registry_name>/discovery" -H "Authorization: Bearer <token>" -H "Content-Type: application/json"
    

Próxima etapa

Aprenda como Compartilhar modelos, componentes e ambientes entre workspaces com registros.