다음을 통해 공유


Azure Machine Learning 작업 영역에 대한 액세스 관리

이 문서에서는 Azure Machine Learning 작업 영역에 대한 액세스(권한 부여)를 관리하는 방법을 설명합니다. Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 Azure 리소스에 대한 액세스를 관리함으로써 사용자에게 새 리소스를 만들거나 기존 리소스를 사용할 수 있는 기능을 제공할 수 있습니다. Microsoft Entra ID의 사용자에게는 리소스에 대한 액세스 권한을 부여하는 특정 역할이 할당됩니다. Azure는 기본 제공 역할과 사용자 지정 역할을 만드는 기능을 모두 제공합니다.

이 문서에서는 Azure Machine Learning에 중점을 두지만 개별 서비스는 자체 RBAC 설정을 제공합니다. 예를 들어 이 문서의 정보를 사용하여 누가 Azure Kubernetes Service의 웹 서비스로 배포된 모델에 채점 요청을 제출할 수 있는지 구성할 수 있습니다. 그러나 Azure Kubernetes Service는 자체 Azure 역할 세트를 제공합니다. Azure Machine Learning에 유용할 수 있는 서비스별 RBAC 정보는 다음 링크를 참조하세요.

Warning

일부 역할을 적용하면 다른 사용자에 대해 Azure Machine Learning 스튜디오의 UI 기능이 제한될 수 있습니다. 예를 들어, 사용자의 역할에 컴퓨팅 인스턴스를 만들 수 있는 기능이 없으면 스튜디오에서 컴퓨팅 인스턴스를 만드는 옵션을 사용할 수 없습니다. 이 동작은 예상된 것이며, 사용자가 액세스 거부 오류를 반환하는 작업을 시도하지 못하게 합니다.

기본 역할

Azure Machine Learning 작업 영역에는 기본적으로 사용할 수 있는 기본 제공 역할이 있습니다. 작업 영역에 사용자를 추가할 때 다음 역할 중 하나를 할당할 수 있습니다.

역할 액세스 수준
AzureML 데이터 과학자 컴퓨팅 리소스를 만들거나 삭제하고 작업 영역 자체를 수정하는 것을 제외하고 Azure Machine Learning 작업 영역에서 모든 작업을 수행할 수 있습니다.
AzureML Compute 연산자 작업 영역 내에서 컴퓨팅 리소스를 만들고, 관리하고, 삭제하고, 액세스할 수 있습니다.
판독기 작업 영역의 읽기 전용 작업입니다. 읽기 권한자는 작업 영역에서 데이터 저장소 자격 증명을 포함한 자산을 나열하고 볼 수 있습니다. 읽기 권한자는 이러한 자산을 만들거나 업데이트할 수 없습니다.
기여자 작업 영역에서 해당하는 자산을 보거나, 만들거나, 편집하거나, 삭제합니다. 예를 들어 기여자는 실험을 만들고, 컴퓨팅 클러스터를 만들거나 연결하고, 실행을 제출하고, 웹 서비스를 배포할 수 있습니다.
담당자 작업 영역에 대한 모든 액세스 권한(작업 영역에서 해당하는 자산을 보거나, 만들거나, 편집하거나, 삭제하는 기능 포함)입니다. 또한 역할 할당을 변경할 수 있습니다.

또한 Azure Machine Learning 레지스트리에는 데이터 과학자에게 사용자 수준 권한을 부여하기 위해 레지스트리 리소스에 할당할 수 있는 Azure Machine Learning 레지스트리 사용자 역할이 있습니다. 레지스트리를 만들거나 삭제할 수 있는 관리자 수준 권한의 경우 기여자 또는 소유자 역할을 사용합니다.

역할 액세스 수준
AzureML 레지스트리 사용자 레지스트리를 가져와서 해당 내의 자산을 읽고, 쓰고, 삭제할 수 있습니다. 새 레지스트리 리소스를 만들거나 삭제할 수 없습니다.

역할을 결합하여 다양한 수준의 액세스 권한을 부여할 수 있습니다. 예를 들어 작업 영역 사용자에게 AzureML Data ScientistAzureML Compute Operator 역할을 모두 부여하여 사용자가 셀프 서비스 방식으로 컴퓨팅을 생성하는 동안 실험을 수행하도록 할 수 있습니다.

Important

