Správa přístupu k pracovním prostorům Azure Machine Učení

Tento článek vysvětluje, jak spravovat přístup (autorizaci) k pracovním prostorům Azure Machine Učení. Ke správě přístupu k prostředkům Azure můžete použít řízení přístupu na základě role (Azure RBAC), které uživatelům umožňuje vytvářet nové prostředky nebo používat existující. Uživatelům ve vašem Microsoft Entra ID jsou přiřazeny konkrétní role, které udělují přístup k prostředkům. Azure poskytuje předdefinované role i možnost vytvářet vlastní role.

Tip

Tento článek se zaměřuje na azure Machine Učení, ale jednotlivé služby poskytují vlastní nastavení RBAC. Pomocí informací v tomto článku můžete například nakonfigurovat, kdo může odesílat žádosti o bodování do modelu nasazeného jako webová služba ve službě Azure Kubernetes Service. Azure Kubernetes Service ale poskytuje vlastní sadu rolí Azure. Informace o RBAC specifické pro službu, které můžou být užitečné pro azure machine Učení, najdete na následujících odkazech:

Upozorňující

Použití některých rolí může omezit funkčnost uživatelského rozhraní v studio Azure Machine Learning pro ostatní uživatele. Pokud například role uživatele nemá možnost vytvořit výpočetní instanci, není možnost vytvoření výpočetní instance v sadě Studio dostupná. Toto chování se očekává a zabrání uživateli v pokusu o operace, které by vrátily chybu odepření přístupu.

Výchozí role

Pracovní prostory Azure Machine Učení mají ve výchozím nastavení předdefinované role, které jsou k dispozici. Při přidávání uživatelů do pracovního prostoru je možné jim přiřadit jednu z následujících rolí.

Role Úroveň přístupu
Datoví vědci AzureML Může provádět všechny akce v rámci pracovního prostoru Azure Machine Učení s výjimkou vytváření nebo odstraňování výpočetních prostředků a úprav samotného pracovního prostoru.
Operátor výpočetních prostředků AzureML Může vytvářet, spravovat, odstraňovat a přistupovat k výpočetním prostředkům v rámci pracovního prostoru.
Čtenář Smí v pracovním prostoru provádět akce jen pro čtení. Čtenáři můžou v pracovním prostoru vypsat a zobrazit prostředky, včetně přihlašovacích údajů úložiště dat. Čtenáři nemohou tyto prostředky vytvářet ani aktualizovat.
Přispěvatel Může v pracovním prostoru zobrazovat, vytvářet, upravovat a odstraňovat prostředky (podle situace). Přispěvatelé můžou například vytvořit experiment, vytvořit nebo připojit výpočetní cluster, odeslat běh a nasadit webovou službu.
Vlastník Má úplný přístup k pracovnímu prostoru, včetně možnosti zobrazovat, vytvářet, upravovat nebo odstraňovat (podle situace) prostředky v pracovním prostoru. Kromě toho můžete měnit přiřazení rolí.

Kromě toho azure Machine Učení registry mají roli uživatele azureML Registry, která se dá přiřadit k prostředku registru, aby datovým vědcům udělila oprávnění na úrovni uživatele. K vytvoření nebo odstranění registrů na úrovni správce použijte roli Přispěvatel nebo Vlastník.

Role Úroveň přístupu
Uživatel registru AzureML Může v nich získat registry a číst, zapisovat a odstraňovat prostředky. Nejde vytvořit nové prostředky registru nebo je odstranit.

Role můžete kombinovat a udělit tak různé úrovně přístupu. Můžete například uživateli pracovního prostoru udělit role azureML Datoví vědci i výpočetního operátora AzureML, aby uživatel mohl provádět experimenty při vytváření výpočetních prostředků samoobslužným způsobem.

Důležité

Přístup k rolím je možné v Azure vymezit na více úrovní. Například někdo s přístupem vlastníka k pracovnímu prostoru nemusí mít přístup vlastníka ke skupině prostředků, která tento pracovní prostor obsahuje. Další informace najdete v tématu Jak funguje Azure RBAC.

