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:
- Controlo de acesso baseado em funções do Azure (RBAC do Azure): quando configurado para o RBAC do Azure, adicione a identidade gerida à função utilizador segredos do Key Vault no cofre de chaves.
- Política de acesso Key Vault do Azure: quando configurada para utilizar políticas de acesso, adicione uma nova política que conceda a operação de obtenção de segredos e atribua-a à identidade gerida.
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
Adicione os
azure-keyvault-secrets
pacotes eazure-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.
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)
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.