Usare i segreti delle credenziali di autenticazione nei processi di Azure Machine Learning

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Le informazioni di autenticazione, ad esempio il nome utente e la password, sono segreti. Se ad esempio ci si connette a un database esterno per eseguire query sui dati di training, è necessario passare il nome utente e la password al contesto del processo remoto. La codifica di tali valori in script di training in testo non crittografato non è sicura perché potrebbe esporre il segreto.

Azure Key Vault consente di archiviare e recuperare in modo sicuro i segreti. Questo articolo illustra come recuperare i segreti archiviati in un insieme di credenziali delle chiavi da un processo di training in esecuzione in un cluster di calcolo.

Importante

Azure Machine Learning Python SDK v2 e l'estensione interfaccia della riga di comando di Azure v2 per l'apprendimento automatico non consentono di impostare oppure ottenere segreti. Le informazioni contenute in questo articolo usano invece la libreria client dei segreti di Azure Key Vault per Python.

Prerequisiti

Prima di seguire la procedura descritta in questo articolo, assicurarsi che siano stati soddisfati i prerequisiti seguenti:

Suggerimento

Molti dei prerequisiti in questa sezione richiedono un accesso di tipo Collaboratore, Proprietario o equivalente alla sottoscrizione di Azure o al gruppo di risorse di Azure che contiene le risorse. Potrebbe essere necessario contattare l'amministratore di Azure e fare in modo che esegua queste azioni.

  • Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare. Provare la versione gratuita o a pagamento di Azure Machine Learning.

  • Un'area di lavoro di Azure Machine Learning. Se non è disponibile, seguire la procedura descritta nell'articolo Creare risorse per iniziare per crearne una.

  • Un insieme di credenziali delle chiavi di Azure. Se è stato usato l'articolo Creare risorse per iniziare per creare l'area di lavoro, è stato creato automaticamente un insieme di credenziali delle chiavi. È anche possibile creare un'istanza separata dell'insieme di credenziali delle chiavi usando le informazioni disponibili nell'articolo Avvio rapido: Creare un insieme di credenziali delle chiavi.

    Suggerimento

    Non è necessario usare lo stesso insieme di credenziali delle chiavi dell'area di lavoro.

  • (Facoltativo) Un cluster di elaborazione di Azure Machine Learning configurato per l'uso di un'identità gestita. Il cluster può essere configurato per un'identità gestita assegnata dal sistema o assegnata dall'utente.

  • Se il processo viene eseguito in un cluster di calcolo, concedere all'identità gestita per il cluster di calcolo l'accesso ai segreti archiviati nell'insieme di credenziali delle chiavi. In alternativa, se il processo viene eseguito in base all’elaborazione serverless, concedere all'identità gestita specificata per il processo l'accesso ai segreti. Il metodo usato per concedere l'accesso dipende dalla configurazione dell'insieme di credenziali delle chiavi:

    • Controllo degli accessi in base al ruolo di Azure: in caso di configurazione per il Controllo degli accessi in base al ruolo di Azure, aggiungere l'identità gestita al ruolo Utente dei segreti di Key Vault nell'insieme di credenziali delle chiavi.
    • Criteri di accesso di Azure Key Vault: in caso di configurazione per l'uso dei criteri di accesso, aggiungere un nuovo criterio che concede l'operazioneget per i segreti e assegnarlo all'identità gestita.
  • Valore del segreto archiviato nell'insieme di credenziali delle chiavi. Questo valore può quindi essere recuperato usando una chiave. Per altre informazioni, vedere Avvio rapido: Impostare e recuperare un segreto da Azure Key Vault.

    Suggerimento

    Il collegamento di avvio rapido è relativo alla procedura per l'uso di Azure Key Vault Python SDK. Nel sommario nell'area di spostamento a sinistra sono disponibili collegamenti ad altri modi per impostare una chiave.

Get secrets

Esistono due modi per ottenere i segreti durante il training:

  • Tramite un'identità gestita associata alla risorsa di calcolo in cui viene eseguito il processo di training.
  • Tramite l'identità personale facendo in modo che il calcolo esegua il processo per a nome dell’utente.
  1. Aggiungere i pacchetti azure-keyvault-secrets e azure-identity all'ambiente di Azure Machine Learning usato per il training del modello. Aggiungerli, ad esempio, al file conda usato per compilare l'ambiente.

    L'ambiente viene usato per compilare l'immagine Docker in cui viene eseguito il processo di training nel cluster di elaborazione.

  2. Dal codice di training usare Azure Identity SDK e la libreria client di Key Vault per ottenere le credenziali dell'identità gestita ed eseguire l'autenticazione nell'insieme di credenziali delle chiavi:

    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. Dopo l'autenticazione, usare la libreria client di Key Vault per recuperare un segreto fornendo la chiave associata:

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

Per un esempio di invio di un processo di training con Azure Machine Learning Python SDK v2, vedere Eseguire il training dei modelli con Python SDK v2.