Použití tajných kódů přihlašovacích údajů ověřování v úlohách Azure Machine Learning
PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)
Ověřovací informace, jako jsou vaše uživatelské jméno a heslo, jsou tajné kódy. Pokud se například připojujete k externí databázi, abyste mohli dotazovat trénovací data, budete muset předat své uživatelské jméno a heslo kontextu vzdálené úlohy. Kódování těchto hodnot do trénovacích skriptů ve formátu prostého textu je nezabezpečené, protože by mohlo tajný kód vystavit.
Azure Key Vault umožňuje bezpečně ukládat a načítat tajné kódy. V tomto článku se dozvíte, jak načíst tajné kódy uložené v trezoru klíčů z úlohy trénování spuštěné na výpočetním clusteru.
Důležité
Sada Azure Machine Learning Python SDK v2 a rozšíření Azure CLI v2 pro strojové učení neposkytuje možnost nastavit nebo získat tajné kódy. Místo toho informace v tomto článku používají klientskou knihovnu tajných kódů služby Azure Key Vault pro Python.
Požadavky
Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:
Tip
Řada požadavků v této části vyžaduje přístup přispěvatele, vlastníka nebo ekvivalentního přístupu k vašemu předplatnému Azure nebo skupině prostředků Azure, která obsahuje prostředky. Možná budete muset kontaktovat správce Azure a nechat ho provést tyto akce.
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Learning.
Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte si ho pomocí kroků v článku Vytvoření prostředků .
An Azure Key Vault. Pokud jste k vytvoření pracovního prostoru použili článek Vytvoření prostředků , vytvořili jste pro vás trezor klíčů. Můžete také vytvořit samostatnou instanci trezoru klíčů pomocí informací v rychlém startu : Vytvoření článku o trezoru klíčů.
Tip
Nemusíte používat stejný trezor klíčů jako pracovní prostor.
(Volitelné) Výpočetní cluster Azure Machine Learning nakonfigurovaný tak, aby používal spravovanou identitu. Cluster je možné nakonfigurovat pro spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem.
Pokud vaše úloha běží na výpočetním clusteru, udělte spravované identitě výpočetního clusteru přístup k tajným kódům uloženým v trezoru klíčů. Nebo pokud úloha běží na bezserverovém výpočetním prostředí, udělte spravované identitě zadané pro úlohu přístup k tajným kódům. Metoda použitá k udělení přístupu závisí na konfiguraci vašeho trezoru klíčů:
- Řízení přístupu na základě role v Azure (Azure RBAC): Pokud je nakonfigurované pro Azure RBAC, přidejte spravovanou identitu do role Uživatele tajných kódů služby Key Vault ve vašem trezoru klíčů.
- Zásady přístupu ke službě Azure Key Vault: Při konfiguraci pro použití zásad přístupu přidejte novou zásadu, která uděluje operaci získání tajných kódů a přiřadí ji spravované identitě.
Uložená hodnota tajného kódu v trezoru klíčů. Tuto hodnotu pak můžete načíst pomocí klíče. Další informace najdete v tématu Rychlý start: Nastavení a načtení tajného kódu ze služby Azure Key Vault.
Tip
Odkaz pro rychlý start je postup použití sady Python SDK služby Azure Key Vault. V obsahu v levé navigační oblasti jsou odkazy na jiné způsoby nastavení klíče.
Získání tajných kódů
Během trénování můžete získat tajné kódy dvěma způsoby:
- Použití spravované identity přidružené k výpočetnímu prostředku, na kterém běží trénovací úloha.
- Použití vaší identity tím, že výpočetní prostředí spustí úlohu vaším jménem.
Přidejte balíčky
azure-identity
azure-keyvault-secrets
do prostředí Azure Machine Learning používaného při trénování modelu. Můžete je například přidat do souboru conda, který se používá k sestavení prostředí.Prostředí se používá k sestavení image Dockeru, ve které se úloha trénování spouští ve výpočetním clusteru.
Z trénovacího kódu použijte sadu Azure Identity SDK a klientskou knihovnu služby Key Vault k získání přihlašovacích údajů spravované identity a ověření v trezoru klíčů:
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)
Po ověření použijte klientskou knihovnu služby Key Vault k načtení tajného kódu zadáním přidruženého klíče:
secret = secret_client.get_secret("secret-name") print(secret.value)
Související obsah
Příklad odeslání trénovací úlohy pomocí sady Azure Machine Learning Python SDK v2 najdete v tématu Trénování modelů pomocí sady Python SDK v2.