Sdílet prostřednictvím


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

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.

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

  2. 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 clientIdsi pole a poleclientSecrettenantId, 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"
    }
    
  3. 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"
    }
    
  4. 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

  1. Povolte spravovanou identitu přiřazenou systémem pro prostředky Azure na virtuálním počítači.

  2. Na webu Azure Portal vyberte svůj pracovní prostor a pak vyberte Řízení přístupu (IAM).

  3. Výběrem možnosti Přidat, Přidat přiřazení role otevřete stránku Přidat přiřazení role.

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

    Add role assignment page in Azure portal.

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

Další kroky