Udostępnij za pośrednictwem


Zarządzanie dostępem do obszarów roboczych usługi Azure Machine Learning

W tym artykule wyjaśniono, jak zarządzać dostępem (autoryzacją) do obszarów roboczych usługi Azure Machine Learning. Możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure do zarządzania dostępem do zasobów platformy Azure, co daje użytkownikom możliwość tworzenia nowych zasobów lub używania istniejących. Użytkownicy w Microsoft Entra ID mają przypisane określone role, które udzielają dostępu do zasobów. Platforma Azure oferuje zarówno wbudowane role, jak i możliwość tworzenia ról niestandardowych.

Napiwek

Chociaż ten artykuł koncentruje się na usłudze Azure Machine Learning, poszczególne usługi zapewniają własne ustawienia kontroli dostępu opartej na rolach. Na przykład korzystając z informacji w tym artykule, można skonfigurować, kto może przesyłać żądania oceniania do modelu wdrożonego jako usługa internetowa w usłudze Azure Kubernetes Service. Jednak usługa Azure Kubernetes Service udostępnia własny zestaw ról platformy Azure. Aby uzyskać informacje dotyczące kontroli dostępu opartej na rolach usługi, które mogą być przydatne w usłudze Azure Machine Learning, zobacz następujące linki:

Ostrzeżenie

Zastosowanie niektórych ról może ograniczyć funkcjonalność interfejsu użytkownika w usłudze Azure Machine Learning Studio dla innych użytkowników. Jeśli na przykład rola użytkownika nie ma możliwości utworzenia wystąpienia obliczeniowego, opcja utworzenia wystąpienia obliczeniowego nie jest dostępna w programie Studio. To zachowanie jest oczekiwane i uniemożliwia użytkownikowi podjęcie prób operacji, które zwracają błąd odmowy dostępu.

Role domyślne

Obszary robocze usługi Azure Machine Learning mają wbudowane role, które są domyślnie dostępne. Po dodaniu użytkowników do obszaru roboczego można przypisać do nich jedną z następujących ról.

Rola Poziom dostępu
AzureML badacze dancyh Może wykonywać wszystkie akcje w obszarze roboczym usługi Azure Machine Learning, z wyjątkiem tworzenia lub usuwania zasobów obliczeniowych i modyfikowania samego obszaru roboczego.
Operator obliczeniowy usługi AzureML Może tworzyć, usuwać i uzyskiwać dostęp do zasobów obliczeniowych w obszarze roboczym oraz zarządzać nimi.
Czytelnik Akcje tylko do odczytu w obszarze roboczym. Czytelnicy mogą wyświetlać i wyświetlać zasoby, w tym poświadczenia magazynu danych, w obszarze roboczym. Czytelnicy nie mogą tworzyć ani aktualizować tych zasobów.
Współautor Wyświetlanie, tworzenie, edytowanie i usuwanie (według potrzeb) zasobów w obszarze roboczym. Współautorzy mogą na przykład tworzyć eksperymenty, tworzyć lub dołączać klastry obliczeniowe, przesyłać przebiegi i wdrażać usługi internetowe.
Właściciel Pełen dostęp do obszaru roboczego, w tym możliwość wyświetlania, tworzenia, edytowania lub usuwania (według potrzeb) zasobów w obszarze roboczym. Dodatkowo może zmieniać przypisania ról.

Ponadto rejestry usługi Azure Machine Learning mają rolę użytkownika usługi Azure Machine Learning Registry, którą można przypisać do zasobu rejestru w celu udzielenia uprawnień na poziomie użytkownika analitykom danych. Aby uzyskać uprawnienia na poziomie administratora do tworzenia lub usuwania rejestrów, użyj roli Współautor lub Właściciel.

Rola Poziom dostępu
Użytkownik rejestru AzureML Może pobierać rejestry oraz odczytywać, zapisywać i usuwać w nich zasoby. Nie można utworzyć nowych zasobów rejestru ani usunąć ich.

