Utiliser des secrets d’informations d'identification d’authentification dans des travaux Azure Machine Learning

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Les informations d’authentification, telles que votre nom d’utilisateur et votre mot de passe, sont des secrets. Par exemple, si vous vous connectez à une base de données externe pour interroger des données d’apprentissage, vous devez transmettre vos nom d’utilisateur et mot de passe au contexte du travail distant. Le codage de telles valeurs dans des scripts d’apprentissage en texte clair n’est pas sûr, car il peut potentiellement exposer le secret.

Azure Key Vault vous permet de stocker et de récupérer des secrets en toute sécurité. Dans cet article, découvrez comment récupérer des secrets stockés dans un coffre de clés à partir d’un travail d’apprentissage s’exécutant sur un cluster de calcul.

Important

Le Kit de développement logiciel (SDK) Python Azure v2 et l’extension Azure CLI v2 pour Machine Learning ne fournissent pas la possibilité de définir ou d’obtenir des secrets. Au lieu de cela, les informations contenues dans cet article utilisent la bibliothèque cliente de secrets Azure Key Vault pour Python.

Prérequis

Avant de suivre les étapes décrites dans cet article, vérifiez que vous disposez des composants requis suivants :

Conseil

La plupart des prérequis de cette section nécessitent un accès contributeur, propriétaire ou équivalent à votre abonnement Azure ou au groupe de ressources Azure qui contient les ressources. Vous devrez peut-être contacter votre administrateur Azure et effectuer ces actions.

  • Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer. Essayez la version gratuite ou payante d’Azure Machine Learning.

  • Un espace de travail Azure Machine Learning. Si vous n’en avez pas, utilisez les étapes décrites dans l’article Créer des ressources pour démarrer pour en créer.

  • Une instance Azure Key Vault. Si vous avez utilisé l’article Créer des ressources pour démarrer pour créer votre espace de travail, un coffre de clés a été créé pour vous. Vous pouvez également créer une instance de coffre de clés distincte à l’aide des informations contenues dans l’article Démarrage rapide : créer un coffre de clés.

    Conseil

    Vous n’avez pas besoin d’utiliser le même coffre de clés que l’espace de travail.

  • Un cluster de calcul Azure Machine Learning configuré pour utiliser une identité managée. Le cluster peut être configuré pour une identité managée affectée par le système ou affectée par l’utilisateur.

  • Accordez l’identité managée pour l’accès du cluster de calcul aux secrets stockés dans le coffre de clés. La méthode utilisée pour accorder l’accès dépend de la configuration de votre coffre de clés :

  • Valeur secrète stockée dans le coffre de clés. Cette valeur peut ensuite être récupérée à l’aide d’une clé. Pour plus d’informations, consultez Démarrage rapide : définir et récupérer un secret depuis Azure Key Vault.

    Conseil

    Le lien de démarrage rapide consiste à suivre les étapes d’utilisation du Kit de développement logiciel (SDK) Python Azure Key Vault. Dans la table des matières de la zone de navigation de gauche se trouvent des liens vers d’autres façons de définir une clé.

Obtention de secrets

  1. Ajoutez les packages azure-keyvault-secrets et azure-identity à l’environnement Azure Machine Learning utilisé lors de l’apprentissage du modèle. Par exemple, en les ajoutant au fichier conda utilisé pour générer l’environnement.

    L’environnement est utilisé pour générer l’image Docker sur laquelle le travail d’apprentissage s’exécute sur le cluster de calcul.

  2. À partir de votre code d’apprentissage, utilisez le Kit de développement logiciel (SDK) Azure Identity et la bibliothèque de client Key Vault pour obtenir les informations d’identification d’identité managée et vous authentifier auprès du coffre de clés :

    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. Après l’authentification, utilisez la bibliothèque de client Key Vault pour récupérer un secret en fournissant la clé associée :

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

Étapes suivantes

Pour obtenir un exemple d’envoi d’un travail d’apprentissage à l’aide du Kit de développement logiciel (SDK) Python Azure Machine Learning v2, consultez Effectuer l'apprentissage de modèles avec le Kit de développement logiciel (SDK) Python v2.