Azure에서 여러 수준으로 역할 액세스의 범위를 지정할 수 있습니다. 예를 들어 작업 영역에 대한 소유자 액세스 권한이 있는 사용자에게 작업 영역을 포함하는 리소스 그룹에 대한 소유자 액세스 권한이 없을 수 있습니다. 자세한 내용은 Azure RBAC 작동 방식을 참조하세요.

작업 영역 액세스 관리

작업 영역의 소유자인 경우 작업 영역에 대한 역할을 추가하고 제거할 수 있습니다. 또한 사용자에게 역할을 할당할 수 있습니다. 다음 링크를 사용하여 액세스를 관리하는 방법을 알아봅니다.

예를 들어, 다음 명령을 사용하여 Azure CLI를 사용하여 리소스 그룹 this-rgjoe@contoso.com기여자 역할을 할당합니다.

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

Microsoft Entra 보안 그룹을 사용하여 작업 영역 액세스 관리

Microsoft Entra 보안 그룹을 사용하여 작업 영역에 대한 액세스를 관리할 수 있습니다. 이 방법에는 다음과 같은 이점이 있습니다.

  • 팀 또는 프로젝트 리더는 작업 영역 리소스에 대한 소유자 역할이 직접 필요하지 않고 보안 그룹 소유자로서 작업 영역에 대한 사용자 액세스를 관리할 수 있습니다.
  • 사용자별로 권한을 관리할 필요 없이 작업 영역 및 기타 리소스에 대한 사용자 권한을 그룹으로 구성, 관리 및 취소할 수 있습니다.
  • Microsoft Entra 그룹을 사용하면 역할 할당에 대한 구독 제한에 도달하는 것을 방지할 수 있습니다.

Microsoft Entra 보안 그룹을 사용하려면:

  1. 보안 그룹을 만듭니다.
  2. 그룹 소유자 추가. 이 사용자는 그룹 멤버를 추가하거나 제거할 수 있는 권한이 있습니다. 그룹 소유자는 그룹 멤버이거나 작업 영역에 대한 직접적인 RBAC 역할이 필요하지 않습니다.
  3. AzureML 데이터 과학자, 읽기 권한자 또는 기여자와 같은 작업 영역에 대한 RBAC 역할을 그룹에 할당합니다.
  4. 그룹 멤버를 추가합니다. 멤버는 작업 영역에 액세스할 수 있습니다.

사용자 지정 역할 만들기

기본 제공 역할이 충분하지 않은 경우 사용자 지정 역할을 만들 수 있습니다. 사용자 지정 역할은 해당 작업 영역에서 읽기, 쓰기, 삭제 및 컴퓨팅 리소스 권한을 보유할 수 있습니다. 특정 작업 영역 수준, 특정 리소스 그룹 수준 또는 특정 구독 수준에서 역할을 사용하도록 설정할 수 있습니다.

참고 항목

해당 리소스 내에서 사용자 지정 역할을 만들려면 해당 수준의 리소스 소유자여야 합니다.

사용자 지정 역할을 만들려면 먼저 역할에 대한 권한과 범위를 지정하는 역할 정의 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/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
    ]
}

AssignableScopes 필드를 변경하여 구독 수준, 리소스 그룹 수준 또는 특정 작업 영역 수준에서 이 사용자 지정 역할의 범위를 설정할 수 있습니다. 이전 사용자 지정 역할은 예일 뿐입니다. Azure Machine Learning Service에 대해 제안된 몇 가지 사용자 지정 역할을 참조하세요.

이 사용자 지정 역할은 다음 작업을 제외하고 작업 영역에서 모든 작업을 수행할 수 있습니다.

  • 작업 영역을 삭제할 수 없습니다.
  • 작업 영역을 만들거나 업데이트할 수 없습니다.
  • 컴퓨팅 리소스를 만들거나 업데이트할 수 없습니다.
  • 컴퓨팅 리소스를 삭제할 수 없습니다.
  • 역할 할당을 추가, 삭제 또는 변경할 수 없습니다.

이 사용자 지정 역할을 배포하려면 다음 Azure CLI 명령을 사용합니다.

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

배포 후 지정된 작업 영역에서 이 역할을 사용할 수 있게 됩니다. 이제 Azure Portal에서 이 역할을 추가하고 할당할 수 있습니다.

사용자 지정 역할에 대한 자세한 내용은 Azure 사용자 지정 역할을 참조하세요.