Role można połączyć, aby przyznać różne poziomy dostępu. Możesz na przykład udzielić użytkownikowi obszaru roboczego zarówno ról usługi AzureML badacze dancyh, jak i operatorów obliczeniowych AzureML, aby umożliwić użytkownikowi wykonywanie eksperymentów podczas tworzenia obliczeń w sposób samoobsługowy.

Ważne

Dostęp do ról można ograniczyć do wielu poziomów na platformie Azure. Na przykład osoba mająca dostęp właściciela do obszaru roboczego może nie mieć dostępu właściciela do grupy zasobów zawierającej obszar roboczy. Aby uzyskać więcej informacji, zobacz Jak działa kontrola dostępu oparta na rolach platformy Azure.

Zarządzanie dostępem do obszaru roboczego

Jeśli jesteś właścicielem obszaru roboczego, możesz dodawać i usuwać role w obszarze roboczym. Możesz również przypisywać role do użytkowników. Użyj następujących linków, aby dowiedzieć się, jak zarządzać dostępem:

Na przykład użyj interfejsu wiersza polecenia platformy Azure, aby przypisać rolę Współautor dla joe@contoso.com grupy zasobów this-rg za pomocą następującego polecenia:

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

Zarządzanie dostępem do obszaru roboczego przy użyciu grup zabezpieczeń firmy Microsoft Entra

Grupy zabezpieczeń firmy Microsoft Entra umożliwiają zarządzanie dostępem do obszarów roboczych. Takie podejście ma następujące korzyści:

  • Liderzy zespołu lub projektu mogą zarządzać dostępem użytkowników do obszaru roboczego jako właściciele grup zabezpieczeń bez konieczności bezpośredniego posiadania roli Właściciela w zasobie obszaru roboczego.
  • Uprawnienia użytkowników w obszarze roboczym i innych zasobach można organizować, zarządzać nimi i odwoływać je jako grupę bez konieczności zarządzania uprawnieniami na podstawie użytkownika.
  • Korzystanie z grup Entra firmy Microsoft pomaga uniknąć osiągnięcia limitu subskrypcji dla przypisań ról.

Aby użyć grup zabezpieczeń firmy Microsoft Entra:

  1. Utwórz grupę zabezpieczeń.
  2. Dodaj właściciela grupy. Ten użytkownik ma uprawnienia do dodawania lub usuwania członków grupy. Właściciel grupy nie musi być członkiem grupy ani mieć bezpośredniej roli RBAC w obszarze roboczym.
  3. Przypisz grupie rolę RBAC w obszarze roboczym, taką jak AzureML badacze dancyh, Czytelnik lub Współautor.
  4. Dodaj członków grupy. Członkowie uzyskują dostęp do obszaru roboczego.

Tworzenie roli niestandardowej

Jeśli wbudowane role nie są wystarczające, można tworzyć role niestandardowe. Role niestandardowe mogą mieć uprawnienia do odczytu, zapisu, usuwania i zasobów obliczeniowych w tym obszarze roboczym. Rolę można udostępnić na określonym poziomie obszaru roboczego, określonym poziomie grupy zasobów lub określonym poziomie subskrypcji.

Uwaga

Musisz być właścicielem zasobu na tym poziomie, aby utworzyć role niestandardowe w ramach tego zasobu.

Aby utworzyć rolę niestandardową, najpierw skonstruuj plik JSON definicji roli, który określa uprawnienia i zakres roli. W poniższym przykładzie zdefiniowano niestandardową rolę badacze dancyh niestandardową o określonym zakresie na określonym poziomie obszaru roboczego:

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>"
    ]
}

Napiwek

Możesz zmienić AssignableScopes pole, aby ustawić zakres tej roli niestandardowej na poziomie subskrypcji, na poziomie grupy zasobów lub na określonym poziomie obszaru roboczego. Poprzednia rola niestandardowa jest przykładem, zobacz kilka sugerowanych ról niestandardowych dla usługi Azure Machine Learning.

