Autorizace v dávkových koncových bodech
Koncové body služby Batch podporují ověřování Microsoft Entra nebo aad_token
. Při volání dávkového koncového bodu proto uživatel musí předložit platný ověřovací token Microsoft Entra 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
K vyvolání dávkového koncového bodu musí uživatel předložit platný token Microsoft Entra představující objekt zabezpečení. Tento objekt zabezpečení může být instanční objekt uživatele nebo instanční objekt. V každém případě se po vyvolání koncového bodu vytvoří úloha 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/nasazení dávkového odvozu
- Vytváření experimentů/spuštění
- Čtení a zápis z/do úložišť dat
- Zobrazí seznam 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é
Identita použitá k vyvolání dávkového koncového bodu se nemusí použít ke čtení podkladových dat v závislosti na konfiguraci úložiště dat. Další podrobnosti 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 spuštění dávkových úloh 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í není možné v uživatelském rozhraní v studio Azure Machine Learning 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
- Tento příklad předpokládá, že máte model správně nasazený jako koncový bod dávky. Zejména používáme klasifikátor srdečního stavu vytvořený v kurzu Pomocí modelů MLflow v dávkových nasazeních.
Spouštění úloh pomocí přihlašovacích údajů uživatele
V tomto případě chceme spustit dávkový koncový bod pomocí identity uživatele, který je aktuálně přihlášený. Postupujte následovně:
Pomocí Azure CLI se přihlaste pomocí interaktivního ověřování kódu nebo kódu zařízení:
az login
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í instančního objektu
V tomto případě chceme spustit dávkový koncový bod pomocí instančního objektu, který už je vytvořený v Microsoft Entra ID. K dokončení ověřování budete muset vytvořit tajný kód pro provedení ověřování. Postupujte následovně:
Vytvořte tajný klíč, který se má použít pro ověřování, jak je vysvětleno v možnosti 3: Vytvoření nového tajného klíče klienta.
K ověření pomocí instančního objektu 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>
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 identita správy nepatří do dávkového koncového bodu, ale je to identita použitá ke spuštění koncového bodu a 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í uživatele odolného rozhraní API, které můžou použít ke generování úloh. Vyvolání vyžaduje správné oprávnění, aby tyto úlohy bylo možné 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 udělené identitě používané k vyvolání koncových bodů. 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 dávkové nasazení a generování úloh můžou vyvolat pouze autorizovaní uživatelé. 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ý asset | Ano | Přihlašovací údaje úložiště dat v pracovním prostoru | Přístupový klíč nebo SAS |
Úložiště dat | No | Identita úlohy + spravovaná identita výpočetního clusteru | RBAC |
Datový asset | No | 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 spuštěné nasazení, alespoň přístup čtenáře dat objektů blob služby Storage k účtu úložiště.
Pokud chcete nakonfigurovat výpočetní cluster pro přístup k datům, postupujte takto:
Přejděte na studio Azure Machine Learning.
Přejděte na Compute, pak výpočetní clustery a vyberte výpočetní cluster, který vaše nasazení používá.
Přiřaďte spravovanou identitu výpočetnímu clusteru:
V části Spravovaná identita ověřte, jestli má výpočetní prostředky přiřazenou spravovanou identitu. Pokud ne, vyberte možnost Upravit.
Vyberte Přiřadit spravovanou identitu 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].
Uložte změny.
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é.
Přiřaďte úroveň přístupu čtenáře dat objektů blob služby Storage v účtu úložiště:
Přejděte do části Řízení přístupu (IAM).
Vyberte kartu Přiřazení role a potom klikněte na Přidat>přiřazení role.
Vyhledejte roli s názvem Čtenář dat objektů blob služby Storage, vyberte ji a klikněte na Další.
Klikněte na Vybrat členy.
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].
Přidejte účet a dokončete průvodce.
Váš koncový bod je připravený přijímat úlohy a vstupní data z vybraného účtu úložiště.