Delen via


Verificatiereferentiegeheimen gebruiken in Azure Machine Learning-taken

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

Verificatiegegevens, zoals uw gebruikersnaam en wachtwoord, zijn geheimen. Als u bijvoorbeeld verbinding maakt met een externe database om een query uit te voeren op trainingsgegevens, moet u uw gebruikersnaam en wachtwoord doorgeven aan de context van de externe taak. Het coderen van dergelijke waarden in trainingsscripts in duidelijke tekst is onveilig omdat het geheim mogelijk wordt blootgesteld.

Met Azure Key Vault kunt u geheimen veilig opslaan en ophalen. In dit artikel leert u hoe u geheimen kunt ophalen die zijn opgeslagen in een sleutelkluis vanuit een trainingstaak die wordt uitgevoerd op een rekencluster.

Belangrijk

De Azure Machine Learning Python SDK v2 en Azure CLI-extensie v2 voor machine learning bieden niet de mogelijkheid om geheimen in te stellen of op te halen. In plaats daarvan maakt de informatie in dit artikel gebruik van de Azure Key Vault Secrets-clientbibliotheek voor Python.

Vereisten

Voordat u de stappen in dit artikel volgt, moet u ervoor zorgen dat u over de volgende vereisten beschikt:

Tip

Veel van de vereisten in deze sectie vereisen inzender, eigenaar of equivalente toegang tot uw Azure-abonnement of de Azure-resourcegroep die de resources bevat. Mogelijk moet u contact opnemen met uw Azure-beheerder en deze acties laten uitvoeren.

  • Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint. Probeer de gratis of betaalde versie van Azure Machine Learning.

  • Een Azure Machine Learning-werkruimte. Als u er nog geen hebt, gebruikt u de stappen in het artikel Resources maken om er een te maken.

  • Een Azure Key Vault. Als u het artikel Resources maken hebt gebruikt om aan de slag te gaan om uw werkruimte te maken, is er een sleutelkluis voor u gemaakt. U kunt ook een afzonderlijk exemplaar van een sleutelkluis maken met behulp van de informatie in de quickstart: Een sleutelkluisartikel maken.

    Tip

    U hoeft niet dezelfde sleutelkluis te gebruiken als de werkruimte.

  • (Optioneel) Een Azure Machine Learning-rekencluster dat is geconfigureerd voor het gebruik van een beheerde identiteit. Het cluster kan worden geconfigureerd voor een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit.

  • Als uw taak wordt uitgevoerd op een rekencluster, verleent u de beheerde identiteit voor het rekencluster toegang tot de geheimen die zijn opgeslagen in de sleutelkluis. Als de taak wordt uitgevoerd op serverloze berekeningen, verleent u de beheerde identiteit die is opgegeven voor de taaktoegang tot de geheimen. De methode die wordt gebruikt om toegang te verlenen, is afhankelijk van hoe uw sleutelkluis is geconfigureerd:

  • Een opgeslagen geheime waarde in de sleutelkluis. Deze waarde kan vervolgens worden opgehaald met behulp van een sleutel. Zie quickstart: Een geheim instellen en ophalen uit Azure Key Vault voor meer informatie.

    Tip

    De quickstart-koppeling bestaat uit de stappen voor het gebruik van de Python SDK van Azure Key Vault. In de inhoudsopgave in het linkernavigatiegebied ziet u koppelingen naar andere manieren om een sleutel in te stellen.

Geheimen ophalen

Er zijn twee manieren om geheimen op te halen tijdens de training:

  • Met behulp van een beheerde identiteit die is gekoppeld aan de rekenresource waarop de trainingstaak wordt uitgevoerd.
  • Gebruik uw identiteit door de berekening namens u de taak uit te voeren.
  1. Voeg de azure-keyvault-secrets en azure-identity pakketten toe aan de Azure Machine Learning-omgeving die wordt gebruikt bij het trainen van het model. Door ze bijvoorbeeld toe te voegen aan het Conda-bestand dat wordt gebruikt om de omgeving te bouwen.

    De omgeving wordt gebruikt om de Docker-installatiekopieën te bouwen waarin de trainingstaak wordt uitgevoerd op het rekencluster.

  2. Gebruik vanuit uw trainingscode de Azure Identity SDK en Key Vault-clientbibliotheek om de referenties voor beheerde identiteiten op te halen en te verifiëren bij de sleutelkluis:

    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. Na verificatie gebruikt u de Key Vault-clientbibliotheek om een geheim op te halen door de bijbehorende sleutel op te geven:

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

Zie Modellen trainen met de Python SDK v2 voor Python v2 voor Een voorbeeld van het indienen van een trainingstaak met behulp van de Azure Machine Learning Python SDK v2.