Ta rola niestandardowa może wykonywać wszystkie czynności w obszarze roboczym z wyjątkiem następujących akcji:

  • Nie można usunąć obszaru roboczego.
  • Nie może utworzyć ani zaktualizować obszaru roboczego.
  • Nie może tworzyć ani aktualizować zasobów obliczeniowych.
  • Nie można usunąć zasobów obliczeniowych.
  • Nie może dodawać, usuwać ani zmieniać przypisań ról.

Aby wdrożyć tę rolę niestandardową, użyj następującego polecenia interfejsu wiersza polecenia platformy Azure:

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

Po wdrożeniu ta rola stanie się dostępna w określonym obszarze roboczym. Teraz możesz dodać i przypisać tę rolę w witrynie Azure Portal.

Aby uzyskać więcej informacji na temat ról niestandardowych, zobacz Role niestandardowe platformy Azure.

Operacje usługi Azure Machine Learning

Aby uzyskać więcej informacji na temat operacji (akcji, a nie akcji) używanych z rolami niestandardowymi, zobacz Operacje dostawcy zasobów. Do wyświetlania listy operacji można również użyć następującego polecenia interfejsu wiersza polecenia platformy Azure:

az provider operation show –n Microsoft.MachineLearningServices

Wyświetlanie ról niestandardowych

W interfejsie wiersza polecenia platformy Azure uruchom następujące polecenie:

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

Aby wyświetlić definicję roli dla określonej roli niestandardowej, użyj następującego polecenia interfejsu wiersza polecenia platformy Azure. Element <roleName> powinien być w tym samym formacie zwróconym przez poprzednie polecenie:

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

Aktualizacja roli niestandardowej

W interfejsie wiersza polecenia platformy Azure uruchom następujące polecenie:

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

Musisz mieć uprawnienia do całego zakresu nowej definicji roli. Jeśli na przykład ta nowa rola ma zakres w trzech subskrypcjach, musisz mieć uprawnienia do wszystkich trzech subskrypcji.

Uwaga

Aktualizacje ról mogą potrwać od 15 minut do godziny, aby zastosować wszystkie przypisania ról w tym zakresie.

Używanie szablonów usługi Azure Resource Manager do powtarzalności

Jeśli przewidujesz, że musisz ponownie utworzyć złożone przypisania ról, szablon usługi Azure Resource Manager może być znaczącą pomocą. Szablon zależności uczenia maszynowego—role-assignment pokazuje, jak można określić przypisania ról w kodzie źródłowym do ponownego użycia.

Typowe scenariusze

Poniższa tabela zawiera podsumowanie działań usługi Azure Machine Learning i uprawnienia wymagane do ich wykonania co najmniej w zakresie. Jeśli na przykład działanie można wykonać z zakresem obszaru roboczego (Kolumna 4), wszystkie wyższe zakresy z tym uprawnieniem również działają automatycznie. W przypadku niektórych działań uprawnienia różnią się między interfejsami API w wersji 1 i 2.

Ważne

Wszystkie ścieżki w tej tabeli rozpoczynające się od / to ścieżki względne do Microsoft.MachineLearningServices/ :

