Autorizace na dávkových koncových bodech

Koncové body služby Batch podporují ověřování Microsoft Entra nebo aad_token. Chcete-li vyvolat dávkový koncový bod, musíte předložit platný ověřovací token pro Microsoft Entra k identifikátoru URI dávkového koncového bodu. Autorizace se vynucuje na úrovni koncového bodu. Následující článek vysvětluje, jak správně pracovat s dávkovými koncovými body a požadavky na zabezpečení.

Jak funguje autorizace

Pokud chcete vyvolat dávkový koncový bod, musíte předložit platný token Microsoft Entra představující objekt zabezpečení. Tento principál může být uživatelský principál nebo systémový principál. V každém případě při vyvolání koncového bodu vytvoříte úlohu dávkového nasazení pod identitou přidruženou k tokenu. Identita potřebuje k úspěšnému vytvoření úlohy následující oprávnění:

  • Čtení dávkových koncových bodů a nasazení
  • Vytváření úloh v koncových bodech a nasazeních dávkového odvození
  • Vytváření experimentů a jejich provedení
  • Čtení a zápis dat do úložišť dat
  • Výpis tajných kódů úložiště dat

Podrobný seznam oprávnění RBAC najdete v tématu Konfigurace RBAC pro vyvolání dávkového koncového bodu.

Důležité

V závislosti na tom, jak nakonfigurujete úložiště dat, možná nebudete moct použít identitu k vyvolání dávkového koncového bodu ke čtení podkladových dat. Další informace najdete v tématu Konfigurace výpočetních clusterů pro přístup k datům.

Spouštění úloh pomocí různých typů přihlašovacích údajů

Následující příklady ukazují různé způsoby zahájení úloh dávkového nasazení pomocí různých typů přihlašovacích údajů.

Důležité

Při práci na pracovních prostorech s podporou privátního propojení nemůžete v nástroji Azure Machine Learning Studio vyvolat dávkové koncové body. Místo toho použijte rozhraní příkazového řádku služby Azure Machine Learning v2 k vytvoření úlohy.

Požadavky

Spouštění úloh pomocí přihlašovacích údajů

Pokud chcete spustit endpoint pomocí identity aktuálně přihlášeného uživatele, postupujte takto:

  1. Přihlaste se do Azure CLI pomocí interaktivního přihlášení nebo přihlašování kódem zařízení.

    az login
    
  2. Po ověření spusťte úlohu dávkového nasazení pomocí následujícího příkazu:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
    

Spouštění úloh pomocí principála služby

Pokud chcete spustit dávkový koncový bod pomocí instančního objektu, který jste už vytvořili v Microsoft Entra ID, vytvořte tajný kód pro ověření. Postupujte následovně:

  1. Vytvořte tajný klíč pro ověřování, jak je vysvětleno v možnosti 3: Vytvoření nového tajného klíče klienta.

  2. K ověření pomocí identitního objektu služby použijte následující příkaz. Další podrobnosti najdete v tématu Přihlášení pomocí Azure CLI.

    az login --service-principal \
             --tenant <tenant> \
             -u <app-id> \
             -p <password-or-cert> 
    
  3. Po ověření spusťte úlohu dávkového nasazení pomocí následujícího příkazu:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/
    

Spouštění úloh pomocí spravované identity

Spravované identity můžete použít k vyvolání dávkového koncového bodu a nasazení. Všimněte si, že tato spravovaná identita nepatří k dávkovému koncovému bodu, ale je to identita použitá k provedení koncového bodu, a tím i k vytvoření dávkové úlohy. V tomto scénáři je možné použít identity přiřazené uživatelem i systémem.

Na prostředcích konfigurovaných pro spravované identity pro prostředky Azure se můžete přihlásit pomocí spravované identity. Přihlašování pomocí identity prostředku se provádí prostřednictvím příznaku --identity. Další podrobnosti najdete v tématu Přihlášení pomocí Azure CLI.

az login --identity

Po ověření spusťte úlohu dávkového nasazení pomocí následujícího příkazu:

az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                            --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci

Konfigurace RBAC pro vyvolání koncových bodů služby Batch

Koncové body služby Batch zpřístupňují odolné rozhraní API, které mohou spotřebitelé použít k vytváření úloh. Vyvolávač žádá o správné oprávnění, aby bylo možné tyto úlohy vygenerovat. Můžete použít některou z předdefinovaných rolí zabezpečení, nebo můžete vytvořit vlastní roli pro účely.

K úspěšnému vyvolání dávkového koncového bodu potřebujete následující explicitní akce, které jsou uděleny identitě použité k vyvolání tohoto bodu. Pokyny k jejich přiřazení najdete v části Postup přiřazení role Azure.

