Azure Machine Learning 작업 영역에 대한 액세스 관리Manage access to an Azure Machine Learning workspace

이 문서에서는 Azure Machine Learning 작업 영역에 대 한 액세스 (권한 부여)를 관리 하는 방법에 대해 알아봅니다.In this article, you learn how to manage access (authorization) to an Azure Machine Learning workspace. Azure RBAC (역할 기반 액세스 제어) 는 새 리소스를 만들거나 기존 리소스를 사용 하는 기능과 같은 azure 리소스에 대 한 액세스를 관리 하는 데 사용 됩니다.Azure role-based access control (Azure RBAC) is used to manage access to Azure resources, such as the ability to create new resources or use existing ones. Azure AD (Azure Active Directory)의 사용자에 게는 리소스에 대 한 액세스 권한을 부여 하는 특정 역할이 할당 됩니다.Users in your Azure Active Directory (Azure AD) are assigned specific roles, which grant access to resources. Azure는 기본 제공 역할 및 사용자 지정 역할을 만드는 기능을 모두 제공 합니다.Azure provides both built-in roles and the ability to create custom roles.

이 문서에서는 Azure Machine Learning에 중점을 둔 반면, Azure ML에 의존 하는 개별 서비스는 자체 RBAC 설정을 제공 합니다.While this article focuses on Azure Machine Learning, individual services that Azure ML relies on provide their own RBAC settings. 예를 들어이 문서의 정보를 사용 하 여 Azure Kubernetes Service에서 웹 서비스로 배포 된 모델에 점수 매기기 요청을 제출할 수 있는 사람을 구성할 수 있습니다.For example, using the information in this article, you can configure who can submit scoring requests to a model deployed as a web service on Azure Kubernetes Service. 그러나 Azure Kubernetes Service는 자체 Azure 역할 집합을 제공 합니다.But Azure Kubernetes Service provides its own set of Azure roles. Azure Machine Learning에 유용할 수 있는 서비스별 RBAC 정보는 다음 링크를 참조 하세요.For service specific RBAC information that may be useful with Azure Machine Learning, see the following links:

경고

일부 역할을 적용 하면 Azure Machine Learning studio에서 다른 사용자에 대 한 UI 기능이 제한 될 수 있습니다.Applying some roles may limit UI functionality in Azure Machine Learning studio for other users. 예를 들어 사용자의 역할에 계산 인스턴스를 만들 수 있는 권한이 없는 경우에는 계산 인스턴스를 만드는 옵션을 스튜디오에서 사용할 수 없습니다.For example, if a user's role does not have the ability to create a compute instance, the option to create a compute instance will not be available in studio. 이 동작은 예상 된 것 이며, 사용자가 액세스 거부 오류를 반환 하는 작업을 시도 하지 못하도록 합니다.This behavior is expected, and prevents the user from attempting operations that would return an access denied error.

기본 역할Default roles

Azure Machine Learning 작업 영역은 Azure 리소스입니다.An Azure Machine Learning workspace is an Azure resource. 다른 Azure 리소스와 마찬가지로 새 Azure Machine Learning 작업 영역을 만들 때 세 가지 기본 역할이 제공됩니다.Like other Azure resources, when a new Azure Machine Learning workspace is created, it comes with three default roles. 사용자를 작업 영역에 추가 하 고 이러한 기본 제공 역할 중 하나에 할당할 수 있습니다.You can add users to the workspace and assign them to one of these built-in roles.

