Partilhar via


Práticas recomendadas do Azure Machine Learning para segurança empresarial

Este artigo explica as práticas recomendadas de segurança para planejar ou gerenciar uma implantação segura do Azure Machine Learning. As práticas recomendadas vêm da Microsoft e da experiência do cliente com o Azure Machine Learning. Cada diretriz explica a prática e sua lógica. O artigo também fornece links para instruções e documentação de referência.

A arquitetura de segurança de rede de aprendizado de máquina recomendada é uma rede virtual gerenciada. Uma rede virtual gerenciada do Azure Machine Learning protege o espaço de trabalho, os recursos associados do Azure e todos os recursos de computação gerenciados. Ele simplifica a configuração e o gerenciamento da segurança da rede, pré-configurando as saídas necessárias e criando automaticamente recursos gerenciados dentro da rede. Você pode usar pontos de extremidade privados para permitir que os serviços do Azure acessem a rede e, opcionalmente, pode definir regras de saída para permitir que a rede acesse a Internet.

A rede virtual gerenciada tem dois modos para os quais pode ser configurada:

  • Permitir saída de internet - Este modo permite a comunicação de saída com recursos localizados na internet, como os repositórios de pacotes públicos PyPi ou Anaconda.

    A diagram of the recommended architecture with the internet outbound mode.

  • Permitir apenas saída aprovada - Este modo permite apenas a comunicação de saída mínima necessária para que o espaço de trabalho funcione. Este modo é recomendado para espaços de trabalho que devem ser isolados da Internet. Ou onde o acesso de saída só é permitido a recursos específicos por meio de pontos de extremidade de serviço, tags de serviço ou nomes de domínio totalmente qualificados.

    A diagram of the recommended architecture with the only allowed outbound mode.

Para obter mais informações, consulte Isolamento de rede virtual gerenciado.

Se não puder utilizar uma rede virtual gerida devido aos seus requisitos empresariais, pode utilizar uma rede virtual do Azure com as seguintes sub-redes:

  • O treinamento contém recursos de computação usados para treinamento, como instâncias de computação de aprendizado de máquina ou clusters de computação.
  • A pontuação contém recursos de computação usados para pontuação, como o Serviço Kubernetes do Azure (AKS).
  • O firewall contém o firewall que permite o tráfego de e para a Internet pública, como o Firewall do Azure.

A diagram of the recommended architecture when using Azure virtual network.

A rede virtual também contém um ponto de extremidade privado para seu espaço de trabalho de aprendizado de máquina e os seguintes serviços dependentes:

  • Conta de armazenamento do Azure
  • Azure Key Vault
  • Registo de Contentores do Azure

A comunicação de saída da rede virtual deve ser capaz de alcançar os seguintes serviços da Microsoft:

  • Aprendizagem automática
  • Microsoft Entra ID
  • Azure Container Registry e registos específicos que a Microsoft mantém
  • Azure Front Door
  • Azure Resource Manager
  • Armazenamento do Azure

Os clientes remotos se conectam à rede virtual usando a Rota Expressa do Azure ou uma conexão de rede virtual privada (VPN).

Design de rede virtual e ponto final privado

Ao projetar uma Rede Virtual do Azure, sub-redes e pontos de extremidade privados, considere os seguintes requisitos:

  • Em geral, crie sub-redes separadas para treinamento e pontuação e use a sub-rede de treinamento para todos os pontos de extremidade privados.

  • Para endereçamento IP, as instâncias de computação precisam de um IP privado cada. Os clusters de computação precisam de um IP privado por nó. Os clusters AKS precisam de muitos endereços IP privados, conforme descrito em Planejar endereçamento IP para seu cluster AKS. Uma sub-rede separada para pelo menos AKS ajuda a evitar o esgotamento do endereço IP.

  • Os recursos de computação nas sub-redes de treinamento e pontuação devem acessar a conta de armazenamento, o cofre de chaves e o registro do contêiner. Crie pontos de extremidade privados para a conta de armazenamento, o cofre de chaves e o registro de contêiner.

  • O armazenamento padrão do espaço de trabalho de aprendizado de máquina precisa de dois pontos de extremidade privados, um para o Armazenamento de Blobs do Azure e outro para o Armazenamento de Arquivos do Azure.

  • Se você usar o estúdio do Azure Machine Learning, os pontos de extremidade privados de espaço de trabalho e armazenamento deverão estar na mesma rede virtual.

  • Se você tiver vários espaços de trabalho, use uma rede virtual para cada espaço de trabalho para criar um limite de rede explícito entre espaços de trabalho.