Azure Machine Learning 작업

사용자 지정 역할과 함께 사용할 수 있는 작업(작업(Actions) 및 작업 안 함(NotActions))에 대한 자세한 내용은 리소스 공급자 작업을 참조하세요. 다음 Azure CLI 명령을 사용하여 작업을 나열할 수도 있습니다.

az provider operation show –n Microsoft.MachineLearningServices

사용자 지정 역할 나열

Azure CLI에서 다음 명령을 실행합니다.

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

특정 사용자 지정 역할에 대한 역할 정의를 보려면 다음 Azure CLI 명령을 사용합니다. <roleName>은 이전 명령에서 반환된 것과 동일한 형식이어야 합니다.

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

사용자 지정 역할 업데이트

Azure CLI에서 다음 명령을 실행합니다.

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

새 역할 정의의 전체 범위에 대한 권한이 있어야 합니다. 예를 들어 3개의 구독이 이 새 역할의 범위에 해당하는 경우 3개의 구독 모두에 대한 권한이 있어야 합니다.

참고 항목

역할 업데이트는 해당 범위의 모든 역할 할당에 적용되는 데 15분~1시간 정도 걸릴 수 있습니다.

반복성을 위해 Azure Resource Manager 템플릿 사용

복잡한 역할 할당을 다시 만들어야 할 것으로 예상되는 경우 Azure Resource Manager 템플릿이 큰 도움이 될 수 있습니다. machine-learning-dependencies-role-assignment 템플릿은 재사용을 위해 소스 코드에서 역할 할당을 지정하는 방법을 보여줍니다.

일반적인 시나리오

다음 표에는 Azure Machine Learning 작업과 최소 범위에서 이를 수행하는 데 필요한 권한이 요약되어 있습니다. 예를 들어 작업 영역 범위(열 4)로 작업을 수행할 수 있는 경우 해당 권한이 있는 모든 상위 범위도 자동으로 작동합니다. 특정 작업의 경우 V1 API와 V2 API 간에 권한이 다릅니다.

Important

이 표에서 /로 시작하는 모든 경로는 Microsoft.MachineLearningServices/에 대한 상대 경로입니다.

활동 구독 수준 범위 리소스 그룹 수준 범위 작업 영역 수준 범위
새 작업 영역 만들기 1 필요하지 않음 소유자 또는 기여자 해당 없음(소유자가 되거나 생성 후 더 높은 범위 역할을 상속함)
구독 수준 Amlcompute 할당량 요청 또는 작업 영역 수준 할당량 설정 소유자, 기여자 또는 사용자 지정 역할
구독 범위에서 /locations/updateQuotas/action
허용
권한 없음 권한 없음
새 컴퓨팅 클러스터 만들기 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/computes/write
새 컴퓨팅 인스턴스 만들기 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/computes/write
모든 형식의 실행 제출(V1) 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /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
모든 형식의 실행 제출(V2) 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, /workspaces/environments/build/action, /workspaces/environments/readSecrets/action
파이프라인 및 엔드포인트 게시(V1) 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
파이프라인 및 엔드포인트 게시(V2) 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
AKS 리소스 연결 2 필요하지 않음 AKS를 포함하는 리소스 그룹의 소유자 또는 참가자
AKS/ACI 리소스에 등록된 모델 배포 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/services/aks/write, /workspaces/services/aci/write
배포된 AKS 엔드포인트에 대한 점수 매기기 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action(Microsoft Entra 인증을 사용하지 않는 경우) 또는 /workspaces/read(토큰 인증을 사용하는 경우)
대화형 Notebook을 사용하여 스토리지에 액세스 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
새 사용자 지정 역할 만들기 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: Microsoft.Authorization/roleDefinitions/write 필요하지 않음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: /workspaces/computes/write
관리형 온라인 엔드포인트 및 배포 만들기/관리 필요하지 않음 스튜디오에 배포하려면, Microsoft.Resources/deployments/write 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
온라인 엔드포인트에 대한 인증 자격 증명 검색 필요 없음 필요 없음 다음을 허용하는 소유자, 기여자 또는 사용자 지정 역할: Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. 처음 작업 영역 만들기를 시도할 때 오류가 발생하면 역할이 Microsoft.MachineLearningServices/register/action을 허용하는지 확인합니다. 이 작업을 통해 Azure 구독에 Azure Machine Learning 리소스 공급자를 등록할 수 있습니다.

  2. AKS 클러스터를 연결할 때 클러스터에 대한 Azure Kubernetes Service 클러스터 관리자 역할도 필요합니다.