역할Role 액세스 수준Access level
판독기Reader 작업 영역의 읽기 전용 작업입니다.Read-only actions in the workspace. 독자는 작업 영역에서 데이터 저장소 자격 증명을 포함 하 여 자산을 나열 하 고 볼 수 있습니다.Readers can list and view assets, including datastore credentials, in a workspace. 판독기는 이러한 자산을 만들거나 업데이트할 수 없습니다.Readers can't create or update these assets.
기여자Contributor 작업 영역에서 자산을 보거나, 만들거나, 편집 하거나, 삭제 합니다 (해당 하는 경우).View, create, edit, or delete (where applicable) assets in a workspace. 예를 들어 기여자는 실험을 만들고, 컴퓨팅 클러스터를 만들거나 연결하고, 실행을 제출하고, 웹 서비스를 배포할 수 있습니다.For example, contributors can create an experiment, create or attach a compute cluster, submit a run, and deploy a web service.
소유자Owner 작업 영역에 대 한 모든 액세스 권한 (해당 하는 경우)을 확인, 생성, 편집 또는 삭제 (해당 하는 경우) 하는 기능을 포함 하 여 작업 영역에서.Full access to the workspace, including the ability to view, create, edit, or delete (where applicable) assets in a workspace. 또한 역할 할당을 변경할 수 있습니다.Additionally, you can change role assignments.
사용자 지정 역할Custom Role 작업 영역 내에서 특정 컨트롤이 나 데이터 평면 작업에 대 한 액세스를 사용자 지정할 수 있습니다.Allows you to customize access to specific control or data plane operations within a workspace. 예를 들어 실행을 제출 하 고, 계산을 생성 하 고, 모델을 배포 하거나, 데이터 집합을 등록 합니다.For example, submitting a run, creating a compute, deploying a model or registering a dataset.

중요

Azure에서 역할 액세스의 범위를 여러 수준으로 지정할 수 있습니다.Role access can be scoped to multiple levels in Azure. 예를 들어 작업 영역에 대 한 소유자 액세스 권한이 있는 사용자에 게는 작업 영역을 포함 하는 리소스 그룹에 대 한 소유자 액세스 권한이 없을 수 있습니다.For example, someone with owner access to a workspace may not have owner access to the resource group that contains the workspace. 자세한 내용은 AZURE RBAC 작동 방식을 참조 하세요.For more information, see How Azure RBAC works.

현재 Azure Machine Learning와 관련 된 추가 기본 제공 역할은 없습니다.Currently there are no additional built-in roles that are specific to Azure Machine Learning. 기본 제공 역할에 대 한 자세한 내용은 Azure 기본 제공 역할을 참조 하세요.For more information on built-in roles, see Azure built-in roles.

작업 영역 액세스 관리Manage workspace access

작업 영역의 소유자 인 경우 작업 영역에 대 한 역할을 추가 하 고 제거할 수 있습니다.If you're an owner of a workspace, you can add and remove roles for the workspace. 또한 사용자에 게 역할을 할당할 수 있습니다.You can also assign roles to users. 다음 링크를 사용 하 여 액세스를 관리 하는 방법을 알아봅니다.Use the following links to discover how to manage access:

AZURE MACHINE LEARNING cli를 설치한 경우 cli 명령을 사용 하 여 사용자에 게 역할을 할당할 수 있습니다.If you have installed the Azure Machine Learning CLI, you can use CLI commands to assign roles to users:

az ml workspace share -w <workspace_name> -g <resource_group_name> --role <role_name> --user <user_corp_email_address>

user필드는 작업 영역 부모 구독이 있는 Azure Active Directory 인스턴스에 있는 기존 사용자의 전자 메일 주소입니다.The user field is the email address of an existing user in the instance of Azure Active Directory where the workspace parent subscription lives. 다음은이 명령을 사용 하는 방법의 예입니다.Here is an example of how to use this command:

az ml workspace share -w my_workspace -g my_resource_group --role Contributor --user jdoe@contoson.com

참고

"az ml workspace share" 명령은 Azure Active Directory B2B에서 페더레이션된 계정에 대해 작동 하지 않습니다."az ml workspace share" command does not work for federated account by Azure Active Directory B2B. 명령 대신 Azure UI 포털을 사용 하세요.Please use Azure UI portal instead of command.

사용자 지정 역할 만들기Create custom role

기본 제공 역할이 충분하지 않은 경우 사용자 지정 역할을 만들 수 있습니다.If the built-in roles are insufficient, you can create custom roles. 사용자 지정 역할에는 해당 작업 영역에 대 한 읽기, 쓰기, 삭제 및 계산 리소스 권한이 있을 수 있습니다.Custom roles might have read, write, delete, and compute resource permissions in that workspace. 특정 작업 영역 수준, 특정 리소스 그룹 수준 또는 특정 구독 수준에서 역할을 사용 하도록 설정할 수 있습니다.You can make the role available at a specific workspace level, a specific resource group level, or a specific subscription level.

참고