Usar endereços IP privados

Os endereços IP privados minimizam a exposição dos recursos do Azure à Internet. O aprendizado de máquina usa muitos recursos do Azure, e o ponto de extremidade privado do espaço de trabalho de aprendizado de máquina não é suficiente para IP privado de ponta a ponta. A tabela a seguir mostra os principais recursos que o aprendizado de máquina usa e como habilitar o IP privado para os recursos. Instâncias de computação e clusters de computação são os únicos recursos que não têm o recurso IP privado.

Recursos Solução IP privada Documentação
Área de trabalho Ponto final privado Configurar um ponto final privado para uma área de trabalho do Azure Machine Learning
Registo Ponto final privado Isolamento de rede com registos do Azure Machine Learning
Recursos associados
Armazenamento Ponto final privado Proteja as contas do Armazenamento do Azure com pontos de extremidade de serviço
Key Vault Ponto final privado Proteger o Cofre da Chave do Azure
Container Registry Ponto final privado Habilitar o Registro de Contêiner do Azure
Recursos de formação
Instância de computação IP privado (sem IP público) Ambientes de treinamento seguros
Cluster de cálculo IP privado (sem IP público) Ambientes de treinamento seguros
Recursos de hospedagem
Ponto de extremidade online gerenciado Ponto final privado Isolamento de rede com terminais online geridos
Ponto de extremidade online (Kubernetes) Ponto final privado Proteger os pontos de extremidade online do Serviço Kubernetes do Azure
Pontos finais de lote IP privado (herdado do cluster de computação) Isolamento de rede em pontos de extremidade em lote

Controle o tráfego de entrada e saída da rede virtual

Use um firewall ou um NSG (grupo de segurança de rede) do Azure para controlar o tráfego de entrada e saída da rede virtual. Para obter mais informações sobre requisitos de entrada e saída, consulte Configurar tráfego de rede de entrada e saída. Para obter mais informações sobre fluxos de tráfego entre componentes, consulte Fluxo de tráfego de rede em um espaço de trabalho seguro.

Garantir o acesso ao seu espaço de trabalho

Para garantir que seu ponto de extremidade privado possa acessar seu espaço de trabalho de aprendizado de máquina, execute as seguintes etapas:

  1. Verifique se você tem acesso à sua rede virtual usando uma conexão VPN, Rota Expressa ou máquina virtual (VM) de caixa de salto com acesso ao Azure Bastion. O usuário público não pode acessar o espaço de trabalho de aprendizado de máquina com o ponto de extremidade privado, porque ele pode ser acessado somente de sua rede virtual. Para obter mais informações, consulte Proteger seu espaço de trabalho com redes virtuais.

  2. Certifique-se de que consegue resolver os FQDNs (nomes de domínio totalmente qualificados) da área de trabalho com o seu endereço IP privado. Se você usar seu próprio servidor DNS (Sistema de Nomes de Domínio) ou uma infraestrutura DNS centralizada, precisará configurar um encaminhador DNS. Para obter mais informações, veja Como utilizar a área de trabalho com um servidor DNS personalizado.

Gerenciamento de acesso ao espaço de trabalho

Ao definir controles de gerenciamento de acesso e identidade de aprendizado de máquina, você pode separar os controles que definem o acesso aos recursos do Azure dos controles que gerenciam o acesso aos ativos de dados. Dependendo do seu caso de uso, considere se deve usar o gerenciamento de identidade e acesso de autoatendimento, centrado em dados ou em projetos.

Padrão de autoatendimento

Em um padrão de autoatendimento, os cientistas de dados podem criar e gerenciar espaços de trabalho. Este padrão é mais adequado para situações de prova de conceito que exigem flexibilidade para experimentar diferentes configurações. A desvantagem é que os cientistas de dados precisam da experiência para provisionar recursos do Azure. Essa abordagem é menos adequada quando são necessários controles rigorosos, uso de recursos, rastreamentos de auditoria e acesso a dados.

  1. Defina políticas do Azure para definir salvaguardas para provisionamento e uso de recursos, como tamanhos de cluster permitidos e tipos de VM.

  2. Crie um grupo de recursos para manter os espaços de trabalho e conceda aos cientistas de dados uma função de Colaborador no grupo de recursos.

  3. Agora, os cientistas de dados podem criar espaços de trabalho e associar recursos no grupo de recursos de forma self-service.

  4. Para acessar o armazenamento de dados, crie identidades gerenciadas atribuídas pelo usuário e conceda às identidades funções de acesso de leitura no armazenamento.

  5. Quando os cientistas de dados criam recursos de computação, eles podem atribuir as identidades gerenciadas às instâncias de computação para obter acesso aos dados.

