Prevenção de exfiltração dos dados do Azure Machine Learning

O Azure Machine Learning tem várias dependências de entrada e saída. Algumas dessas dependências podem expor um risco de exfiltração dos dados por agentes mal-intencionados na sua organização. Este documento explica como minimizar o risco de exfiltração de dados limitando os requisitos de entrada e saída.

  • Entrada: se a instância de computação ou o cluster usar um endereço IP público, você terá uma entrada na marca de serviço azuremachinelearning (porta 44224). Você pode controlar esse tráfego de entrada usando um NSG (grupo de segurança de rede) e marcas de serviço. É difícil disfarçar os IPs de serviço do Azure, portanto, há baixo risco de exfiltração dos dados. Você também pode configurar a computação para não usar um IP público, o que remove os requisitos de entrada.

  • Saída: se agentes mal-intencionados não tiverem acesso de gravação aos recursos de destino de saída, não poderão usar essa saída para exfiltração dos dados. O Microsoft Entra ID, o Azure Resource Manager, o Azure Machine Learning e o Registro de Contêiner da Microsoft pertencem a essa categoria. Por outro lado, o Armazenamento e o AzureFrontDoor.frontend podem ser usados para exfiltração dos dados.

    • Saída do armazenamento: este requisito vem da instância de computação e do cluster de cálculo. Um agente mal-intencionado pode usar essa regra de saída para exfiltrar dados provisionando e salvando dados na própria conta de armazenamento. Você pode remover o risco de exfiltração dos dados usando uma Política de Ponto de Extremidade de Serviço do Azure e a arquitetura de comunicação de nó simplificada do Lote do Azure.

    • Saída do AzureFrontDoor.frontend: o Azure Front Door é usado pela interface do usuário do Estúdio do Azure Machine Learning e pelo AutoML. Em vez de permitir a saída para a marca de serviço (AzureFrontDoor.frontend), alterne para os FQDN (nomes de domínio totalmente qualificados) a seguir. A alternância para esses FQDNs remove o tráfego de saída desnecessário incluído na marca de serviço e permite apenas o que é necessário para a interface do usuário do Estúdio do Azure Machine Learning e o AutoML.

      • ml.azure.com
      • automlresources-prod.azureedge.net

Dica

As informações neste artigo são principalmente sobre como usar uma Rede Virtual do Azure. O Azure Machine Learning também pode usar redes virtuais gerenciadas. Com uma rede virtual gerenciada, o Azure Machine Learning lida com o trabalho de isolamento da rede para seu workspace e computação gerenciada.

Para resolver as preocupações de exfiltração dos dados, as redes virtuais gerenciadas permitem restringir a saída apenas ao tráfego de saída aprovado. Para obter mais informações, confira Isolamento da rede gerenciada no workspace.

Pré-requisitos

  • Uma assinatura do Azure
  • Uma VNet (Rede Virtual) do Azure
  • Um workspace do Azure Machine Learning com um ponto de extremidade privado que se conecta com a VNet.
    • A conta de armazenamento usada pelo workspace também deve se conectar com a VNet usando um ponto de extremidade privado.
  • Você precisa recriar a instância de computação ou reduzir verticalmente o cluster de cluster de cálculo para zero nó.
    • Não é necessário se você ingressou na versão prévia.
    • Não é necessário se você tiver uma nova instância de computação e um cluster de cálculo criados após dezembro de 2022.

Por que preciso usar a política de ponto de extremidade de serviço

As políticas de ponto de extremidade de serviço permitem que você filtre o tráfego de rede virtual de saída para contas de armazenamento do Azure no ponto de extremidade de serviço e permita a exfiltração dos dados apenas para contas específicas do Armazenamento do Microsoft Azure. A instância de computação e o cluster de cálculo do Azure Machine Learning exigem acesso a contas de armazenamento gerenciadas pela Microsoft para seu provisionamento. O alias do Azure Machine Learning nas políticas do ponto de extremidade do serviço inclui contas de armazenamento gerenciadas pela Microsoft. Usamos políticas de ponto de extremidade de serviço com o alias do Azure Machine Learning para impedir a exfiltração de dados ou controlar as contas de armazenamento de destino. Saiba mais na documentação da política do Ponto de Extremidade de Serviço.