해당 리소스 내에서 사용자 지정 역할을 만들려면 해당 수준의 리소스 소유자 여야 합니다.You must be an owner of the resource at that level to create custom roles within that resource.

사용자 지정 역할을 만들려면 먼저 역할에 대 한 사용 권한 및 범위를 지정 하는 역할 정의 JSON 파일을 생성 합니다.To create a custom role, first construct a role definition JSON file that specifies the permission and scope for the role. 다음 예제에서는 특정 작업 영역 수준에서 범위가 "Data 과학자 Custom" 인 사용자 지정 역할을 정의 합니다.The following example defines a custom role named "Data Scientist Custom" scoped at a specific workspace level:

data_scientist_custom_role.json :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/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace_name>"
    ]
}

필드를 변경 AssignableScopes 하 여 구독 수준, 리소스 그룹 수준 또는 특정 작업 영역 수준에서이 사용자 지정 역할의 범위를 설정할 수 있습니다.You can change the AssignableScopes field to set the scope of this custom role at the subscription level, the resource group level, or a specific workspace level. 위의 사용자 지정 역할은 예를 들어 Azure Machine Learning 서비스에 대 한몇 가지 제안 된 사용자 지정 역할을 참조 하세요.The above custom role is just an example, see some suggested custom roles for the Azure Machine Learning service.

이 사용자 지정 역할은 다음 작업을 제외 하 고 작업 영역에서 모든 작업을 수행할 수 있습니다.This custom role can do everything in the workspace except for the following actions:

  • 계산 리소스를 만들거나 업데이트할 수 없습니다.It can't create or update a compute resource.
  • 계산 리소스를 삭제할 수 없습니다.It can't delete a compute resource.
  • 역할 할당을 추가, 삭제 또는 변경할 수 없습니다.It can't add, delete, or alter role assignments.
  • 작업 영역을 삭제할 수 없습니다.It can't delete the workspace.

이 사용자 지정 역할을 배포 하려면 다음 Azure CLI 명령을 사용 합니다.To deploy this custom role, use the following Azure CLI command:

az role definition create --role-definition data_scientist_role.json

배포 후에이 역할은 지정 된 작업 영역에서 사용할 수 있게 됩니다.After deployment, this role becomes available in the specified workspace. 이제 Azure Portal에서이 역할을 추가 하 고 할당할 수 있습니다.Now you can add and assign this role in the Azure portal. 또는 CLI 명령을 사용 하 여 사용자에 게이 역할을 할당할 수 있습니다 az ml workspace share .Or, you can assign this role to a user by using the az ml workspace share CLI command:

az ml workspace share -w my_workspace -g my_resource_group --role "Data Scientist" --user jdoe@contoson.com

사용자 지정 역할에 대 한 자세한 내용은 Azure 사용자 지정 역할을 참조 하세요.For more information on custom roles, see Azure custom roles.

Azure Machine Learning 작업Azure Machine Learning operations

사용자 지정 역할과 함께 사용할 수 있는 작업 (작업 및 작업 아님)에 대 한 자세한 내용은 리소스 공급자 작업을 참조 하세요.For more information on the operations (actions and not actions) usable with custom roles, see Resource provider operations. 다음 Azure CLI 명령을 사용 하 여 작업을 나열할 수도 있습니다.You can also use the following Azure CLI command to list operations:

az provider operation show –n Microsoft.MachineLearningServices

사용자 지정 역할 나열List custom roles

Azure CLI에서 다음 명령을 실행 합니다.In the Azure CLI, run the following command:

az role definition list --subscription <sub-id> --custom-role-only true

특정 사용자 지정 역할에 대 한 역할 정의를 보려면 다음 Azure CLI 명령을 사용 합니다.To view the role definition for a specific custom role, use the following Azure CLI command. <role-name> 위의 명령에서 반환 된 것과 동일한 형식 이어야 합니다.The <role-name> should be in the same format returned by the command above:

az role definition list -n <role-name> --subscription <sub-id>

사용자 지정 역할 업데이트Update a custom role

Azure CLI에서 다음 명령을 실행 합니다.In the Azure CLI, run the following command:

az role definition update --role-definition update_def.json --subscription <sub-id>