Správa přístupu k pracovnímu prostoru

Pokud jste vlastníkem pracovního prostoru, můžete přidávat a odebírat role pro tento pracovní prostor. Můžete také přiřazovat role uživatelům. Následující odkazy vám pomůžou zjistit, jak spravovat přístup:

Například pomocí Azure CLI přiřaďte roli Přispěvatel pro joe@contoso.com skupinu prostředků this-rg pomocí následujícího příkazu:

az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg

Použití skupin zabezpečení Microsoft Entra ke správě přístupu k pracovnímu prostoru

Skupiny zabezpečení Microsoft Entra můžete použít ke správě přístupu k pracovním prostorům. Tento přístup má následující výhody:

  • Vedoucí týmu nebo projektu můžou spravovat přístup uživatelů k pracovnímu prostoru jako vlastníci skupin zabezpečení, aniž by museli mít roli Vlastník přímo u prostředku pracovního prostoru.
  • Oprávnění uživatelů v pracovním prostoru a dalších prostředcích můžete uspořádat, spravovat a odvolat jako skupinu, aniž byste museli spravovat oprávnění podle uživatele.
  • Používání skupin Microsoft Entra vám pomůže vyhnout se dosažení limitu předplatného pro přiřazení rolí.

Použití skupin zabezpečení Microsoft Entra:

  1. Vytvořte skupinu zabezpečení.
  2. Přidejte vlastníka skupiny. Tento uživatel má oprávnění přidávat nebo odebírat členy skupiny. Vlastník skupiny nemusí být členem skupiny nebo mít v pracovním prostoru přímou roli RBAC.
  3. Přiřaďte skupině roli RBAC v pracovním prostoru, jako je azureML Datoví vědci, čtenář nebo přispěvatel.
  4. Přidejte členy skupiny. Členové získají přístup k pracovnímu prostoru.

Vytvoření vlastní role

Pokud si s předdefinovanými rolemi nevystačíte, můžete vytvářet role vlastní. Vlastní role můžou mít oprávnění ke čtení, zápisu, odstranění a výpočetnímu prostředku v daném pracovním prostoru. Roli můžete zpřístupnit na konkrétní úrovni pracovního prostoru, na konkrétní úrovni skupiny prostředků nebo na konkrétní úrovni předplatného.

Poznámka:

Pokud chcete vytvořit vlastní role v rámci tohoto prostředku, musíte být vlastníkem prostředku na této úrovni.

Pokud chcete vytvořit vlastní roli, nejprve vytvořte soubor JSON definice role, který určuje oprávnění a obor role. Následující příklad definuje vlastní Datoví vědci vlastní roli vymezenou na konkrétní úrovni pracovního prostoru:

data_scientist_custom_role.json:

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute.",
    "Actions": ["*"],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
    ]
}

Tip

Pole můžete změnit AssignableScopes tak, aby nastavil obor této vlastní role na úrovni předplatného, na úrovni skupiny prostředků nebo na konkrétní úrovni pracovního prostoru. Výše uvedená vlastní role je jen příkladem, podívejte se na některé navrhované vlastní role pro službu Azure Machine Učení.

Tato vlastní role může dělat všechno v pracovním prostoru s výjimkou následujících akcí:

  • Pracovní prostor se nedá odstranit.
  • Pracovní prostor nemůže vytvořit ani aktualizovat.
  • Nemůže vytvářet ani aktualizovat výpočetní prostředky.
  • Výpočetní prostředky se nedají odstranit.
  • Nemůže přidávat, odstraňovat ani měnit přiřazení rolí.

Pokud chcete nasadit tuto vlastní roli, použijte následující příkaz Azure CLI:

az role definition create --role-definition data_scientist_custom_role.json