Działanie Zakres na poziomie subskrypcji Zakres na poziomie grupy zasobów Zakres na poziomie obszaru roboczego
Tworzenie nowego obszaru roboczego 1 Niewymagane Właściciel lub współautor N/A (staje się właścicielem lub dziedziczy wyższą rolę zakresu po utworzeniu)
Żądanie limitu przydziału na poziomie subskrypcji Amlcompute lub ustawianie limitu przydziału na poziomie obszaru roboczego Właściciel, współautor lub rola niestandardowa
Pozwalając /locations/updateQuotas/action
w zakresie subskrypcji
Brak autoryzacji Brak autoryzacji
Tworzenie nowego klastra obliczeniowego Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/computes/write
Tworzenie nowego wystąpienia obliczeniowego Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/computes/write
Przesyłanie dowolnego typu przebiegu (wersja 1) Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/*/read, , /workspaces/environments/write/workspaces/experiments/runs/write, /workspaces/metadata/snapshots/write/workspaces/metadata/artifacts/write, , /workspaces/experiments/runs/submit/action/workspaces/environments/build/action/workspaces/environments/readSecrets/action
Przesyłanie dowolnego typu przebiegu (wersja 2) Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/*/read, , /workspaces/environments/write/workspaces/jobs/*, /workspaces/metadata/artifacts/write, , /workspaces/environments/build/action/workspaces/metadata/codes/*/write/workspaces/environments/readSecrets/action
Publikowanie potoków i punktów końcowych (V1) Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/endpoints/pipelines/*, , /workspaces/pipelinedrafts/*/workspaces/modules/*
Publikowanie potoków i punktów końcowych (wersja 2) Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/endpoints/pipelines/*, , /workspaces/pipelinedrafts/*/workspaces/components/*
Dołączanie zasobu usługi AKS 2 Niewymagane Właściciel lub współautor w grupie zasobów, która zawiera usługę AKS
Wdrażanie zarejestrowanego modelu w zasobie usługi AKS/ACI Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/services/aks/write, /workspaces/services/aci/write
Ocenianie względem wdrożonego punktu końcowego usługi AKS Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (jeśli nie używasz uwierzytelniania Entra firmy Microsoft) LUB /workspaces/read (w przypadku korzystania z uwierzytelniania tokenu)
Uzyskiwanie dostępu do magazynu przy użyciu notesów interaktywnych Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/computes/read, , /workspaces/notebooks/samples/read/workspaces/notebooks/storage/*, , /workspaces/listStorageAccountKeys/action/workspaces/listNotebookAccessToken/read
Tworzenie nowej roli niestandardowej Właściciel, współautor lub rola niestandardowa zezwalająca Microsoft.Authorization/roleDefinitions/write Niewymagane Właściciel, współautor lub rola niestandardowa zezwalająca na: /workspaces/computes/write
Tworzenie/zarządzanie punktami końcowymi i wdrożeniami online Niewymagane Aby wdrożyć w programie Studio, Microsoft.Resources/deployments/write Właściciel, współautor lub rola niestandardowa zezwalająca na Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*funkcję .
Pobieranie poświadczeń uwierzytelniania dla punktów końcowych online Niewymagane Niewymagane Właściciel, współautor lub rola niestandardowa umożliwiająca Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action i Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Jeśli podczas próby utworzenia obszaru roboczego po raz pierwszy wystąpi błąd, upewnij się, że rola zezwala na Microsoft.MachineLearningServices/register/actionfunkcję . Ta akcja umożliwia zarejestrowanie dostawcy zasobów usługi Azure Machine Learning w ramach subskrypcji platformy Azure.

  2. Podczas dołączania klastra usługi AKS musisz również mieć rolę administratora klastra usługi Azure Kubernetes Service w klastrze.

Wdrażanie w sieci wirtualnej lub podsieci

  • Aby wdrożyć zasoby w sieci wirtualnej lub podsieci, konto użytkownika musi mieć uprawnienia do następujących akcji w kontroli dostępu opartej na rolach platformy Azure (Azure RBAC):

    • "Microsoft.Network/*/read" w zasobie sieci wirtualnej. To uprawnienie nie jest wymagane w przypadku wdrożeń szablonów usługi Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" w zasobie sieci wirtualnej.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" w zasobie podsieci.

    Aby uzyskać więcej informacji na temat kontroli dostępu opartej na rolach platformy Azure z siecią, zobacz Wbudowane role sieciowe

Różnice między akcjami dla interfejsów API w wersji 1 i 2

Istnieją pewne różnice między akcjami dla interfejsów API w wersji 1 i interfejsów API w wersji 2.

Asset Ścieżka akcji dla interfejsu API w wersji 1 Ścieżka akcji dla interfejsu API w wersji 2
Zestaw danych Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Przebiegi eksperymentów i zadania Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Modele Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Migawki i kod Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Moduły i składniki Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