새 역할 정의의 전체 범위에 대 한 사용 권한이 있어야 합니다.You need to have permissions on the entire scope of your new role definition. 예를 들어이 새 역할에 세 개의 구독에 대 한 범위가 있는 경우 세 구독 모두에 대 한 사용 권한이 있어야 합니다.For example if this new role has a scope across three subscriptions, you need to have permissions on all three subscriptions.

참고

역할 업데이트는 해당 범위의 모든 역할 할당에 적용 되는 데 15 분에서 1 시간 정도 걸릴 수 있습니다.Role updates can take 15 minutes to an hour to apply across all role assignments in that scope.

반복성에 대 한 Azure Resource Manager 템플릿 사용Use Azure Resource Manager templates for repeatability

복잡 한 역할 할당을 다시 만들어야 하는 것으로 예상 되는 경우 Azure Resource Manager 템플릿이 큰 도움이 될 수 있습니다.If you anticipate that you will need to recreate complex role assignments, an Azure Resource Manager template can be a big help. 201-기계 학습-종속성-역할 할당 템플릿은 다시 사용 하기 위해 소스 코드에서 역할 할당을 지정 하는 방법을 보여 줍니다.The 201-machine-learning-dependencies-role-assignment template shows how role assignments can be specified in source code for reuse.

일반적인 시나리오Common scenarios

다음 표에는 Azure Machine Learning 작업에 대 한 요약과 최소 범위에서 작업을 수행 하는 데 필요한 사용 권한이 정리 되어 있습니다.The following table is a summary of Azure Machine Learning activities and the permissions required to perform them at the least scope. 예를 들어 작업 영역 범위 (열 4)를 사용 하 여 작업을 수행할 수 있는 경우 해당 사용 권한을 가진 상위 범위가 모두 자동으로 적용 됩니다.For example, if an activity can be performed with a workspace scope (Column 4), then all higher scope with that permission will also work automatically:

중요

이 테이블에서로 시작 하는 모든 경로 / 는 다음에 대 한 상대 경로 입니다 Microsoft.MachineLearningServices/ .All paths in this table that start with / are relative paths to Microsoft.MachineLearningServices/ :

활동Activity 구독 수준 범위Subscription-level scope 리소스 그룹 수준 범위Resource group-level scope 작업 영역 수준 범위Workspace-level scope
새 작업 영역 만들기Create new workspace 필요 없음Not required 소유자 또는 참가자Owner or contributor 해당 없음 (소유자가 되거나 생성 후 상위 범위 역할 상속)N/A (becomes Owner or inherits higher scope role after creation)
구독 수준 Amlcompute 할당량을 요청 하거나 작업 영역 수준 할당량을 설정 합니다.Request subscription level Amlcompute quota or set workspace level quota 소유자, 참가자 또는 사용자 지정 역할Owner, or contributor, or custom role
있어 /locations/updateQuotas/actionallowing /locations/updateQuotas/action
구독 범위at subscription scope
권한 없음Not Authorized 권한 없음Not Authorized
새 계산 클러스터 만들기Create new compute cluster 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
새 계산 인스턴스 만들기Create new compute instance 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
모든 유형의 실행 제출Submitting any type of run 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: "/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"Owner, contributor, or custom role allowing: "/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"
파이프라인 및 끝점 게시Publishing pipelines and endpoints 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"Owner, contributor, or custom role allowing: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"
AKS/ACI 리소스에 등록 된 모델 배포Deploying a registered model on an AKS/ACI resource 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: "/workspaces/services/aks/write", "/workspaces/services/aci/write"Owner, contributor, or custom role allowing: "/workspaces/services/aks/write", "/workspaces/services/aci/write"
배포 된 AKS 끝점에 대 한 점수 매기기Scoring against a deployed AKS endpoint 필요 없음Not required 필요 없음Not required 허용 되는 소유자, 참가자 또는 사용자 지정 역할: "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (Azure Active Directory auth를 사용 하지 않는 경우) 또는 "/workspaces/read" (토큰 인증을 사용 하는 경우)Owner, contributor, or custom role allowing: "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (when you are not using Azure Active Directory auth) OR "/workspaces/read" (when you are using token auth)
대화형 전자 필기장을 사용 하 여 저장소 액세스Accessing storage using interactive notebooks 필요 없음Not required 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: "/workspaces/computes/read", "/workspaces/notebooks/samples/read", "/workspaces/notebooks/storage/*", "/workspaces/listKeys/action"Owner, contributor, or custom role allowing: "/workspaces/computes/read", "/workspaces/notebooks/samples/read", "/workspaces/notebooks/storage/*", "/workspaces/listKeys/action"
새 사용자 지정 역할 만들기Create new custom role 허용 되는 소유자, 참가자 또는 사용자 지정 역할 Microsoft.Authorization/roleDefinitions/writeOwner, contributor, or custom role allowing Microsoft.Authorization/roleDefinitions/write 필요 없음Not required 다음을 허용 하는 소유자, 참가자 또는 사용자 지정 역할: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write

