Nastavení ověřování pro prostředky a pracovní postupy Azure Machine Učení pomocí sady SDK v1
PLATÍ PRO:Python SDK azureml v1
Zjistěte, jak nastavit ověřování pro váš pracovní prostor azure machine Učení. Ověřování k pracovnímu prostoru Azure Machine Učení je založené na ID Microsoft Entra pro většinu věcí. Obecně platí, že existují čtyři pracovní postupy ověřování, které můžete použít při připojování k pracovnímu prostoru:
Interaktivní: K přímému ověření nebo získání tokenu, který se používá k ověřování, použijete svůj účet v Microsoft Entra ID. Interaktivní ověřování se používá při experimentování a iterativním vývoji. Interaktivní ověřování umožňuje řídit přístup k prostředkům (například webové službě) na základě jednotlivých uživatelů.
Instanční objekt: V ID Microsoft Entra vytvoříte účet instančního objektu a použijete ho k ověření nebo získání tokenu. Instanční objekt se používá, když potřebujete automatizovaný proces k ověření ve službě bez nutnosti zásahu uživatele. Například skript kontinuální integrace a nasazení, který trénuje a testuje model při každé změně trénovacího kódu.
Relace Azure CLI: K ověření použijete aktivní relaci Azure CLI. Ověřování Azure CLI se používá při experimentování a iterativním vývoji nebo v případě, že potřebujete automatizovaný proces k ověření ve službě pomocí předem ověřené relace. K Azure se můžete přihlásit pomocí Azure CLI na místní pracovní stanici, aniž byste museli ukládat přihlašovací údaje v kódu Pythonu nebo vyzvat uživatele k ověření. Podobně můžete použít stejné skripty jako součást kanálů kontinuální integrace a nasazení a zároveň ověřovat Azure CLI pomocí identity instančního objektu.
Spravovaná identita: Při použití sady Azure Machine Učení SDK na virtuálním počítači Azure můžete použít spravovanou identitu pro Azure. Tento pracovní postup umožňuje virtuálnímu počítači připojit se k pracovnímu prostoru pomocí spravované identity bez uložení přihlašovacích údajů v kódu Pythonu nebo výzvy k ověření uživatele. Výpočetní clustery a výpočetní instance Azure Machine Učení je také možné nakonfigurovat tak, aby používaly spravovanou identitu pro přístup k pracovnímu prostoru při trénování modelů.
Bez ohledu na použitý pracovní postup ověřování se řízení přístupu na základě role v Azure (Azure RBAC) používá k určení rozsahu úrovně přístupu (autorizace) povolených pro prostředky. Například proces správy nebo automatizace může mít přístup k vytvoření výpočetní instance, ale nepoužívá ji, zatímco ho datový vědec může použít, ale ne odstranit nebo vytvořit. Další informace najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Učení.
Podmíněný přístup Microsoft Entra lze použít k dalšímu řízení nebo omezení přístupu k pracovnímu prostoru pro každý pracovní postup ověřování. Správce může například povolit přístup k pracovnímu prostoru jenom ze spravovaných zařízení.
Požadavky
- Vytvořte pracovní prostor azure machine Učení.
- Nakonfigurujte vývojové prostředí pro instalaci sady Azure Machine Učení SDK nebo použijte výpočetní instanci Azure Machine Učení s již nainstalovanou sadou SDK.
Microsoft Entra ID
Všechny pracovní postupy ověřování pro váš pracovní prostor závisí na ID Microsoft Entra. Pokud chcete, aby se uživatelé ověřovali pomocí jednotlivých účtů, musí mít účty ve vašem ID Microsoft Entra. Pokud chcete použít instanční objekty, musí existovat ve vašem ID Microsoft Entra. Spravované identity jsou také funkcí Microsoft Entra ID.
Další informace o Microsoft Entra ID naleznete v tématu Co je ověřování Microsoft Entra.
Jakmile vytvoříte účty Microsoft Entra, přečtěte si téma Správa přístupu k pracovnímu prostoru Učení Azure, kde najdete informace o tom, jak jim udělit přístup k pracovnímu prostoru a dalším operacím na Učení Azure Machine.
Konfigurace instančního objektu
Pokud chcete použít instanční objekt (SP), musíte nejprve vytvořit sp. Pak mu udělte přístup k vašemu pracovnímu prostoru. Jak už bylo zmíněno dříve, k řízení přístupu se používá řízení přístupu na základě role v Azure (Azure RBAC), takže musíte také rozhodnout, jaký přístup chcete udělit sp.
Důležité
Při použití instančního objektu mu udělte minimální přístup potřebný pro úlohu , pro které se používá. Například byste neudělili přístup vlastníka instančního objektu nebo přispěvatele, pokud se používá pro čtení přístupového tokenu pro nasazení webu.
Důvodem pro udělení nejnižšího přístupu je, že instanční objekt používá k ověření heslo a heslo může být uloženo jako součást automatizačního skriptu. Pokud dojde k úniku hesla, minimální přístup potřebný pro konkrétní úlohy minimalizuje škodlivé použití sp.
Nejjednodušší způsob, jak vytvořit sp a udělit přístup k pracovnímu prostoru, je pomocí Azure CLI. Pokud chcete vytvořit instanční objekt a udělit mu přístup k vašemu pracovnímu prostoru, postupujte následovně:
Poznámka:
Abyste mohli provést všechny tyto kroky, musíte být správcem předplatného.
Ověřte se ve svém předplatném Azure:
az login
Pokud rozhraní příkazového řádku může spustit výchozí prohlížeč, udělá to a načte přihlašovací stránku. Jinak musíte otevřít prohlížeč a postupovat podle pokynů na příkazovém řádku. Pokyny zahrnují procházení https://aka.ms/devicelogin a zadávání autorizačního kódu.
Pokud máte více předplatných Azure, můžete k nastavení předplatného použít
az account set -s <subscription name or ID>
příkaz. Další informace najdete v tématu Použití několika předplatných Azure.Další metody ověřování najdete v tématu Přihlášení pomocí Azure CLI.
Vytvořte instanční objekt. V následujícím příkladu se vytvoří sp s názvem ml-auth :
az ad sp create-for-rbac --json-auth --name ml-auth --role Contributor --scopes /subscriptions/<subscription id>
--json-auth
Parametr je k dispozici ve verzích >Azure CLI = 2.51.0. Verze před tímto použitím--sdk-auth
.Výstup bude JSON podobný následujícímu. Poznamenejte
clientId
si pole a poleclientSecret
tenantId
, protože je budete potřebovat pro další kroky v tomto článku.{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "subscriptionId": "your-sub-id", "tenantId": "your-tenant-id", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com", "activeDirectoryGraphResourceId": "https://graph.windows.net", "sqlManagementEndpointUrl": "https://management.core.windows.net:5555", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net" }
Načtěte podrobnosti pro instanční objekt pomocí
clientId
hodnoty vrácené v předchozím kroku:az ad sp show --id your-client-id
Následující JSON je zjednodušený příklad výstupu z příkazu. Poznamenejte si
objectId
pole, protože budete potřebovat jeho hodnotu pro další krok.{ "accountEnabled": "True", "addIns": [], "appDisplayName": "ml-auth", ... ... ... "objectId": "your-sp-object-id", "objectType": "ServicePrincipal" }
Pokud chcete udělit přístup k pracovnímu prostoru a dalším prostředkům používaným službou Azure Machine Učení, použijte informace v následujících článcích:
Důležité
Přístup vlastníka umožňuje instančnímu objektu provádět prakticky jakoukoli operaci ve vašem pracovním prostoru. Používá se v tomto dokumentu k předvedení způsobu udělení přístupu; v produkčním prostředí Microsoft doporučuje udělit instančnímu objektu minimální přístup potřebný k provedení role, pro kterou ji máte v úmyslu. Informace o vytvoření vlastní role s přístupem potřebným pro váš scénář najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Učení.
Konfigurace spravované identity
Důležité
Spravovaná identita se podporuje jenom při použití sady Azure Machine Učení SDK z virtuálního počítače Azure nebo počítače Azure Učení výpočetního clusteru nebo výpočetní instance.
Spravovaná identita s využitím virtuálního počítače
Povolte spravovanou identitu přiřazenou systémem pro prostředky Azure na virtuálním počítači.
Na webu Azure Portal vyberte svůj pracovní prostor a pak vyberte Řízení přístupu (IAM).
Výběrem možnosti Přidat, Přidat přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Nastavení Hodnota Role Role, kterou chcete přiřadit. Přiřadit přístup k Spravovaná identita Členové Spravovaná identita, kterou jste vytvořili dříve
Spravovaná identita s využitím výpočetního clusteru
Další informace najdete v tématu Nastavení spravované identity pro výpočetní cluster.
Použití interaktivního ověřování
Důležité
Interaktivní ověřování používá váš prohlížeč a vyžaduje soubory cookie (včetně souborů cookie třetích stran). Pokud jste zakázali soubory cookie, může se zobrazit chyba typu "Nemohli jsme vás přihlásit". K této chybě může dojít také v případě, že jste povolili vícefaktorové ověřování Microsoft Entra.
Většina příkladů v dokumentaci a ukázkách používá interaktivní ověřování. Například při použití sady SDK existují dvě volání funkcí, která vás automaticky vyzve k ověření na základě uživatelského rozhraní:
Voláním
from_config()
funkce se zobrazí výzva.from azureml.core import Workspace ws = Workspace.from_config()
Funkce
from_config()
hledá soubor JSON obsahující informace o připojení k vašemu pracovnímu prostoru.Při použití konstruktoru
Workspace
k zadání informací o předplatném, skupině prostředků a pracovním prostoru se také zobrazí výzva k interaktivnímu ověřování.ws = Workspace(subscription_id="your-sub-id", resource_group="your-resource-group-id", workspace_name="your-workspace-name" )
Tip
Pokud máte přístup k více tenantům, možná budete muset naimportovat třídu a explicitně definovat, na jakého tenanta cílíte. Volání konstruktoru InteractiveLoginAuthentication
pro vás také vyzve, abyste se přihlásili podobně jako výše uvedená volání.
from azureml.core.authentication import InteractiveLoginAuthentication
interactive_auth = InteractiveLoginAuthentication(tenant_id="your-tenant-id")
Při použití Azure CLI se příkaz použije k ověření relace rozhraní příkazového řádku az login
. Další informace najdete v tématu Začínáme s Azure CLI.
Tip
Pokud používáte sadu SDK z prostředí, ve kterém jste dříve interaktivně ověřili pomocí Azure CLI, můžete použít AzureCliAuthentication
třídu k ověření v pracovním prostoru pomocí přihlašovacích údajů uložených v mezipaměti rozhraní příkazového řádku:
from azureml.core.authentication import AzureCliAuthentication
cli_auth = AzureCliAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=cli_auth
)
Použití ověřování instančního objektu
Pokud chcete ověřit pracovní prostor ze sady SDK pomocí instančního objektu ServicePrincipalAuthentication
, použijte konstruktor třídy. Jako parametry použijte hodnoty, které jste získali při vytváření zprostředkovatele služeb. Parametr tenant_id
se mapuje z tenantId
výše uvedeného, service_principal_id
mapuje na clientId
a service_principal_password
mapuje na clientSecret
.
from azureml.core.authentication import ServicePrincipalAuthentication
sp = ServicePrincipalAuthentication(tenant_id="your-tenant-id", # tenantID
service_principal_id="your-client-id", # clientId
service_principal_password="your-client-secret") # clientSecret
Proměnná sp
teď obsahuje objekt ověřování, který používáte přímo v sadě SDK. Obecně je vhodné uložit ID/tajné kódy použité výše v proměnných prostředí, jak je znázorněno v následujícím kódu. Ukládání do proměnných prostředí zabraňuje náhodnému vrácení informací do úložiště GitHub.
import os
sp = ServicePrincipalAuthentication(tenant_id=os.environ['AML_TENANT_ID'],
service_principal_id=os.environ['AML_PRINCIPAL_ID'],
service_principal_password=os.environ['AML_PRINCIPAL_PASS'])
Pro automatizované pracovní postupy, které běží v Pythonu a primárně používají sadu SDK, můžete tento objekt použít ve většině případů pro ověřování. Následující kód se ověří ve vašem pracovním prostoru pomocí objektu ověřování, který jste vytvořili.
from azureml.core import Workspace
ws = Workspace.get(name="ml-example",
auth=sp,
subscription_id="your-sub-id",
resource_group="your-rg-name")
ws.get_details()
Použití ověřování spravované identity
Pokud se chcete ověřit v pracovním prostoru z virtuálního počítače, výpočetního clusteru nebo výpočetní instance nakonfigurované pomocí spravované identity, použijte MsiAuthentication
třídu. Následující příklad ukazuje použití této třídy k ověření v pracovním prostoru:
from azureml.core.authentication import MsiAuthentication
msi_auth = MsiAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=msi_auth
)
Použití podmíněného přístupu
Jako správce můžete vynutit zásady podmíněného přístupu Microsoft Entra pro uživatele, kteří se přihlašující k pracovnímu prostoru. Můžete například vyžadovat dvoufaktorové ověřování nebo povolit přihlášení jenom ze spravovaných zařízení. Pokud chcete pro pracovní prostory Azure Machine Učení používat podmíněný přístup, přiřaďte zásady podmíněného přístupu aplikaci s názvem Azure Machine Učení. ID aplikace je 0736f41a-0425-bdb5-1563eff02385.