"actions": [
    "Microsoft.MachineLearningServices/workspaces/read",
    "Microsoft.MachineLearningServices/workspaces/data/versions/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/read",
    "Microsoft.MachineLearningServices/workspaces/datastores/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action",
    "Microsoft.MachineLearningServices/workspaces/listStorageAccountKeys/action",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/computes/read",
    "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
    "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
    "Microsoft.MachineLearningServices/workspaces/experiments/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
    "Microsoft.MachineLearningServices/workspaces/metrics/resource/write",
    "Microsoft.MachineLearningServices/workspaces/modules/read",
    "Microsoft.MachineLearningServices/workspaces/models/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write",
    "Microsoft.MachineLearningServices/workspaces/environments/read",
    "Microsoft.MachineLearningServices/workspaces/environments/write",
    "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    "Microsoft.MachineLearningServices/workspaces/environments/readSecrets/action"
]

Konfigurace výpočetních clusterů pro přístup k datům

Koncové body služby Batch zajišťují, že pouze autorizovaní uživatelé mohou vyvolat dávková nasazení a generování úloh. V závislosti na konfiguraci vstupních dat se ale můžou ke čtení podkladových dat použít další přihlašovací údaje. Pomocí následující tabulky se seznamte s použitými přihlašovacími údaji:

Datový typ vstupu Přihlašovací údaje v úložišti Použité přihlašovací údaje Přístup udělený uživatelem
Úložiště dat Ano Přihlašovací údaje úložiště dat v pracovním prostoru Přístupový klíč nebo SAS
Datové aktivum Ano Přihlašovací údaje úložiště dat v pracovním prostoru Přístupový klíč nebo SAS
Úložiště dat Ne Identita úlohy + spravovaná identita výpočetního clusteru RBAC
Datové aktivum Ne Identita úlohy + spravovaná identita výpočetního clusteru RBAC
Azure Blob Storage Nepoužít Identita úlohy + spravovaná identita výpočetního clusteru RBAC
Azure Data Lake Storage Gen1 Nepoužít Identita úlohy + spravovaná identita výpočetního clusteru POSIX
Azure Data Lake Storage Gen2 Nepoužít Identita úlohy + spravovaná identita výpočetního clusteru POSIX a RBAC

U těchto položek v tabulce, kde se zobrazuje identita úlohy + spravovaná identita výpočetního clusteru , se spravovaná identita výpočetního clusteru používá k připojení a konfiguraci účtů úložiště. Identita úlohy se ale stále používá ke čtení podkladových dat, což vám umožní dosáhnout podrobného řízení přístupu. To znamená, že aby bylo možné úspěšně číst data z úložiště, musí mít spravovaná identita výpočetního clusteru, na kterém je nasazení spuštěno, alespoň přístup Storage Blob Data Reader k účtu úložiště.

Pokud chcete nakonfigurovat výpočetní cluster pro přístup k datům, postupujte takto:

  1. Přejděte na studio Azure Machine Learning.

  2. Přejděte do Výpočet a pak výpočetní clustery.

  3. Vyberte výpočetní cluster, který vaše nasazení používá. Tato akce otevře stránku Podrobností výpočetního clusteru.

  4. Přiřaďte spravovanou identitu výpočetnímu clusteru:

    1. Přejděte do části Spravovaná identita na stránce a ověřte, jestli má výpočetní prostředky přiřazenou spravovanou identitu. Pokud ne, vyberte ikonu tužky a upravte spravovanou identitu.

    2. Výběrem posuvníku vedle možnosti Přiřadit spravovanou identitu povolte a podle potřeby ji nakonfigurujte. Můžete použít spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem. Pokud používáte spravovanou identitu přiřazenou systémem, má název [název pracovního prostoru]/computes/[název výpočetního clusteru].

    3. Uložte změny.

  5. Přejděte na web Azure Portal a přejděte do přidruženého účtu úložiště, kde se nacházejí data. Pokud je vaším vstupem dat datový prostředek nebo úložiště dat, vyhledejte účet úložiště, ve kterém jsou tyto prostředky umístěné.

  6. Přiřaďte úroveň přístupu Storage Blob Data Reader v rámci účtu úložiště:

    1. Přejděte do části Řízení přístupu (IAM).

    2. Vyberte kartu Přiřazení rolí a potom klikněte na Přidat>Přiřazení rolí.

    3. Vyhledejte roli s názvem Čtenář dat objektů blob služby Storage, vyberte ji a klikněte na Další.

    4. Klikněte na Vybrat členy.

    5. Vyhledejte spravovanou identitu, kterou jste vytvořili. Pokud používáte spravovanou identitu přiřazenou systémem, má název [název pracovního prostoru]/computes/[název výpočetního clusteru].

    6. Přidejte účet a dokončete průvodce.

  7. Váš koncový bod je připravený přijímat úlohy a vstupní data z vybraného účtu úložiště.

Další kroky