1. Criar a política de ponto de extremidade de serviço

  1. No portal do Azure, adicione uma nova Política de Ponto de Extremidade de Serviço. Na guia Básico, forneça as informações necessárias e selecione Avançar.

  2. Na guia Definições de política, execute as seguintes ações:

    1. Selecione + Adicionar um recurso e forneça as seguintes informações:

      • Serviço: Microsoft.Storage
      • Escopo: selecione o escopo como Conta única para limitar o tráfego de rede a uma conta de armazenamento.
      • Assinatura: a assinatura do Azure que contém a conta de armazenamento.
      • Grupo de recursos: o grupo de recursos que contém a conta de armazenamento.
      • Recurso: a conta de armazenamento padrão do workspace.

      Selecione Adicionar para adicionar as informações do recurso.

      A screenshot showing how to create a service endpoint policy.

    2. Selecione + Adicionar um alias e selecione /services/Azure/MachineLearning como o valor do Alias do Servidor. Selecione Adicionar para adicionar o alias.

      Observação

      A CLI do Azure e o Azure PowerShell não dão suporte à adição de um alias à política.

  3. Clique em Examinar + Criar, depois em Criar.

Importante

Se a instância de computação e o cluster de cálculo precisarem de acesso a contas de armazenamento adicionais, sua política de ponto de extremidade de serviço deverá incluir as contas de armazenamento adicionais na seção de recursos. Observe que isso não será necessário se você usar pontos de extremidade privados de armazenamento. A política do ponto de extremidade de serviço e o ponto de extremidade privado são independentes.

2. Permitir o tráfego de rede de entrada e saída

Entrada

Importante

As informações a seguir modificam as diretrizes fornecidas no artigo Como proteger o ambiente de treinamento.

Importante

As informações a seguir modificam as diretrizes fornecidas no artigo Como proteger o ambiente de treinamento.

Ao usar a instância de computação do Azure Machine Learning com um endereço IP público, permita o tráfego de entrada do gerenciamento de Lote do Azure (marca de serviço BatchNodeManagement.<region>). Uma instância de computação sem IP público (versão prévia) não requer essa comunicação de entrada.

Saída

Importante

As informações a seguir são adicionais às diretrizes fornecidas nos artigos Ambiente de treinamento seguro com redes virtuais e Configurar o tráfego de rede de entrada e saída.

Importante

As informações a seguir são adicionais às diretrizes fornecidas nos artigos Ambiente de treinamento seguro com redes virtuais e Configurar o tráfego de rede de entrada e saída.

Selecione a configuração que você está usando:

Permitir o tráfego de saída para as seguintes marcas de serviço. Substitua <region> pela região do Azure que contém o seu cluster de cálculo ou a sua instância:

Marca de serviço Protocolo Porta
BatchNodeManagement.<region> ANY 443
AzureMachineLearning TCP 443
Storage.<region> TCP 443

Observação

Para a saída de armazenamento, uma Política de Ponto de Extremidade de Serviço será aplicada em uma etapa posterior para limitar o tráfego de saída.

3. Habilite o ponto de extremidade de armazenamento para a sub-rede

Use as seguintes etapas para habilitar um ponto de extremidade de armazenamento para a sub-rede que contém seus clusters de cálculo e instâncias de computação do Azure Machine Learning:

  1. No portal do Azure, selecione a Rede Virtual do Azure do seu workspace do Azure Machine Learning.
  2. À esquerda da página, selecione Sub-redes e selecione a sub-rede que contém o cluster de cálculo e a instância de computação.
  3. No formulário exibido, expanda a lista suspensa Serviços e habilite Microsoft.Storage. Selecione Salvar para salvar essas alterações.
  4. Aplique a política de ponto de extremidade de serviço à sub-rede do workspace.

A screenshot of the Azure portal showing how to enable storage endpoint for the subnet.

4. Ambientes coletados

Ao usar ambientes coletados do Azure Machine Learning, use a última versão do ambiente. O registro de contêiner para o ambiente também deve ser mcr.microsoft.com. Para verificar o registro de contêiner, use as seguintes etapas:

  1. No Estúdio do Azure Machine Learning, selecione seu workspace e escolha Ambientes.

  2. Verifique se o Registro de contêiner do Azure começa com um valor de mcr.microsoft.com.

    Importante

    Se o registro de contêiner for viennaglobal.azurecr.io, você não poderá usar o ambiente coletado com a exfiltração dos dados. Tente atualizar para a versão mais recente do ambiente coletado.

  3. Ao usar mcr.microsoft.com, você também deve permitir a configuração de saída para os recursos a seguir. Selecione a opção de configuração que você está usando:

    Permita o tráfego de saída pela porta TCP 443 para as seguintes marcas de serviço. Substitua <region> pela região do Azure que contém o seu cluster de cálculo ou a sua instância de computação:

    • MicrosoftContainerRegistry.<region>
    • AzureFrontDoor.FirstParty

Próximas etapas

Para obter mais informações, consulte os seguintes artigos: