Utilizar segredos de credenciais de autenticação em tarefas do Azure Machine Learning

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

As informações de autenticação, como o nome de utilizador e a palavra-passe, são segredos. Por exemplo, se ligar a uma base de dados externa para consultar dados de preparação, terá de transmitir o seu nome de utilizador e palavra-passe para o contexto de tarefa remota. Codificar esses valores em scripts de preparação em texto claro é inseguro, pois poderia potencialmente expor o segredo.

O Key Vault do Azure permite-lhe armazenar e obter segredos de forma segura. Neste artigo, saiba como pode obter segredos armazenados num cofre de chaves a partir de uma tarefa de preparação em execução num cluster de computação.

Importante

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

Pré-requisitos

Antes de seguir os passos neste artigo, certifique-se de que tem os seguintes pré-requisitos:

Dica

Muitos dos pré-requisitos nesta secção requerem o acesso contribuidor, proprietário ou equivalente à sua subscrição do Azure ou ao Grupo de Recursos do Azure que contém os recursos. Poderá ter de contactar o administrador do Azure e pedir-lhe que execute estas 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 não tiver um, utilize os passos no artigo Criar recursos para começar a criar um.

  • Um Key Vault do Azure. Se utilizou o artigo Criar recursos para começar a criar a área de trabalho, foi criado um cofre de chaves para si. Também pode criar uma instância separada do cofre de chaves com as informações no artigo Início Rápido: Criar um cofre de chaves .

    Dica

    Não tem de utilizar o mesmo cofre de chaves que a área de trabalho.

  • Um cluster de computação do Azure Machine Learning configurado para utilizar uma identidade gerida. O cluster pode ser configurado para uma identidade gerida atribuída pelo sistema ou atribuída pelo utilizador.

  • Conceda à identidade gerida do cluster de computação acesso aos segredos armazenados no cofre de chaves. O método utilizado para conceder acesso depende da forma como o cofre de chaves está configurado:

  • Um valor secreto armazenado no cofre de chaves. Em seguida, este valor pode ser obtido com uma chave. Para obter mais informações, veja Início Rápido: Definir e obter um segredo do Azure Key Vault.

    Dica

    A ligação de início rápido é para os passos para utilizar o SDK python do Azure Key Vault. No índice na área de navegação esquerda encontram-se ligações para outras formas de definir uma chave.

Obter segredos

  1. Adicione os azure-keyvault-secrets pacotes e azure-identity ao ambiente do Azure Machine Learning utilizado ao preparar o modelo. Por exemplo, ao adicioná-los ao ficheiro conda utilizado para criar o ambiente.

    O ambiente é utilizado para criar a imagem do Docker na qual a tarefa de preparação é executada no cluster de computação.

  2. A partir do código de preparação, utilize o SDK de Identidade do Azure e Key Vault biblioteca de cliente para obter as credenciais de identidade gerida 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, utilize a biblioteca de cliente Key Vault para obter um segredo ao fornecer a chave associada:

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

Passos seguintes

Para obter um exemplo de submissão de uma tarefa de preparação com o SDK Python do Azure Machine Learning v2, veja Preparar modelos com o SDK Python v2.