작업 영역을 처음 만들 때 오류가 발생 하는 경우 역할에서을 허용 하는지 확인 Microsoft.MachineLearningServices/register/action 합니다.If you receive a failure when trying to create a workspace for the first time, make sure that your role allows Microsoft.MachineLearningServices/register/action. 이 작업을 통해 Azure 구독에 Azure Machine Learning 리소스 공급자를 등록할 수 있습니다.This action allows you to register the Azure Machine Learning resource provider with your Azure subscription.

Azure ML 계산 클러스터를 사용 하 여 사용자 할당 관리 idUser-assigned managed identity with Azure ML compute cluster

사용자 할당 id를 Azure Machine Learning 계산 클러스터에 할당 하려면 계산 및 관리 Id 운영자 역할을 만들기 위한 쓰기 권한이 필요 합니다.To assign a user assigned identity to an Azure Machine Learning compute cluster, you need write permissions to create the compute and the Managed Identity Operator Role. 관리 Id를 사용 하는 Azure RBAC에 대 한 자세한 내용은 사용자 할당 id를 관리 하는 방법 을 참조 하세요.For more information on Azure RBAC with Managed Identities, read How to manage user assigned identity

MLflow 작업MLflow operations

Azure Machine Learning 작업 영역을 사용 하 여 MLflow 작업을 수행 하려면 사용자 지정 역할에 다음 범위를 사용 합니다.To perform MLflow operations with your Azure Machine Learning workspace, use the following scopes your custom role:

MLflow 작업MLflow operation 범위Scope
작업 영역 추적 저장소의 모든 실험을 나열 하 고, id로 실험을 가져오고, 이름별로 실험을 가져옵니다.List all experiments in the workspace tracking store, get an experiment by id, get an experiment by name Microsoft.MachineLearningServices/workspaces/experiments/read
이름으로 실험을 만들고, 실험에서 태그를 설정 하 고, 삭제 하도록 표시 된 실험을 복원 합니다.Create an experiment with a name , set a tag on an experiment, restore an experiment marked for deletion Microsoft.MachineLearningServices/workspaces/experiments/write
실험 삭제Delete an experiment Microsoft.MachineLearningServices/workspaces/experiments/delete
실행 및 관련 데이터 및 메타 데이터를 가져오고, 지정 된 실행에 대해 지정 된 메트릭에 대 한 모든 값의 목록을 가져오고, 실행에 대 한 아티팩트를 나열 합니다.Get a run and related data and metadata, get a list of all values for the specified metric for a given run, list artifacts for a run Microsoft.MachineLearningServices/workspaces/experiments/runs/read
실험 내에서 새 실행을 만들고, 실행을 삭제 하 고, 삭제 된 실행을 복원 하 고, 현재 실행에 대 한 태그를 설정 하 고, 실행에 사용 되는 실행에 대 한 태그를 삭제 하 고, 실행에 사용 되는 로그 매개 변수 (키-값 쌍)를 삭제 합니다.Create a new run within an experiment, delete runs, restore deleted runs, log metrics under the current run, set tags on a run, delete tags on a run, log params (key-value pair) used for a run, log a batch of metrics, params, and tags for a run, update run status Microsoft.MachineLearningServices/workspaces/experiments/runs/write
이름으로 등록 된 모델을 가져오고, 레지스트리에서 등록 된 모든 모델의 목록을 가져오고, 등록 된 모델을 검색 하 고, 각 요청에 대 한 최신 버전 모델을 검색 하 고, 등록 된 모델 버전을 가져오고, 모델 버전을 검색 하 고, 모델 버전의 아티팩트가 저장 된 URI를 가져오고, 실험 id로 실행을 검색 합니다.Get registered model by name, fetch a list of all registered models in the registry, search for registered models, latest version models for each requests stage, get a registered model’s version, search model versions, get URI where a model version’s artifacts are stored, search for runs by experiment ids Microsoft.MachineLearningServices/workspaces/models/read
새 등록 된 모델 만들기, 등록 된 모델의 이름/설명 업데이트, 기존 등록 된 모델 이름 바꾸기, 새 버전의 모델 만들기, 모델 버전 설명 업데이트, 등록 된 모델을 단계 중 하나로 전환Create a new registered model, update a registered model’s name/description, rename existing registered model, create new version of the model, update a model version’s description, transition a registered model to one of the stages Microsoft.MachineLearningServices/workspaces/models/write
등록 된 모델을 모든 버전과 함께 삭제 하 고 등록 된 모델의 특정 버전을 삭제 합니다.Delete a registered model along with all its version, delete specific versions of a registered model Microsoft.MachineLearningServices/workspaces/models/delete

