Använda hemligheter för autentiseringsuppgifter i Azure Machine Learning-jobb

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

Autentiseringsinformation som ditt användarnamn och lösenord är hemligheter. Om du till exempel ansluter till en extern databas för att köra frågor mot träningsdata måste du skicka ditt användarnamn och lösenord till fjärrjobbskontexten. Kodning av sådana värden i träningsskript i klartext är osäkert eftersom det potentiellt skulle exponera hemligheten.

Med Azure Key Vault kan du lagra och hämta hemligheter på ett säkert sätt. I den här artikeln får du lära dig hur du kan hämta hemligheter som lagras i ett nyckelvalv från ett träningsjobb som körs i ett beräkningskluster.

Viktigt

Azure Machine Learning Python SDK v2 och Azure CLI-tillägget v2 för maskininlärning ger inte möjlighet att ange eller hämta hemligheter. Informationen i den här artikeln använder i stället Klientbiblioteket för Azure Key Vault Secrets för Python.

Förutsättningar

Innan du följer stegen i den här artikeln kontrollerar du att du har följande krav:

Tips

Många av kraven i det här avsnittet kräver deltagare, ägare eller motsvarande åtkomst till din Azure-prenumeration eller den Azure-resursgrupp som innehåller resurserna. Du kan behöva kontakta Azure-administratören och be dem utföra dessa åtgärder.

  • En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Machine Learning.

  • En Azure Machine Learning-arbetsyta. Om du inte har någon använder du stegen i artikeln Skapa resurser för att komma igång med att skapa en.

  • En Azure-Key Vault. Om du använde artikeln Skapa resurser för att komma igång med att skapa din arbetsyta skapades ett nyckelvalv åt dig. Du kan också skapa en separat key vault-instans med hjälp av informationen i artikeln Snabbstart: Skapa ett nyckelvalv .

    Tips

    Du behöver inte använda samma nyckelvalv som arbetsytan.

  • Ett Azure Machine Learning-beräkningskluster som konfigurerats för att använda en hanterad identitet. Klustret kan konfigureras för antingen en systemtilldelad eller användartilldelad hanterad identitet.

  • Ge den hanterade identiteten för beräkningsklustret åtkomst till hemligheterna som lagras i nyckelvalvet. Vilken metod som används för att bevilja åtkomst beror på hur ditt nyckelvalv har konfigurerats:

  • Ett lagrat hemligt värde i nyckelvalvet. Det här värdet kan sedan hämtas med hjälp av en nyckel. Mer information finns i Snabbstart: Ange och hämta en hemlighet från Azure Key Vault.

    Tips

    Snabbstartslänken är till stegen för att använda Azure Key Vault Python SDK. I innehållsförteckningen i det vänstra navigeringsområdet finns länkar till andra sätt att ange en nyckel.

Hämta hemligheter

  1. Lägg till paketen azure-keyvault-secrets och azure-identity i Azure Machine Learning-miljön som används vid träning av modellen. Till exempel genom att lägga till dem i conda-filen som används för att skapa miljön.

    Miljön används för att skapa Den Docker-avbildning som träningsjobbet körs i i beräkningsklustret.

  2. Från din träningskod använder du Azure Identity SDK och Key Vault-klientbiblioteket för att hämta autentiseringsuppgifterna för den hanterade identiteten och autentisera till nyckelvalvet:

    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. När du har autentiserat använder du Key Vault-klientbiblioteket för att hämta en hemlighet genom att ange den associerade nyckeln:

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

Nästa steg

Ett exempel på hur du skickar ett träningsjobb med Azure Machine Learning Python SDK v2 finns i Träna modeller med Python SDK v2.