가상 네트워크 또는 서브넷에 배포

  • 가상 네트워크 또는 서브넷에 리소스를 배포하려면 사용자 계정에는 Azure RBAC(Azure 역할 기반 액세스 제어)에서 다음 작업에 대한 사용 권한이 있어야 합니다.

    • 가상 네트워크 리소스의 "Microsoft.Network/*/read"입니다. ARM(Azure Resource Manager) 템플릿 배포에는 이 권한이 필요하지 않습니다.
    • 가상 네트워크 리소스에 대한 “Microsoft.Network/virtualNetworks/join/action”
    • 서브넷 리소스에 대한 "Microsoft.Network/virtualNetworks/subnets/join/action"

    네트워킹과 Azure RBAC에 관한 자세한 내용은 네트워킹 기본 제공 역할을 참조하세요.

V1 및 V2 API에 대한 작업 간 차이점

V1 API와 V2 API에 대한 작업 간에는 특정 차이점이 있습니다.

자산 V1 API에 대한 작업 경로 V2 API에 대한 작업 경로
데이터 세트 Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
실험 실행 및 작업 Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
모델 Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
스냅샷 및 코드 Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
모듈 및 구성 요소 Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

두 작업을 모두 포함하거나 두 작업을 모두 포함하는 와일드카드(예: Microsoft.MachineLearningServices/workspaces/datasets/*/read)를 사용하여 V1 및 V2 API와 호환되는 사용자 지정 역할을 만들 수 있습니다.

고객 관리형 키를 사용하여 작업 영역 만들기

CMK(고객 관리형 키)를 사용하는 경우 Azure Key Vault는 키를 저장하는 데 사용됩니다. 작업 영역을 만드는 데 사용되는 사용자 또는 서비스 주체는 키 자격 증명 모음에 대한 소유자 또는 참가자 액세스 권한이 있어야 합니다.

작업 영역이 사용자 할당 관리 ID로 구성된 경우 ID에 다음 역할을 부여해야 합니다. 이러한 역할을 통해 관리 ID는 고객 관리형 키를 사용할 때 사용되는 Azure Storage, Azure Cosmos DB 및 Azure Search 리소스를 만들 수 있습니다.

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

키 자격 증명 모음 내에서 사용자 또는 서비스 주체는 키 자격 증명 모음 액세스 정책을 통해 키에 대한 만들기, 가져오기, 삭제제거 액세스 권한이 있어야 합니다. 자세한 내용은 Azure Key Vault 보안을 참조하세요.

Azure Machine Learning 컴퓨팅 클러스터를 통해 사용자가 할당한 관리 ID

사용자 할당 ID를 Azure Machine Learning 컴퓨팅 클러스터에 할당하려면 컴퓨팅 및 관리 ID 운영자 역할을 만들기 위한 쓰기 권한이 필요합니다. 관리 ID가 있는 Azure RBAC에 대한 자세한 내용은 사용자 할당 ID를 관리하는 방법을 참조하세요.

MLflow 작업

Azure Machine Learning 작업 영역에서 MLflow 작업을 수행하려면 사용자 지정 역할의 다음 범위를 사용합니다.

MLflow 작업 범위
(V1) 실험 나열, 읽기, 만들기, 업데이트 또는 삭제 Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) 작업 나열, 읽기, 만들기, 업데이트 또는 삭제 Microsoft.MachineLearningServices/workspaces/jobs/*
이름으로 등록된 모델 가져오기, 레지스트리에 등록된 모든 모델 목록 가져오기, 등록된 모델 검색, 각 요청 단계에 대한 최신 버전 모델, 등록된 모델 버전 가져오기, 모델 버전 검색, 모델 버전의 아티팩트가 저장되는 URI 가져오기, 실험 ID로 실행 검색 Microsoft.MachineLearningServices/workspaces/models/*/read
등록된 새 모델 만들기, 등록된 모델의 이름/설명 업데이트, 등록된 기존 모델 이름 바꾸기, 모델의 새 버전 만들기, 모델 버전의 설명 업데이트, 단계 중 하나로 등록된 모델 전환 Microsoft.MachineLearningServices/workspaces/models/*/write
모든 버전과 함께 등록된 모델 삭제, 등록된 모델의 특정 버전 삭제 Microsoft.MachineLearningServices/workspaces/models/*/delete

사용자 지정 역할 예제

데이터 과학자

데이터 과학자가 작업 영역 내에서 다음을 제외한 모든 작업을 수행할 수 있습니다.

  • 컴퓨팅 만들기
  • 프로덕션 AKS 클러스터에 모델 배포
  • 프로덕션에서 파이프라인 엔드포인트 배포

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

데이터 과학자 제한됨

허용된 작업에 와일드카드가 없는 보다 제한된 역할 정의. 작업 영역 내에서 다음을 제외한 모든 작업을 수행할 수 있습니다.

  • 컴퓨팅 만들기
  • 프로덕션 AKS 클러스터에 모델 배포
  • 프로덕션에서 파이프라인 엔드포인트 배포

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

MLflow 데이터 과학자

데이터 과학자가 다음을 제외한 모든 MLflow Azure Machine Learning 지원 작업을 수행할 수 있습니다.

  • 컴퓨팅 만들기
  • 프로덕션 AKS 클러스터에 모델 배포
  • 프로덕션에서 파이프라인 엔드포인트 배포

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

서비스 주체에 역할을 할당하고 이를 사용하여 MLOps 파이프라인을 자동화할 수 있습니다. 이미 게시된 파이프라인에 대해 실행을 제출하려는 경우를 예로 들 수 있습니다.

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

작업 영역 관리자

작업 영역 범위 내에서 다음을 제외한 모든 작업을 수행할 수 있습니다.

  • 새 작업 영역 만들기
  • 구독 또는 작업 영역 수준 할당량 할당

또한 작업 영역 관리자는 새 역할을 만들 수 없습니다. 작업 영역 범위 내에서 기존 기본 제공 또는 사용자 지정 역할만 할당할 수 있습니다.

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

데이터 레이블 지정

데이터 레이블 지정에만 범위가 지정된 데이터 레이블 지정을 위한 기본 제공 역할이 있습니다. 다음 사용자 지정 역할은 데이터 레이블 지정 프로젝트에 대한 다른 수준의 액세스 권한을 제공합니다.

레이블 지정 팀 리더를 사용하면 레이블이 지정된 데이터 세트를 검토 및 거부하고 레이블 지정 인사이트를 볼 수 있습니다. 또한 이 역할을 통해 레이블러의 역할도 수행할 수 있습니다.

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

문제 해결

Azure RBAC를 사용하는 동안 알아야 할 몇 가지 사항은 다음과 같습니다.

  • Azure에서 작업 영역과 같은 리소스를 만드는 경우 리소스의 직접 소유자가 아닙니다. 역할은 해당 구독에서 권한이 부여된 가장 높은 범위의 역할에서 상속됩니다. 예를 들어 네트워크 관리자이고 Machine Learning 작업 영역을 만들 수 있는 권한이 있는 경우 해당 작업 영역에 대한 네트워크 관리자 역할이 할당됩니다. 소유자 역할이 아닙니다.

  • 작업 영역에서 할당량 작업을 수행하려면 구독 수준 권한이 필요합니다. 즉, 관리 컴퓨팅 리소스에 대한 구독 수준 할당량 또는 작업 영역 수준 할당량 설정은 구독 범위에서 쓰기 권한이 있는 경우에만 발생할 수 있습니다.

  • 스튜디오에 배포하려면 Microsoft.Resources/deployments/writeMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write가 필요합니다. SDK/CLI 배포의 경우 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write가 필요합니다. 추가 권한은 작업 영역/리소스 그룹 소유자에게 문의하세요.

  • Actions/NotActions 섹션이 충돌하는 동일한 Microsoft Entra 사용자에게 두 개의 역할 할당이 있는 경우 한 역할의 NotActions에 나열된 작업이 다른 역할의 Actions로도 나열되어 있으면 적용되지 않을 수 있습니다. Azure에서 역할 할당을 구문 분석하는 방법에 대해 자세히 알아보려면 Azure RBAC에서 사용자가 리소스에 액세스할 수 있는지 확인하는 방법을 참조하세요.

  • 경우에 따라 새 역할 할당이 스택 전체의 캐시된 권한에 적용되는 데 최대 1시간까지 걸릴 수 있습니다.