Para obter práticas recomendadas, consulte Autenticação para análises em escala de nuvem.

Padrão centrado em dados

Em um padrão centrado em dados, o espaço de trabalho pertence a um único cientista de dados que pode estar trabalhando em vários projetos. A vantagem dessa abordagem é que o cientista de dados pode reutilizar códigos ou pipelines de treinamento em projetos. Contanto que o espaço de trabalho seja limitado a um único usuário, o acesso aos dados pode ser rastreado até esse usuário ao auditar logs de armazenamento.

A desvantagem é que o acesso aos dados não é compartimentado ou restrito por projeto, e qualquer usuário adicionado ao espaço de trabalho pode acessar os mesmos ativos.

  1. Crie o espaço de trabalho.

  2. Crie recursos de computação com identidades gerenciadas atribuídas pelo sistema habilitadas.

  3. Quando um cientista de dados precisar de acesso aos dados de um determinado projeto, conceda à identidade gerenciada por computação acesso de leitura aos dados.

  4. Conceda à identidade gerenciada por computação acesso a outros recursos necessários, como um registro de contêiner com imagens personalizadas do Docker para treinamento.

  5. Conceda também a função de acesso de leitura de identidade gerenciada do espaço de trabalho nos dados para habilitar a visualização de dados.

  6. Conceda ao cientista de dados acesso ao espaço de trabalho.

  7. O cientista de dados agora pode criar armazenamentos de dados para acessar os dados necessários para projetos e enviar execuções de treinamento que usam os dados.

Opcionalmente, crie um grupo de segurança do Microsoft Entra e conceda-lhe acesso de leitura aos dados e, em seguida, adicione identidades gerenciadas ao grupo de segurança. Essa abordagem reduz o número de atribuições diretas de função em recursos, para evitar atingir o limite de assinatura em atribuições de função.

Padrão centrado no projeto

Um padrão centrado no projeto cria um espaço de trabalho de aprendizado de máquina para um projeto específico, e muitos cientistas de dados colaboram dentro do mesmo espaço de trabalho. O acesso aos dados é restrito ao projeto específico, tornando a abordagem adequada para trabalhar com dados confidenciais. Além disso, é simples adicionar ou remover cientistas de dados do projeto.

A desvantagem desta abordagem é que a partilha de ativos entre projetos pode ser difícil. Também é difícil rastrear o acesso a dados para usuários específicos durante as auditorias.

  1. Crie a área de trabalho

  2. Identifique as instâncias de armazenamento de dados necessárias para o projeto, crie uma identidade gerenciada atribuída pelo usuário e conceda à identidade acesso de leitura ao armazenamento.

    Opcionalmente, conceda à identidade gerenciada do espaço de trabalho acesso ao armazenamento de dados para permitir a visualização de dados. Você pode omitir esse acesso para dados confidenciais não adequados para visualização.

  3. Crie armazenamentos de dados sem credenciais para os recursos de armazenamento.

  4. Crie recursos de computação no espaço de trabalho e atribua a identidade gerenciada aos recursos de computação.

  5. Conceda à identidade gerenciada por computação acesso a outros recursos necessários, como um registro de contêiner com imagens personalizadas do Docker para treinamento.

  6. Conceda aos cientistas de dados que trabalham no projeto uma função no espaço de trabalho.

    Usando o RBAC (controle de acesso baseado em função) do Azure, você pode impedir que cientistas de dados criem novos armazenamentos de dados ou novos recursos de computação com identidades gerenciadas diferentes. Esta prática impede o acesso a dados não específicos do projeto.

    Opcionalmente, para simplificar o gerenciamento de associação de projeto, você pode criar um grupo de segurança do Microsoft Entra para membros do projeto e conceder ao grupo acesso ao espaço de trabalho.

Armazenamento Azure Data Lake com passagem de credenciais

Você pode usar a identidade de usuário do Microsoft Entra para acesso ao armazenamento interativo a partir do estúdio de aprendizado de máquina. O Armazenamento Data Lake com namespace hierárquico habilitado permite uma organização aprimorada de ativos de dados para armazenamento e colaboração. Com o namespace hierárquico do Armazenamento Data Lake, você pode compartimentar o acesso aos dados dando a diferentes usuários acesso baseado na lista de controle de acesso (ACL) a diferentes pastas e arquivos. Por exemplo, você pode conceder apenas a um subconjunto de usuários acesso a dados confidenciais.