사용자 지정 역할 예제Example custom roles

데이터 과학자Data scientist

데이터 과학자가 다음을 제외 하 고 작업 영역 내의 모든 작업을 수행할 수 있습니다.Allows a data scientist to perform all operations inside a workspace except:

  • 계산 만들기Creation of compute
  • 프로덕션 AKS 클러스터에 모델 배포Deploying models to a production AKS cluster
  • 프로덕션 환경에 파이프라인 끝점 배포Deploying a pipeline endpoint in production

data_scientist_custom_role.json :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/<subscription_id>"
    ]
}

데이터 과학자 제한 됨Data scientist restricted

허용 되는 작업에 와일드 카드가 없는 더 제한적인 역할 정의입니다.A more restricted role definition without wildcards in the allowed actions. 다음을 제외 하 고 작업 영역 내에서 모든 작업을 수행할 수 있습니다.It can perform all operations inside a workspace except:

  • 계산 만들기Creation of compute
  • 프로덕션 AKS 클러스터에 모델 배포Deploying models to a production AKS cluster
  • 프로덕션 환경에 파이프라인 끝점 배포Deploying a pipeline endpoint in production

data_scientist_restricted_custom_role.json :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/read",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/notebooks/samples/read",
        "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/datasets/registered/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/delete",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/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/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/<subscription_id>"
    ]
}

MLflow 데이터 과학자MLflow data scientist

데이터 과학자가 다음을 제외한 모든 Mlflow AzureML 지원 작업을 수행할 수 있도록 허용 합니다.Allows a data scientist to perform all MLflow AzureML supported operations except:

  • 계산 만들기Creation of compute
  • 프로덕션 AKS 클러스터에 모델 배포Deploying models to a production AKS cluster
  • 프로덕션 환경에 파이프라인 끝점 배포Deploying a pipeline endpoint in production

mlflow_data_scientist_custom_role.json :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/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/models/read",
        "Microsoft.MachineLearningServices/workspaces/models/write",
        "Microsoft.MachineLearningServices/workspaces/models/delete"
    ],
    "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/<subscription_id>"
    ]
}

MLOpsMLOps

를 사용 하면 서비스 주체에 역할을 할당 하 고이를 사용 하 여 MLOps 파이프라인을 자동화할 수 있습니다.Allows you to assign a role to a service principal and use that to automate your MLOps pipelines. 예를 들어 이미 게시 된 파이프라인에 대해 실행을 제출 하려면 다음을 수행 합니다.For example, to submit runs against an already published pipeline:

mlops_custom_role.json :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/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/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/<subscription_id>"
    ]
}

작업 영역 관리자Workspace Admin

다음을 제외 하 고 작업 영역 범위 내에서 모든 작업을 수행할 수 있습니다.Allows you to perform all operations within the scope of a workspace, except:

  • 새 작업 영역 만들기Creating a new workspace
  • 구독 또는 작업 영역 수준 할당량 할당Assigning subscription or workspace level quotas