Po nasazení bude tato role dostupná v zadaném pracovním prostoru. Teď můžete tuto roli přidat a přiřadit na webu Azure Portal.

Další informace o vlastních rolích najdete v tématu Vlastní role Azure.

Operace Učení počítačů Azure

Další informace o operacích (akcích a ne akcích) použitelných s vlastními rolemi najdete v tématu Operace poskytovatele prostředků. K výpisu operací můžete použít také následující příkaz Azure CLI:

az provider operation show –n Microsoft.MachineLearningServices

Výpis vlastních rolí

V Azure CLI spusťte následující příkaz:

az role definition list --subscription <subscriptionId> --custom-role-only true

Pokud chcete zobrazit definici role pro konkrétní vlastní roli, použijte následující příkaz Azure CLI. Měl <roleName> by být ve stejném formátu, který vrátil předchozí příkaz:

az role definition list -n <roleName> --subscription <subscriptionId>

Aktualizace vlastní role

V Azure CLI spusťte následující příkaz:

az role definition update --role-definition update_def.json --subscription <subscriptionId>

Musíte mít oprávnění k celému rozsahu nové definice role. Pokud má tato nová role například obor napříč třemi předplatnými, musíte mít oprávnění ke všem třem předplatným.

Poznámka:

Aktualizace rolí můžou trvat 15 minut až hodinu, než se uplatní u všech přiřazení rolí v daném oboru.

Použití šablon Azure Resource Manageru pro opakovatelnost

Pokud předpokládáte, že budete muset znovu vytvořit složitá přiřazení rolí, může vám pomoct šablona Azure Resource Manageru. Šablona machine-learning-dependencies-role-assignment ukazuje, jak je možné zadat přiřazení rolí ve zdrojovém kódu pro opakované použití.

Obvyklé scénáře

Následující tabulka obsahuje souhrn aktivit azure machine Učení a oprávnění potřebná k jejich provedení aspoň rozsahu. Pokud je například možné provést aktivitu s oborem pracovního prostoru (sloupec 4), pak veškerý vyšší obor s tímto oprávněním také funguje automaticky. U určitých aktivit se oprávnění mezi rozhraními API V1 a V2 liší.

Důležité

Všechny cesty v této tabulce, které začínají, jsou relativními cestami / k Microsoft.MachineLearningServices/ :

