Verificatiereferentiegeheimen gebruiken in Azure Machine Learning-taken

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

Verificatiegegevens, zoals uw gebruikersnaam en wachtwoord, zijn geheimen. Als u bijvoorbeeld verbinding maakt met een externe database om query's 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 hierdoor mogelijk wordt blootgelegd.

Met de 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 uit 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 uitvoert, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:

Tip

Voor veel van de vereisten in deze sectie is inzender, eigenaar of gelijkwaardige toegang vereist tot uw Azure-abonnement of de Azure-resourcegroep die de resources bevat. Mogelijk moet u contact opnemen met uw Azure-beheerder om deze acties uit te voeren.

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis account 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 aan de slag te gaan om er een te maken.

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

    Tip

    U hoeft niet dezelfde sleutelkluis te gebruiken als de werkruimte.

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

  • Ververleent de beheerde identiteit voor het rekencluster toegang tot de geheimen die zijn opgeslagen in de sleutelkluis. De methode die wordt gebruikt om toegang te verlenen, is afhankelijk van hoe uw sleutelkluis is geconfigureerd:

    • Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC): wanneer deze is geconfigureerd voor Azure RBAC, voegt u de beheerde identiteit toe aan de rol Key Vault Geheimen-gebruiker in uw sleutelkluis.
    • Azure Key Vault-toegangsbeleid: wanneer deze is geconfigureerd voor het gebruik van toegangsbeleid, voegt u een nieuw beleid toe waarmee de bewerking voor het ophalen van geheimen wordt verleend en wijst u dit toe aan de beheerde identiteit.
  • 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 is naar de stappen voor het gebruik van de Azure Key Vault Python SDK. In de inhoudsopgave in het linkernavigatiegebied staan koppelingen naar andere manieren om een sleutel in te stellen.

Geheimen ophalen

  1. Voeg de azure-keyvault-secrets pakketten en azure-identity toe aan de Azure Machine Learning-omgeving die wordt gebruikt bij het trainen van het model. Bijvoorbeeld door ze toe te voegen aan het conda-bestand dat wordt gebruikt om de omgeving te bouwen.

    De omgeving wordt gebruikt voor het bouwen van de Docker-installatiekopieƫn waarin de trainingstaak wordt uitgevoerd op het rekencluster.

  2. Gebruik vanuit uw trainingscode de Azure Identity SDK en Key Vault clientbibliotheek om de referenties van de beheerde identiteit 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)
    

Volgende stappen

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