Role niestandardowe można ustawić jako zgodne zarówno z interfejsami API w wersji 1, jak i 2, włączając obie akcje lub używając symboli wieloznacznych, które obejmują obie akcje, na przykład Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Tworzenie obszaru roboczego przy użyciu klucza zarządzanego przez klienta

W przypadku używania klucza zarządzanego przez klienta (CMK) usługa Azure Key Vault jest używana do przechowywania klucza. Użytkownik lub jednostka usługi używana do tworzenia obszaru roboczego musi mieć dostęp właściciela lub współautora do magazynu kluczy.

Jeśli obszar roboczy jest skonfigurowany przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, tożsamość musi mieć przyznane następujące role. Te role umożliwiają tożsamości zarządzanej tworzenie zasobów usługi Azure Storage, usługi Azure Cosmos DB i usługi Azure Search używanych podczas korzystania z klucza zarządzanego przez klienta:

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

W magazynie kluczy użytkownik lub jednostka usługi musi mieć uprawnienia do tworzenia, pobierania, usuwania i przeczyszczania klucza za pośrednictwem zasad dostępu do magazynu kluczy. Aby uzyskać więcej informacji, zobacz Zabezpieczenia usługi Azure Key Vault.

Tożsamość zarządzana przypisana przez użytkownika z klastrem obliczeniowym usługi Azure Machine Learning

Aby przypisać tożsamość przypisaną przez użytkownika do klastra obliczeniowego usługi Azure Machine Learning, musisz mieć uprawnienia do zapisu, aby utworzyć zasoby obliczeniowe i rolę operatora tożsamości zarządzanej. Aby uzyskać więcej informacji na temat kontroli dostępu opartej na rolach platformy Azure z tożsamościami zarządzanymi, zobacz Jak zarządzać tożsamością przypisaną przez użytkownika

Operacje MLflow

Aby wykonać operacje MLflow w obszarze roboczym usługi Azure Machine Learning, użyj następujących zakresów roli niestandardowej:

Operacja MLflow Scope
(Wersja 1) Wyświetlanie, odczytywanie, tworzenie, aktualizowanie lub usuwanie eksperymentów Microsoft.MachineLearningServices/workspaces/experiments/*
(Wersja 2) Wyświetlanie, odczytywanie, tworzenie, aktualizowanie lub usuwanie zadań Microsoft.MachineLearningServices/workspaces/jobs/*
Pobierz zarejestrowany model według nazwy, pobierz listę wszystkich zarejestrowanych modeli w rejestrze, wyszukaj zarejestrowane modele, najnowsze modele wersji dla każdego etapu żądań, pobierz wersję zarejestrowanego modelu, wersje modelu wyszukiwania, pobierz identyfikator URI, w którym są przechowywane artefakty wersji modelu, wyszukaj przebiegi według identyfikatorów eksperymentów Microsoft.MachineLearningServices/workspaces/models/*/read
Tworzenie nowego zarejestrowanego modelu, aktualizowanie nazwy/opisu zarejestrowanego modelu, zmienianie nazwy istniejącego zarejestrowanego modelu, tworzenie nowej wersji modelu, aktualizowanie opisu wersji modelu, przenoszenie zarejestrowanego modelu do jednego z etapów Microsoft.MachineLearningServices/workspaces/models/*/write
Usuwanie zarejestrowanego modelu wraz ze wszystkimi wersjami, usuwanie określonych wersji zarejestrowanego modelu Microsoft.MachineLearningServices/workspaces/models/*/delete

Przykładowe role niestandardowe

Mistrz danych

Umożliwia analitykowi danych wykonywanie wszystkich operacji wewnątrz obszaru roboczego z wyjątkiem:

  • Tworzenie zasobów obliczeniowych
  • Wdrażanie modeli w produkcyjnym klastrze usługi AKS
  • Wdrażanie punktu końcowego potoku w środowisku produkcyjnym

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>"
    ]
}

Ograniczony analityk danych