Aktivita Rozsah na úrovni předplatného Rozsah na úrovni skupiny prostředků Obor na úrovni pracovního prostoru
Vytvoření nového pracovního prostoru 1 Nepovinné Vlastník nebo přispěvatel Není k dispozici (stane se vlastníkem nebo dědí roli s vyšším oborem po vytvoření)
Vyžádání kvóty Amlcompute na úrovni předplatného nebo nastavení kvóty na úrovni pracovního prostoru Vlastník nebo přispěvatel nebo vlastní role
Umožňuje /locations/updateQuotas/action
v oboru předplatného
Neautorizováno Neautorizováno
Vytvoření nového výpočetního clusteru Nepovinné Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role: /workspaces/computes/write
Vytvoření nové výpočetní instance Nepovinné Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role: /workspaces/computes/write
Odeslání jakéhokoli typu spuštění (V1) Nepovinné Nepovinné Vlastník, přispěvatel nebo vlastní role umožňující: /workspaces/*/read, /workspaces/environments/write, /workspaces/experiments/runs/write, /workspaces/metadata/artifacts/write, /workspaces/metadata/snapshots/write, /workspaces/environments/build/action, , /workspaces/experiments/runs/submit/action/workspaces/environments/readSecrets/action
Odesílání libovolného typu spuštění (V2) Nepovinné Nepovinné Vlastník, přispěvatel nebo vlastní role umožňující: /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, , /workspaces/environments/build/action/workspaces/environments/readSecrets/action
Publikování kanálů a koncových bodů (V1) Nepovinné Nepovinné Vlastník, přispěvatel nebo vlastní role umožňující: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Publikování kanálů a koncových bodů (V2) Nepovinné Nepovinné Vlastník, přispěvatel nebo vlastní role umožňující: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Připojení prostředku AKS 2 Nepovinné Vlastník nebo přispěvatel ve skupině prostředků, která obsahuje AKS
Nasazení registrovaného modelu na prostředek AKS/ACI Nepovinné Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role: /workspaces/services/aks/write, /workspaces/services/aci/write
Bodování pro nasazený koncový bod AKS Nepovinné Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (pokud nepoužíváte ověřování Microsoft Entra) NEBO /workspaces/read (při použití ověřování tokenem)
Přístup k úložišti pomocí interaktivních poznámkových bloků Nepovinné Nepovinné Vlastník, přispěvatel nebo vlastní role umožňující: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
Vytvoření nové vlastní role Povolení vlastníka, přispěvatele nebo vlastní role Microsoft.Authorization/roleDefinitions/write Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role: /workspaces/computes/write
Vytváření a správa online koncových bodů a nasazení Nepovinné Pokud chcete nasadit v sadě Studio, Microsoft.Resources/deployments/write Povolení vlastníka, přispěvatele nebo vlastní role Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
Načtení přihlašovacích údajů pro ověřování pro online koncové body Nepovinné Nepovinné Povolení vlastníka, přispěvatele nebo vlastní role Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Pokud při prvním pokusu o vytvoření pracovního prostoru dojde k chybě, ujistěte se, že vaše role umožňuje Microsoft.MachineLearningServices/register/action. Tato akce umožňuje zaregistrovat poskytovatele prostředků Azure Machine Učení ve vašem předplatném Azure.

  2. Při připojování clusteru AKS musíte mít v clusteru také roli clusteru Azure Kubernetes Service Správa.

Nasazení do virtuální sítě nebo podsítě

  • Pokud chcete nasadit prostředky do virtuální sítě nebo podsítě, musí mít váš uživatelský účet oprávnění k následujícím akcím v řízení přístupu na základě role v Azure (Azure RBAC):

    • Microsoft.Network/*/read v prostředku virtuální sítě. Toto oprávnění není potřeba pro nasazení šablon Azure Resource Manageru (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" u prostředku virtuální sítě.
    • Prostředek podsítě "Microsoft.Network/virtualNetworks/subnets/join/action".

    Další informace o Azure RBAC se sítěmi najdete v předdefinovaných rolích sítě.

Rozdíly mezi akcemi pro rozhraní API V1 a V2

Existují určité rozdíly mezi akcemi pro rozhraní API V1 a rozhraními API V2.

Majetek Cesta akce pro rozhraní API V1 Cesta akce pro rozhraní API V2
Datová sada Microsoft.Machine Učení Services/workspaces/datasets Microsoft.Machine Učení Services/workspaces/datasets/versions
Spuštění experimentu a úlohy Microsoft.Machine Učení Services/workspaces/experiments Microsoft.Machine Učení Services/workspaces/jobs
Modely Microsoft.Machine Učení Services/workspaces/models Microsoft.Machine Učení Services/workspaces/models/versions
Snímky a kód Microsoft.Machine Učení Services/workspaces/snapshots Microsoft.Machine Učení Services/workspaces/codes/versions
Moduly a komponenty Microsoft.Machine Učení Services/workspaces/modules Microsoft.Machine Učení Services/workspaces/components

Vlastní role můžete nastavit jako kompatibilní s rozhraními API V1 i V2, a to zahrnutím obou akcí nebo pomocí zástupných znaků, které zahrnují obě akce, například Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Vytvoření pracovního prostoru pomocí klíče spravovaného zákazníkem

Při použití klíče spravovaného zákazníkem (CMK) se k uložení klíče použije služba Azure Key Vault. Uživatel nebo instanční objekt použitý k vytvoření pracovního prostoru musí mít přístup vlastníka nebo přispěvatele k trezoru klíčů.

Pokud je váš pracovní prostor nakonfigurovaný se spravovanou identitou přiřazenou uživatelem, musí být identitě udělena následující role. Tyto role umožňují spravované identitě vytvářet prostředky Azure Storage, Azure Cosmos DB a Azure Search používané při použití klíče spravovaného zákazníkem:

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

V rámci trezoru klíčů musí mít uživatel nebo instanční objekt přístup k klíči prostřednictvím zásad přístupu trezoru klíčů k němu vytvořit, získat, odstranit a vyprázdnit. Další informace najdete v tématu Zabezpečení služby Azure Key Vault.

Spravovaná identita přiřazená uživatelem pomocí výpočetního clusteru Azure Machine Učení

Pokud chcete přiřadit identitu přiřazenou uživatelem k výpočetnímu clusteru Azure Machine Učení, potřebujete oprávnění k zápisu pro vytvoření výpočetních prostředků a role operátora spravované identity. Další informace o Azure RBAC se spravovanými identitami najdete v tématu Správa identity přiřazené uživatelem.

Operace MLflow

Pokud chcete s pracovním prostorem Učení Azure provádět operace MLflow, použijte následující obory vaší vlastní role:

Operace MLflow Obor
(V1) Seznam, čtení, vytváření, aktualizace nebo odstraňování experimentů Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Výpis, čtení, vytváření, aktualizace nebo odstraňování úloh Microsoft.MachineLearningServices/workspaces/jobs/*
Získejte zaregistrovaný model podle názvu, načtěte seznam všech registrovaných modelů v registru, vyhledejte registrované modely, nejnovější modely verzí pro každou fázi požadavků, získejte verzi zaregistrovaného modelu, verze modelu vyhledávání, získejte identifikátor URI, kde jsou uložené artefakty verze modelu, vyhledávání podle ID experimentů. Microsoft.MachineLearningServices/workspaces/models/*/read
Vytvoření nového registrovaného modelu, aktualizace názvu a popisu registrovaného modelu, přejmenování existujícího registrovaného modelu, vytvoření nové verze modelu, aktualizace popisu verze modelu, přechod registrovaného modelu na jednu z fází Microsoft.MachineLearningServices/workspaces/models/*/write
Odstranění registrovaného modelu spolu se všemi jeho verzemi, odstraněním konkrétních verzí registrovaného modelu Microsoft.MachineLearningServices/workspaces/models/*/delete

Příklad vlastních rolí

Datový vědec

Umožňuje datovému vědci provádět všechny operace v pracovním prostoru s výjimkou:

  • Vytvoření výpočetních prostředků
  • Nasazení modelů do produkčního clusteru AKS
  • Nasazení koncového bodu kanálu v produkčním prostředí

data_scientist_custom_role.json:

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/*/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Omezený datový vědec

Omezenější definice role bez zástupných znaků v povolených akcích. Může provádět všechny operace v pracovním prostoru s výjimkou:

  • Vytvoření výpočetních prostředků
  • Nasazení modelů do produkčního clusteru AKS
  • Nasazení koncového bodu kanálu v produkčním prostředí

data_scientist_restricted_custom_role.json :

{
    "Name": "Data Scientist Restricted Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/computes/start/action",
        "Microsoft.MachineLearningServices/workspaces/computes/stop/action",
        "Microsoft.MachineLearningServices/workspaces/computes/restart/action",
        "Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/models/*/write",
        "Microsoft.MachineLearningServices/workspaces/modules/write",
        "Microsoft.MachineLearningServices/workspaces/components/*/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/*/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/*/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",    
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/write",
        "Microsoft.MachineLearningServices/workspaces/datastores/delete"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Datový vědec MLflow

Umožňuje datovému vědci provádět všechny operace Azure Machine Učení MLflow s výjimkou:

  • Vytvoření výpočetních prostředků
  • Nasazení modelů do produkčního clusteru AKS
  • Nasazení koncového bodu kanálu v produkčním prostředí

mlflow_data_scientist_custom_role.json:

{
    "Name": "MLFlow Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/experiments/*",
        "Microsoft.MachineLearningServices/workspaces/jobs/*",
        "Microsoft.MachineLearningServices/workspaces/models/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

MLOps

Umožňuje přiřadit roli instančnímu objektu a použít ji k automatizaci kanálů MLOps. Pokud například chcete odeslat spuštění s již publikovaným kanálem:

mlops_custom_role.json:

{
    "Name": "MLOps Custom",
    "IsCustom": true,
    "Description": "Can run pipelines against a published pipeline endpoint",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
        "Microsoft.MachineLearningServices/workspaces/environments/read",    
        "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
        "Microsoft.MachineLearningServices/workspaces/modules/read",
        "Microsoft.MachineLearningServices/workspaces/components/read",       
        "Microsoft.MachineLearningServices/workspaces/datasets/*/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/codes/*/write",       
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Správa pracovního prostoru

Umožňuje provádět všechny operace v rámci oboru pracovního prostoru s výjimkou:

  • Vytvoření nového pracovního prostoru
  • Přiřazení kvót na úrovni předplatného nebo pracovního prostoru

Správce pracovního prostoru také nemůže vytvořit novou roli. Může přiřadit pouze existující předdefinované nebo vlastní role v rámci oboru jejich pracovního prostoru:

workspace_admin_custom_role.json:

{
    "Name": "Workspace Admin Custom",
    "IsCustom": true,
    "Description": "Can perform all operations except quota management and upgrades",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/write",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.Authorization/roleAssignments/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Popisování dat

Existuje předdefinovaná role pro popisování dat s vymezeným oborem pouze na popisky dat. Následující vlastní role poskytují další úrovně přístupu k projektu popisování dat.

Vedoucí týmu popisků umožňuje zkontrolovat a odmítnout popisovanou datovou sadu a zobrazit přehledy popisků. Kromě toho vám tato role také umožňuje provádět roli popisovače.

labeling_team_lead_custom_role.json:

{
    "Name": "Labeling Team Lead",
    "IsCustom": true,
    "Description": "Team lead for Labeling Projects",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/reject/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/update/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/delete",
        "Microsoft.MachineLearningServices/workspaces/labeling/export/action"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Řešení problému

Při používání Azure RBAC je potřeba mít na paměti několik věcí:

  • Když v Azure vytvoříte prostředek, například pracovní prostor, nejste přímo vlastníkem prostředku. Vaše role se dědí z role s nejvyšším oborem, vůči které máte oprávnění v tomto předplatném. Pokud jste například síťový Správa istrator a máte oprávnění k vytvoření pracovního prostoru Učení počítače, přiřadíte k ho roli Network Správa istrator, a ne roli Vlastník.

  • K provádění operací s kvótami v pracovním prostoru potřebujete oprávnění na úrovni předplatného. To znamená, že k nastavení kvóty na úrovni předplatného nebo na úrovni předplatného pro spravované výpočetní prostředky může dojít jenom v případě, že máte oprávnění k zápisu v rozsahu předplatného.

  • K nasazení do studia potřebujete Microsoft.Resources/deployments/write AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Pro nasazení sady SDK nebo rozhraní příkazového řádku potřebujete Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Pokud potřebujete další oprávnění, obraťte se na vlastníka pracovního prostoru nebo skupiny prostředků.

  • Pokud existují dvě přiřazení rolí stejnému uživateli Microsoft Entra s konfliktními oddíly Akcí/NotActions, vaše operace uvedené v NotActions z jedné role se nemusí projevit, pokud jsou také uvedené jako Akce v jiné roli. Další informace o tom, jak Azure parsuje přiřazení rolí, najdete v tématu Jak Azure RBAC určuje, jestli má uživatel přístup k prostředku.

  • Někdy může trvat až jednu hodinu, než se přes oprávnění uložená v mezipaměti v rámci celého zásobníku projeví nové přiřazení rolí.

Další kroky