Udostępnij przez


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. Użyj kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby zarządzać dostępem do zasobów platformy Azure. Korzystając z Azure RBAC, możesz zapewnić użytkownikom możliwość tworzenia nowych zasobów lub korzystania z istniejących. Przypisz określone role do użytkowników w identyfikatorze Entra firmy Microsoft, aby udzielić 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 przypisz im 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. Na przykład przyznaj użytkownikowi obszaru roboczego role analityka danych AzureML i operatora obliczeniowego AzureML , aby umożliwić użytkownikowi wykonywanie eksperymentów podczas tworzenia obliczeń w sposób samoobsługowy.

Ważne

Możesz ograniczyć zakres dostępu roli do wielu poziomów na platformie Azure. Na przykład ktoś z uprawnieniami właściciela do obszaru roboczego może nie mieć takich samych uprawnień 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.

Rola administratora sztucznej inteligencji platformy Azure

Przed 2024-11-19 tożsamość zarządzana tworzona przez system dla obszaru roboczego automatycznie otrzymuje rolę Kontrybutor dla grupy zasobów zawierającej obszar roboczy. Obszary robocze utworzone po tej dacie przypisują tożsamość zarządzaną przypisaną przez system do roli administratora usługi Azure AI . Ta rola jest bardziej ograniczona do minimalnych uprawnień wymaganych do wykonania zadań tożsamości zarządzanej.

Rola administratorów sztucznej inteligencji platformy Azure ma następujące uprawnienia:

{
    "permissions": [
        {
            "actions": [
                "Microsoft.Authorization/*/read",
                "Microsoft.CognitiveServices/*",
                "Microsoft.ContainerRegistry/registries/*",
                "Microsoft.DocumentDb/databaseAccounts/*",
                "Microsoft.Features/features/read",
                "Microsoft.Features/providers/features/read",
                "Microsoft.Features/providers/features/register/action",
                "Microsoft.Insights/alertRules/*",
                "Microsoft.Insights/components/*",
                "Microsoft.Insights/diagnosticSettings/*",
                "Microsoft.Insights/generateLiveToken/read",
                "Microsoft.Insights/logDefinitions/read",
                "Microsoft.Insights/metricAlerts/*",
                "Microsoft.Insights/metricdefinitions/read",
                "Microsoft.Insights/metrics/read",
                "Microsoft.Insights/scheduledqueryrules/*",
                "Microsoft.Insights/topology/read",
                "Microsoft.Insights/transactions/read",
                "Microsoft.Insights/webtests/*",
                "Microsoft.KeyVault/*",
                "Microsoft.MachineLearningServices/workspaces/*",
                "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action",
                "Microsoft.ResourceHealth/availabilityStatuses/read",
                "Microsoft.Resources/deployments/*",
                "Microsoft.Resources/deployments/operations/read",
                "Microsoft.Resources/subscriptions/operationresults/read",
                "Microsoft.Resources/subscriptions/read",
                "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                "Microsoft.Resources/subscriptions/resourceGroups/read",
                "Microsoft.Resources/subscriptions/resourceGroups/write",
                "Microsoft.Storage/storageAccounts/*",
                "Microsoft.Support/*",
                "Microsoft.Search/searchServices/write",
                "Microsoft.Search/searchServices/read",
                "Microsoft.Search/searchServices/delete",
                "Microsoft.Search/searchServices/indexes/*",
                "Microsoft.Search/searchServices/listAdminKeys/action",
                "Microsoft.Search/searchServices/privateEndpointConnections/*",
                "Microsoft.DataFactory/factories/*"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

Konwertowanie istniejącej tożsamości zarządzanej przez system na rolę administratora usługi Azure AI

Napiwek

Przekonwertuj obszary robocze utworzone przed 19.11.2024 r. na rolę administratora Azure AI. Rola administratora AI usługi Azure ma węższy zakres niż rola Współautora i jest zgodna z zasadą najmniejszych uprawnień.

Aby przekonwertować obszary robocze utworzone przed 11.19.2024 r., użyj jednej z następujących metod:

  • Interfejs API REST Azure: wyślij PATCH żądanie do interfejsu API REST Azure dla obszaru roboczego. Ustaw treść żądania na {"properties":{"allowRoleAssignmentOnRG":true}}. W poniższym przykładzie pokazano PATCH żądanie przy użyciu curl. Zastąp <your-subscription>wartości , <resource-group-name>, <workspace-name>i <YOUR-ACCESS-TOKEN> wartościami dla danego scenariusza. Aby uzyskać więcej informacji na temat korzystania z interfejsów API REST, zobacz dokumentację interfejsu API REST platformy Azure.

    curl -X PATCH \
    "https://management.azure.com/subscriptions/<your-subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-07-01-preview" \
    -H "Authorization: Bearer <YOUR-ACCESS-TOKEN>" \
    -H "Content-Type: application/json" \
    --data '{"properties":{"allowRoleAssignmentOnRG":true}}'
    

    Dokumentacja: Microsoft.MachineLearningServices/workspaces (2024-07-01-preview)

  • Interfejs wiersza polecenia platformy az ml workspace update Azure: użyj polecenia z parametrem --allow-roleassignment-on-rg true . Poniższy przykład aktualizuje obszar roboczy o nazwie myworkspace. To polecenie wymaga rozszerzenia interfejsu wiersza polecenia usługi Azure Machine Learning w wersji 2.27.0 lub nowszej.

    az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
    
  • Zestaw SDK języka Python platformy Azure: ustaw allow_roleassignment_on_rg właściwość obiektu Workspace na True , a następnie wykonaj operację aktualizacji. Poniższy przykład aktualizuje obszar roboczy o nazwie myworkspace. Ta operacja wymaga zestawu Azure Machine Learning SDK w wersji 1.17.0 lub nowszej.

    ws = ml_client.workspaces.get(name="myworkspace")
    ws.allow_roleassignment_on_rg = True
    ws = ml_client.workspaces.begin_update(workspace=ws).result()
    

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. Ta metoda ma następujące zalety:

  • 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 spełniają Twoich potrzeb, utwórz 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

Aby utworzyć role niestandardowe w ramach zasobu, musisz być właścicielem zasobu na tym poziomie.

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 tylko przykładem. Aby uzyskać więcej przykładów, zobacz niektóre sugerowane role niestandardowe 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 jest 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 i nieakcji), których można używać 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>

Potrzebujesz uprawnień 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 przypisania ról dotyczących zależności uczenia maszynowego pokazuje, jak można określić przypisania ról w kodzie źródłowym do ponownego użycia.

Typowe scenariusze

W poniższej tabeli podsumowano działania 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 /ścieżkami względnymi 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, współautor lub rola niestandardowa pozwalająca na uprawnienia do zapisu dla: Microsoft.Resources/deployments/*, Microsoft.MachineLearningServices/workspaces/write oraz zasobów zależnych (patrz punkt 3 poniżej) 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/artifacts/write/workspaces/metadata/snapshots/write, , /workspaces/environments/build/action/workspaces/experiments/runs/submit/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/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.

  3. Te scenariusze nie obejmują uprawnień wymaganych do tworzenia zasobów zależnych od obszaru roboczego. Aby uzyskać więcej informacji, zobacz uprawnienia do zapisu dla usługi Storage, OperationalInsights, Key Vault i Container Registry.

  4. Podczas dołączania tożsamości zarządzanych przez użytkownika musisz również mieć Microsoft.ManagedIdentity/userAssignedIdentities/assign/action uprawnienia dla tożsamości. Aby uzyskać więcej informacji, zobacz Wbudowane role platformy Azure dla tożsamości.

  5. Podczas określania niestandardowej podsieci obliczeniowej bezserwerowej należy również mieć Microsoft.Network/virtualNetworks/subnets/join/action w sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Uprawnienia platformy Azure dla sieci.

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 interfejsów API w wersji 1 i interfejsami API w wersji 2.

Aktywa Ścieżka akcji dla interfejsu API w wersji 1 Ścieżka akcji dla interfejsu API w wersji 2
Zestaw danych Microsoft.MachineLearningServices/pracownie/zbiory danych Microsoft.MachineLearningServices/workspaces/datasets/versions
Przebiegi eksperymentów i zadania Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Modele Microsoft.MachineLearningServices/obszary robocze/modele Microsoft.MachineLearningServices/workspaces/models/versions
Moduły i składniki Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/przestrzenie robocze/komponenty

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, takie jak Microsoft.MachineLearningServices/workspaces/datasets/*/read.

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

W przypadku korzystania z klucza zarządzanego przez klienta (CMK) usługa Azure Key Vault przechowuje klucz. 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 skonfigurujesz obszar roboczy przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, nadaj tożsamości następujące role. Te role umożliwiają tożsamości zarządzanej tworzenie zasobów usług Azure Storage, Azure Cosmos DB i Azure Search 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 Azure RBAC 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 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 lub 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 jego wersjami, usuwanie określonych wersji zarejestrowanego modelu Microsoft.MachineLearningServices/workspaces/models/*/delete

Przykładowe role niestandardowe

Mistrz danych

Użyj tej roli, aby udzielić analitykowi danych uprawnień do wykonywania 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

Użyj tej roli, aby przyznać bardziej ograniczoną definicję 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 przepływu danych 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

Ta rola umożliwia wykonywanie wszystkich obsługiwanych operacji MLflow w usłudze Azure Machine Learning z wyjątkiem:

  • Tworzenie zasobów obliczeniowych.
  • Wdrażanie modeli do produkcyjnego klastra 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

Przypisz tę rolę do podmiotu zabezpieczeń, aby zautomatyzować przepływy MLOps. Na przykład, użyj tej funkcji do przeprowadzania uruchomień w kontekście już opublikowanego pipeline'u.

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/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

Ta rola służy do wykonywania 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 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

Platforma Azure udostępnia wbudowaną rolę do etykietowania danych, która jest ograniczona 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

Podczas korzystania z kontroli dostępu opartej na rolach platformy Azure należy pamiętać o następujących kwestiach:

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

  • Do wykonywania operacji limitu przydziału w obszarze roboczym potrzebne są uprawnienia na poziomie subskrypcji. To wymaganie oznacza, że tylko użytkownicy z uprawnieniami do zapisu w zakresie subskrypcji mogą ustawić limit przydziału na poziomie subskrypcji lub limit przydziału na poziomie obszaru roboczego dla zarządzanych zasobów obliczeniowych.

  • Do wdrożenia w programie Studio potrzebne są elementy Microsoft.Resources/deployments/write i 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 lub grupy zasobów, aby uzyskać dodatkowe uprawnienia.

  • Jeśli istnieją dwa przypisania ról do tego samego użytkownika Microsoft Entra z konfliktowymi sekcjami Akcje i 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 analizowania przypisań ról przez platformę Azure, zobacz Jak kontrola dostępu oparta na rolach platformy 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.

Przywróć rolę Współautor

Jeśli utworzysz nowy obszar roboczy i wystąpią błędy związane z nowym domyślnym przypisaniem roli administratora usługi Azure AI dla tożsamości zarządzanej obszaru roboczego, wykonaj następujące kroki, aby przywrócić rolę Współautor:

Ważne

Nie wracaj do roli Współautora, chyba że wystąpią problemy. Jeśli przywrócenie obszaru roboczego rozwiąże problemy, które napotykasz, zgłoś incydent wsparcia technicznego z informacjami na temat problemów, które zostały rozwiązane, aby zespół produktowy mógł zbadać sprawę dokładniej.

Jeśli chcesz przywrócić rolę Współautor jako domyślną dla nowych obszarów roboczych, otwórz wniosek o pomoc techniczną ze szczegółami subskrypcji platformy Azure i poproś o zmianę subskrypcji w celu użycia roli Współautor jako domyślnej tożsamości zarządzanej przypisanej przez system nowych obszarów roboczych.

  1. Usuń przypisanie roli dla tożsamości zarządzanej obszaru roboczego. Zakresem tego przypisania roli jest grupa zasobów zawierająca obszar roboczy, więc musisz usunąć rolę z grupy zasobów.

    Napiwek

    Tożsamość zarządzana przypisana przez system dla obszaru roboczego jest taka sama jak nazwa obszaru roboczego.

    W witrynie Azure Portal przejdź do grupy zasobów zawierającej obszar roboczy. Wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami), a następnie wybierz pozycję Przypisania ról. Na liście przypisań ról znajdź przypisanie roli dla tożsamości zarządzanej. Wybierz ją, a następnie wybierz pozycję Usuń.

    Aby uzyskać informacje na temat usuwania przypisania roli, zobacz Usuwanie przypisań ról.

  2. Utwórz nowe przypisanie roli w grupie zasobów dla roli Współautor. Po dodaniu tego przypisania roli wybierz tożsamość zarządzaną dla obszaru roboczego jako przypisanego. Nazwa przypisanej przez system tożsamości zarządzanej jest taka sama jak nazwa obszaru roboczego.

    1. W witrynie Azure Portal przejdź do grupy zasobów zawierającej obszar roboczy. Wybierz opcję Kontrola dostępu (IAM), a następnie wybierz opcję Dodaj przypisanie roli.
    2. Na karcie Rola wybierz pozycję Współautor.
    3. Na karcie Członkowie wybierz pozycję Tożsamość zarządzana, + Wybierz członków i ustaw listę rozwijaną Tożsamość zarządzana na obszar roboczy usługi Azure Machine Learning. Jeśli obszar roboczy jest obszarem roboczym centrum, zamiast tego wybierz pozycję Centrum sztucznej inteligencji platformy Azure. W polu Wybierz wprowadź nazwę obszaru roboczego. Wybierz obszar roboczy z listy, a następnie wybierz pozycję Wybierz.
    4. Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz.