Partilhar via


Usar segredos de credenciais de autenticação em trabalhos do Azure Machine Learning

APLICA-SE A: Python SDK azure-ai-ml v2 (atual)

As informações de autenticação, como o seu nome de utilizador e palavra-passe, são secretas. Por exemplo, se você se conectar a um banco de dados externo para consultar dados de treinamento, precisará passar seu nome de usuário e senha para o contexto de trabalho remoto. Codificar esses valores em scripts de treinamento em texto não criptografado é inseguro, pois exporia potencialmente o segredo.

O Cofre da Chave do Azure permite armazenar e recuperar segredos com segurança. Neste artigo, saiba como recuperar segredos armazenados em um cofre de chaves de um trabalho de treinamento em execução em um cluster de computação.

Importante

O SDK do Python do Azure Machine Learning v2 e a extensão da CLI do Azure v2 para aprendizado de máquina não fornecem a capacidade de definir ou obter segredos. Em vez disso, as informações neste artigo usam a biblioteca de cliente Azure Key Vault Secrets para Python.

Pré-requisitos

Antes de seguir as etapas neste artigo, verifique se você tem os seguintes pré-requisitos:

Gorjeta

Muitos dos pré-requisitos nesta seção exigem acesso de Colaborador, Proprietário ou equivalente à sua assinatura do Azure ou ao Grupo de Recursos do Azure que contém os recursos. Talvez seja necessário entrar em contato com o administrador do Azure e fazer com que ele execute essas ações.

  • Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Experimente a versão gratuita ou paga do Azure Machine Learning.

  • Uma área de trabalho do Azure Machine Learning. Se você não tiver um, use as etapas no artigo Criar recursos para começar a criar um.

  • Um Cofre de Chaves do Azure. Se você usou o artigo Criar recursos para começar para criar seu espaço de trabalho, um cofre de chaves foi criado para você. Você também pode criar uma instância separada do cofre de chaves usando as informações no artigo Guia de início rápido: criar um cofre de chaves.

    Gorjeta

    Não é necessário usar o mesmo cofre de chaves que o espaço de trabalho.

  • (Opcional) Um cluster de computação do Azure Machine Learning configurado para usar uma identidade gerenciada. O cluster pode ser configurado para uma identidade gerenciada atribuída pelo sistema ou pelo usuário.

  • Se o trabalho for executado em um cluster de computação, conceda à identidade gerenciada do cluster de computação acesso aos segredos armazenados no cofre de chaves. Ou, se o trabalho for executado em computação sem servidor, conceda à identidade gerenciada especificada para o trabalho acesso aos segredos. O método usado para conceder acesso depende de como o cofre de chaves está configurado:

    • Controle de acesso baseado em função do Azure (Azure RBAC): Quando configurado para o Azure RBAC, adicione a identidade gerenciada à função Usuário de Segredos do Cofre de Chaves em seu cofre de chaves.
    • Política de acesso do Cofre da Chave do Azure: quando configurado para usar políticas de acesso, adicione uma nova política que conceda a operação get para segredos e atribua-a à identidade gerenciada.
  • Um valor secreto armazenado no cofre de chaves. Esse valor pode ser recuperado usando uma chave. Para obter mais informações, consulte Guia de início rápido: definir e recuperar um segredo do Cofre da Chave do Azure.

    Gorjeta

    O link de início rápido é para as etapas para usar o SDK Python do Azure Key Vault. No sumário na área de navegação esquerda estão links para outras maneiras de definir uma chave.

Obtenha segredos

Existem duas formas de obter segredos durante a formação:

  • Usando uma identidade gerenciada associada ao recurso de computação em que o trabalho de treinamento é executado.
  • Usando sua identidade fazendo com que o computador execute o trabalho em seu nome.
  1. Adicione os azure-keyvault-secrets pacotes e azure-identity ao ambiente do Azure Machine Learning usado ao treinar o modelo. Por exemplo, adicionando-os ao arquivo conda usado para construir o ambiente.

    O ambiente é usado para criar a imagem do Docker na qual o trabalho de treinamento é executado no cluster de computação.

  2. No seu código de treinamento, use o SDK do Azure Identity e a biblioteca de cliente do Cofre de Chaves para obter as credenciais de identidade gerenciadas e autenticar no cofre de chaves:

    from azure.identity import DefaultAzureCredential
    from azure.keyvault.secrets import SecretClient
    
    credential = DefaultAzureCredential()
    
    secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
    
  3. Após a autenticação, use a biblioteca de cliente do Cofre da Chave para recuperar um segredo fornecendo a chave associada:

    secret = secret_client.get_secret("secret-name")
    print(secret.value)
    

Para obter um exemplo de envio de um trabalho de treinamento usando o SDK do Python do Azure Machine Learning v2, consulte Treinar modelos com o SDK do Python v2.