Używanie wpisów tajnych poświadczeń uwierzytelniania w zadaniach usługi Azure Machine Learning

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

Informacje uwierzytelniania, takie jak nazwa użytkownika i hasło, są wpisami tajnymi. Jeśli na przykład łączysz się z zewnętrzną bazą danych w celu wykonywania zapytań dotyczących danych szkoleniowych, musisz przekazać nazwę użytkownika i hasło do kontekstu zadania zdalnego. Kodowanie takich wartości do skryptów szkoleniowych w postaci zwykłego tekstu jest niezabezpieczone, ponieważ potencjalnie uwidacznia wpis tajny.

Usługa Azure Key Vault umożliwia bezpieczne przechowywanie i pobieranie wpisów tajnych. W tym artykule dowiesz się, jak pobrać wpisy tajne przechowywane w magazynie kluczy z zadania szkoleniowego uruchomionego w klastrze obliczeniowym.

Ważne

Zestaw SDK języka Python usługi Azure Machine Learning w wersji 2 i rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 na potrzeby uczenia maszynowego nie zapewniają możliwości ustawiania ani pobierania wpisów tajnych. Zamiast tego informacje zawarte w tym artykule używają biblioteki klienta wpisy tajne usługi Azure Key Vault dla języka Python.

Wymagania wstępne

Przed wykonaniem kroków opisanych w tym artykule upewnij się, że masz następujące wymagania wstępne:

Napiwek

Wiele wymagań wstępnych w tej sekcji wymaga dostępu współautora, właściciela lub równoważnego dostępu do subskrypcji platformy Azure lub grupy zasobów platformy Azure, która zawiera zasoby. Może być konieczne skontaktowanie się z administratorem platformy Azure i wykonanie tych akcji.

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning.

  • Obszar roboczy usługi Azure Machine Learning. Jeśli go nie masz, wykonaj kroki opisane w artykule Tworzenie zasobów, aby rozpocząć tworzenie zasobu.

  • Usługa Azure Key Vault. Jeśli użyto artykułu Tworzenie zasobów w celu rozpoczęcia tworzenia obszaru roboczego, utworzono dla Ciebie magazyn kluczy. Możesz również utworzyć oddzielne wystąpienie magazynu kluczy, korzystając z informacji w artykule Szybki start: tworzenie magazynu kluczy.

    Napiwek

    Nie musisz używać tego samego magazynu kluczy co obszar roboczy.

  • (Opcjonalnie) Klaster obliczeniowy usługi Azure Machine Learning skonfigurowany do używania tożsamości zarządzanej. Klaster można skonfigurować dla tożsamości zarządzanej przypisanej przez system lub przypisanej przez użytkownika.

  • Jeśli zadanie jest uruchamiane w klastrze obliczeniowym, przyznaj tożsamości zarządzanej dla klastra obliczeniowego dostęp do wpisów tajnych przechowywanych w magazynie kluczy. Lub jeśli zadanie jest uruchamiane na bezserwerowych obliczeniach, przyznaj tożsamość zarządzaną określoną dla zadania dostępu do wpisów tajnych. Metoda używana do udzielania dostępu zależy od sposobu konfigurowania magazynu kluczy:

    • Kontrola dostępu oparta na rolach platformy Azure (RBAC) platformy Azure: po skonfigurowaniu kontroli dostępu opartej na rolach platformy Azure dodaj tożsamość zarządzaną do roli Użytkownik wpisów tajnych usługi Key Vault w magazynie kluczy.
    • Zasady dostępu usługi Azure Key Vault: po skonfigurowaniu używania zasad dostępu dodaj nowe zasady, które udzielają operacji pobierania dla wpisów tajnych i przypisują je do tożsamości zarządzanej.
  • Przechowywana wartość wpisu tajnego w magazynie kluczy. Tę wartość można następnie pobrać przy użyciu klucza. Aby uzyskać więcej informacji, zobacz Szybki start: ustawianie i pobieranie wpisu tajnego z usługi Azure Key Vault.

    Napiwek

    Link do przewodnika Szybki start zawiera instrukcje dotyczące korzystania z zestawu SDK języka Python usługi Azure Key Vault. W spisie treści w obszarze nawigacji po lewej stronie znajdują się linki do innych sposobów ustawiania klucza.

Uzyskiwanie wpisów tajnych

Istnieją dwa sposoby uzyskiwania wpisów tajnych podczas trenowania:

  • Przy użyciu tożsamości zarządzanej skojarzonej z zasobem obliczeniowym zadanie trenowania jest uruchamiane.
  • Używanie tożsamości przez uruchomienie zadania obliczeniowego w Twoim imieniu.
  1. azure-keyvault-secrets Dodaj pakiety i azure-identity do środowiska usługi Azure Machine Learning używanego podczas trenowania modelu. Na przykład przez dodanie ich do pliku conda użytego do skompilowania środowiska.

    Środowisko służy do kompilowania obrazu platformy Docker, w ramach którego zadanie trenowania jest uruchamiane w klastrze obliczeniowym.

  2. Z poziomu kodu szkoleniowego użyj zestawu Azure Identity SDK i biblioteki klienta usługi Key Vault, aby uzyskać poświadczenia tożsamości zarządzanej i uwierzytelnić się w magazynie kluczy:

    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. Po uwierzytelnieniu użyj biblioteki klienta usługi Key Vault, aby pobrać wpis tajny, podając skojarzony klucz:

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

Aby zapoznać się z przykładem przesyłania zadania szkoleniowego przy użyciu zestawu SDK języka Python usługi Azure Machine Learning w wersji 2, zobacz Trenowanie modeli przy użyciu zestawu PYTHON SDK w wersji 2.