작업 영역 관리자도 새 역할을 만들 수 없습니다.The workspace admin also cannot create a new role. 작업 영역의 범위 내에서 기존 기본 제공 또는 사용자 지정 역할만 할당할 수 있습니다.It can only assign existing built-in or custom roles within the scope of their workspace:

workspace_admin_custom_role.json :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/<subscription_id>"
    ]
}

데이터 레이블 erData labeler

데이터 레이블 지정 전용으로 지정 된 역할을 정의할 수 있습니다.Allows you to define a role scoped only to labeling data:

labeler_custom_role.json :labeler_custom_role.json :

{
    "Name": "Labeler Custom",
    "IsCustom": true,
    "Description": "Can label data for Labeling",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

문제 해결Troubleshooting

Azure RBAC (역할 기반 액세스 제어)를 사용 하는 동안 알아야 할 몇 가지 사항은 다음과 같습니다.Here are a few things to be aware of while you use Azure role-based access control (Azure RBAC):

  • 작업 영역과 같은 Azure에서 리소스를 만들 때 리소스 소유자가 아닙니다.When you create a resource in Azure, such as a workspace, you are not directly the owner of the resource. 사용자의 역할은 해당 구독에 대해 권한이 부여 된 가장 높은 범위 역할에서 상속 됩니다.Your role is inherited from the highest scope role that you are authorized against in that subscription. 예를 들어 네트워크 관리자이 고 Machine Learning 작업 영역을 만들 수 있는 권한이 있는 경우 소유자 역할이 아니라 해당 작업 영역에 대 한 네트워크 관리자 역할이 할당 됩니다.As an example if you are a Network Administrator, and have the permissions to create a Machine Learning workspace, you would be assigned the Network Administrator role against that workspace, and not the Owner role.

  • 작업 영역에서 할당량 작업을 수행 하려면 구독 수준 사용 권한이 필요 합니다.To perform quota operations in a workspace, you need subscription level permissions. 즉, 구독 범위에서 쓰기 권한이 있는 경우에만 관리 되는 계산 리소스에 대 한 구독 수준 할당량 또는 작업 영역 수준 할당량 설정이 발생할 수 있습니다.This means setting either subscription level quota or workspace level quota for your managed compute resources can only happen if you have write permissions at the subscription scope.

  • 작업/NotActions의 충돌 하는 섹션을 사용 하 여 동일한 Azure Active Directory 사용자에 게 두 개의 역할 할당이 있는 경우 한 역할의 NotActions에 나열 된 작업은 다른 역할에서 작업으로 나열 되는 경우 적용 되지 않을 수 있습니다.When there are two role assignments to the same Azure Active Directory user with conflicting sections of Actions/NotActions, your operations listed in NotActions from one role might not take effect if they are also listed as Actions in another role. Azure에서 역할 할당을 구문 분석 하는 방법에 대 한 자세한 내용은 AZURE RBAC에서 사용자에 게 리소스 액세스 권한이 있는지 확인 하는 방법 을 참조 하세요.To learn more about how Azure parses role assignments, read How Azure RBAC determines if a user has access to a resource

  • VNet 내에서 계산 리소스를 배포 하려면 다음 작업에 대 한 권한을 명시적으로 부여 해야 합니다.To deploy your compute resources inside a VNet, you need to explicitly have permissions for the following actions:

    • Microsoft.Network/virtualNetworks/*/read VNet 리소스에서.Microsoft.Network/virtualNetworks/*/read on the VNet resources.
    • Microsoft.Network/virtualNetworks/subnet/join/action 서브넷 리소스에 있습니다.Microsoft.Network/virtualNetworks/subnet/join/action on the subnet resource.

    네트워킹에 대 한 Azure RBAC에 대 한 자세한 내용은 네트워킹 기본 제공 역할을 참조 하세요.For more information on Azure RBAC with networking, see the Networking built-in roles.

  • 경우에 따라 새 역할 할당이 스택에서 캐시 된 사용 권한에 적용 되는 데 최대 1 시간이 걸릴 수 있습니다.It can sometimes take up to 1 hour for your new role assignments to take effect over cached permissions across the stack.

  • 현재 Azure Machine Learning에서는 조건부 액세스가 지원 되지 않습니다.Conditional access is currently not supported with Azure Machine Learning.

다음 단계Next steps