Bardziej ograniczona definicja roli bez symboli wieloznacznych w dozwolonych akcjach. Może wykonywać wszystkie operacje wewnątrz obszaru roboczego z wyjątkiem:

  • Tworzenie zasobów obliczeniowych
  • Wdrażanie modeli w produkcyjnym klastrze usługi AKS
  • Wdrażanie punktu końcowego potoku w środowisku produkcyjnym

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>"
    ]
}

Analityk danych MLflow

Umożliwia analitykowi danych wykonywanie wszystkich obsługiwanych operacji MLflow w usłudze Azure Machine Learning z wyjątkiem:

  • Tworzenie zasobów obliczeniowych
  • Wdrażanie modeli w produkcyjnym klastrze usługi AKS
  • Wdrażanie punktu końcowego potoku w środowisku produkcyjnym

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żliwia przypisanie roli do jednostki usługi i użycie jej do automatyzacji potoków MLOps. Na przykład aby przesłać przebiegi względem już opublikowanego potoku:

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>"
    ]
}

Administrator obszaru roboczego

Umożliwia wykonywanie wszystkich operacji w zakresie obszaru roboczego, z wyjątkiem:

  • Tworzenie nowego obszaru roboczego
  • Przypisywanie przydziałów na poziomie subskrypcji lub obszaru roboczego

Administrator obszaru roboczego nie może również utworzyć nowej roli. Może przypisywać istniejące role wbudowane lub niestandardowe tylko w zakresie ich obszaru roboczego:

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>"
    ]
}

Etykietowanie danych

Istnieje wbudowana rola do etykietowania danych w zakresie tylko do etykietowania danych. Następujące role niestandardowe zapewniają innym poziomom dostępu do projektu etykietowania danych.

Lider zespołu ds. etykietowania umożliwia przeglądanie i odrzucanie oznaczonego zestawu danych oraz wyświetlanie szczegółowych informacji dotyczących etykietowania. Oprócz niej ta rola umożliwia również wykonywanie roli labelera.

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>"
    ]
}

Rozwiązywanie problemów

Oto kilka kwestii, o których należy pamiętać podczas korzystania z kontroli dostępu opartej na rolach platformy Azure:

  • Podczas tworzenia zasobu na platformie Azure, takiego jak obszar roboczy, nie jesteś bezpośrednio właścicielem zasobu. Twoja rola jest dziedziczona z roli o najwyższym zakresie, względem której masz autoryzację w tej subskrypcji. Jeśli na przykład jesteś administratorem sieci i masz uprawnienia do tworzenia obszaru roboczego usługi Machine Learning, zostanie przypisana rola Administrator sieci względem tego obszaru roboczego. Nie jest to rola Właściciel .

  • Do wykonywania operacji limitu przydziału w obszarze roboczym potrzebne są uprawnienia na poziomie subskrypcji. Oznacza to, że ustawienie limitu przydziału na poziomie subskrypcji lub limitu przydziału na poziomie obszaru roboczego na potrzeby zarządzanych zasobów obliczeniowych jest możliwe tylko wtedy, gdy masz uprawnienia do zapisu w zakresie subskrypcji.

  • Do wdrożenia w programie Studio potrzebne są elementy Microsoft.Resources/deployments/write AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. W przypadku wdrożeń zestawu SDK/interfejsu wiersza polecenia potrzebne są następujące elementy Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write: . Skontaktuj się z właścicielem obszaru roboczego/grupy zasobów, aby uzyskać dodatkowe uprawnienia.

  • Jeśli istnieją dwa przypisania ról do tego samego użytkownika microsoft Entra z powodu konfliktów sekcji Akcje/NotActions, operacje wymienione w notActions z jednej roli mogą nie obowiązywać, jeśli są one również wymienione jako Akcje w innej roli. Aby dowiedzieć się więcej na temat sposobu analizowania przypisań ról przez platformę Azure, przeczytaj Jak kontrola dostępu na podstawie ról na platformie Azure określa, czy użytkownik ma dostęp do zasobu

  • Czasami może to potrwać do jednej godziny, zanim nowe przypisania ról zaczną obowiązywać zamiast zbuforowanych uprawnień w stosie.