Använda hemligheter för autentiseringsuppgifter i Azure Mašinsko učenje-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ärrjobbkontexten. Att koda sådana värden till 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 Mašinsko učenje Python SDK v2 och Azure CLI-tillägget v2 för maskininlärning ger inte möjlighet att ange eller hämta hemligheter. I stället använder informationen i den här artikeln Azure Key Vault Secrets-klientbiblioteket för Python.

Förutsättningar

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

Dricks

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 låta 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 Mašinsko učenje.

  • 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.

  • Ett Azure Key Vault. Om du använde artikeln Skapa resurser för att komma igång för 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 .

    Dricks

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

  • (Valfritt) Ett Azure Mašinsko učenje 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.

  • Om jobbet körs i ett beräkningskluster beviljar du den hanterade identiteten för beräkningsklustret åtkomst till hemligheterna som lagras i nyckelvalvet. Om jobbet körs på serverlös beräkning kan du också bevilja den hanterade identitet som angetts för jobbet åtkomst till hemligheterna. Vilken metod som används för att bevilja åtkomst beror på hur ditt nyckelvalv har konfigurerats:

    • Rollbaserad åtkomstkontroll i Azure (Azure RBAC): När du har konfigurerat för Azure RBAC lägger du till den hanterade identiteten i rollen Key Vault Secrets User i nyckelvalvet.
    • Åtkomstprincip för Azure Key Vault: När du har konfigurerats för att använda åtkomstprinciper lägger du till en ny princip som beviljar get-åtgärden för hemligheter och tilldelar den till den hanterade identiteten.
  • 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.

    Dricks

    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

Det finns två sätt att hämta hemligheter under träningen:

  • Använda en hanterad identitet som är associerad med beräkningsresursen som träningsjobbet körs på.
  • Använda din identitet genom att låta beräkningen köra jobbet åt dig.
  1. Lägg till paketen azure-keyvault-secrets och azure-identity i Azure Mašinsko učenje-miljön som används när modellen tränas. 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 Docker-avbildningen som träningsjobbet körs i i beräkningsklustret.

  2. Använd Azure Identity SDK och Key Vault-klientbiblioteket från träningskoden för att hämta autentiseringsuppgifterna för hanterade identiteter 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 autentiserats 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)
    

Ett exempel på hur du skickar ett träningsjobb med hjälp av Azure Mašinsko učenje Python SDK v2 finns i Träna modeller med Python SDK v2.