RBAC e funções personalizadas

O RBAC do Azure ajuda você a gerenciar quem tem acesso aos recursos de aprendizado de máquina e configurar quem pode executar operações. Por exemplo, talvez você queira conceder apenas a usuários específicos a função de administrador do espaço de trabalho para gerenciar recursos de computação.

O escopo de acesso pode diferir entre ambientes. Em um ambiente de produção, talvez você queira limitar a capacidade dos usuários de atualizar os pontos de extremidade de inferência. Em vez disso, você pode conceder essa permissão a uma entidade de serviço autorizada.

O aprendizado de máquina tem várias funções padrão: proprietário, colaborador, leitor e cientista de dados. Você também pode criar suas próprias funções personalizadas, por exemplo, para criar permissões que reflitam sua estrutura organizacional. Para obter mais informações, consulte Gerenciar o acesso ao espaço de trabalho do Azure Machine Learning.

Com o tempo, a composição da sua equipa pode mudar. Se você criar um grupo do Microsoft Entra para cada função de equipe e espaço de trabalho, poderá atribuir uma função RBAC do Azure ao grupo do Microsoft Entra e gerenciar o acesso a recursos e grupos de usuários separadamente.

Entidades de usuário e entidades de serviço podem fazer parte do mesmo grupo do Microsoft Entra. Por exemplo, quando você cria uma identidade gerenciada atribuída pelo usuário que o Azure Data Factory usa para disparar um pipeline de aprendizado de máquina, você pode incluir a identidade gerenciada em um grupo do executor de pipelines de ML Microsoft Entra.

Gerenciamento de imagens do Docker Central

O Azure Machine Learning fornece imagens selecionadas do Docker que você pode usar para treinamento e implantação. No entanto, os requisitos de conformidade da sua empresa podem exigir o uso de imagens de um repositório privado gerenciado pela sua empresa. O aprendizado de máquina tem duas maneiras de usar um repositório central:

  • Use as imagens de um repositório central como imagens de base. O gerenciamento do ambiente de aprendizado de máquina instala pacotes e cria um ambiente Python onde o código de treinamento ou inferência é executado. Com essa abordagem, você pode atualizar as dependências do pacote facilmente sem modificar a imagem base.

  • Use as imagens como estão, sem usar o gerenciamento de ambiente de aprendizado de máquina. Essa abordagem oferece um maior grau de controle, mas também requer que você construa cuidadosamente o ambiente Python como parte da imagem. Você precisa atender a todas as dependências necessárias para executar o código, e quaisquer novas dependências exigem a reconstrução da imagem.

Para obter mais informações, consulte Gerenciar ambientes.

Encriptação de dados

Os dados de aprendizado de máquina em repouso têm duas fontes de dados:

  • Seu armazenamento tem todos os seus dados, incluindo treinamento e dados de modelo treinados, exceto os metadados. Você é responsável pela criptografia de armazenamento.

  • O Azure Cosmos DB contém seus metadados, incluindo informações do histórico de execução, como nome do experimento e data e hora de envio do experimento. Na maioria dos espaços de trabalho, o Azure Cosmos DB está na assinatura da Microsoft e é criptografado por uma chave gerenciada pela Microsoft.

    Se quiser criptografar seus metadados usando sua própria chave, você pode usar um espaço de trabalho de chave gerenciado pelo cliente. A desvantagem é que você precisa ter o Azure Cosmos DB em sua assinatura e pagar seu custo. Para obter mais informações, consulte Criptografia de dados com o Azure Machine Learning.

Para obter informações sobre como o Azure Machine Learning criptografa dados em trânsito, consulte Criptografia em trânsito.

Monitorização

Ao implantar recursos de aprendizado de máquina, configure os controles de registro em log e auditoria para observabilidade. As motivações para observar os dados podem variar de acordo com quem os analisa. Os cenários incluem:

  • Os profissionais de aprendizado de máquina ou as equipes de operações querem monitorar a integridade do pipeline de aprendizado de máquina. Esses observadores precisam entender problemas na execução programada ou problemas com a qualidade dos dados ou o desempenho esperado do treinamento. Você pode criar painéis do Azure que monitoram dados do Azure Machine Learning ou criar fluxos de trabalho orientados a eventos.

  • Gerentes de capacidade, profissionais de aprendizado de máquina ou equipes de operações podem querer criar um painel para observar a utilização da computação e da cota. Para gerenciar uma implantação com vários espaços de trabalho do Azure Machine Learning, considere a criação de um painel central para entender a utilização da cota. As cotas são gerenciadas em um nível de assinatura, portanto, a visão de todo o ambiente é importante para impulsionar a otimização.

  • As equipes de TI e operações podem configurar o log de diagnóstico para auditar o acesso a recursos e alterar eventos no espaço de trabalho.

  • Considere a criação de painéis que monitorem a integridade geral da infraestrutura para aprendizado de máquina e recursos dependentes, como armazenamento. Por exemplo, combinar métricas de Armazenamento do Azure com dados de execução de pipeline pode ajudá-lo a otimizar a infraestrutura para um melhor desempenho ou descobrir causas básicas de problemas.

O Azure coleta e armazena métricas da plataforma e logs de atividades automaticamente. Você pode rotear os dados para outros locais usando uma configuração de diagnóstico. Configure o log de diagnóstico em um espaço de trabalho centralizado do Log Analytics para observabilidade em várias instâncias do espaço de trabalho. Use a Política do Azure para configurar automaticamente o registro em log de novos espaços de trabalho de aprendizado de máquina neste espaço de trabalho central do Log Analytics.

Azure Policy

Você pode impor e auditar o uso de recursos de segurança em espaços de trabalho por meio da Política do Azure. As recomendações incluem:

  • Imponha a criptografia de chave gerenciada de forma personalizada.
  • Aplique o Azure Private Link e pontos de extremidade privados.
  • Imponha zonas DNS privadas.
  • Desabilite a autenticação do AD que não seja do Azure, como o Secure Shell (SSH).

Para obter mais informações, consulte Definições de política internas para o Azure Machine Learning.

Você também pode usar definições de política personalizadas para controlar a segurança do espaço de trabalho de maneira flexível.

Agrupamentos e instâncias de computação

As considerações e recomendações a seguir se aplicam a clusters e instâncias de computação de aprendizado de máquina.

Encriptação de disco

O disco do sistema operacional (SO) para uma instância de computação ou nó de cluster de computação é armazenado no Armazenamento do Azure e criptografado com chaves gerenciadas pela Microsoft. Cada nó também tem um disco temporário local. O disco temporário também é criptografado com chaves gerenciadas pela Microsoft se o espaço de trabalho tiver sido criado com o hbi_workspace = True parâmetro. Para obter mais informações, consulte Criptografia de dados com o Azure Machine Learning.

Identidade gerida

Os clusters de computação dão suporte ao uso de identidades gerenciadas para autenticação em recursos do Azure. O uso de uma identidade gerenciada para o cluster permite a autenticação de recursos sem expor credenciais em seu código. Para obter mais informações, consulte Criar um cluster de computação do Azure Machine Learning.

Script de configuração

Você pode usar um script de configuração para automatizar a personalização e a configuração de instâncias de computação na criação. Como administrador, você pode escrever um script de personalização para usar ao criar todas as instâncias de computação em um espaço de trabalho. Você pode usar a Política do Azure para impor o uso do script de instalação para criar cada instância de computação. Para obter mais informações, consulte Criar e gerenciar uma instância de computação do Azure Machine Learning.

Criar em nome de

Se você não quiser que os cientistas de dados provisionem recursos de computação, poderá criar instâncias de computação em seu nome e atribuí-las aos cientistas de dados. Para obter mais informações, consulte Criar e gerenciar uma instância de computação do Azure Machine Learning.

Espaço de trabalho privado habilitado para ponto de extremidade

Use instâncias de computação com um espaço de trabalho privado habilitado para ponto de extremidade. A instância de computação rejeita todo o acesso público de fora da rede virtual. Essa configuração também impede a filtragem de pacotes.

Suporte do Azure Policy

Ao usar uma rede virtual do Azure, você pode usar a Política do Azure para garantir que cada cluster ou instância de computação seja criada em uma rede virtual e especificar a rede virtual e a sub-rede padrão. A política não é necessária ao usar uma rede virtual gerenciada, pois os recursos de computação são criados automaticamente na rede virtual gerenciada.

Você também pode usar uma política para desabilitar a autenticação que não seja do Azure AD, como SSH.

Próximos passos

Saiba mais sobre as configurações de segurança do aprendizado de máquina:

Introdução a uma implantação baseada em modelo de aprendizado de máquina:

Leia mais artigos sobre considerações arquitetônicas para implantar o aprendizado de máquina: