다음을 통해 공유


Azure AI 스튜디오의 역할 기반 액세스 제어

이 문서에서는 Azure AI 스튜디오 허브에 대한 액세스(권한 부여)를 관리하는 방법을 알아봅니다. Azure RBAC(Azure 역할 기반 액세스 제어)는 새 리소스를 만들거나 기존 리소스를 사용하는 기능과 같은 Azure 리소스에 대한 액세스를 관리하는 데 사용됩니다. Microsoft Entra ID의 사용자에게는 리소스에 대한 액세스 권한을 부여하는 특정 역할이 할당됩니다. Azure는 기본 제공 역할과 사용자 지정 역할을 만드는 기능을 모두 제공합니다.

Warning

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

AI 스튜디오 허브와 프로젝트

Azure AI 스튜디오에는 허브와 프로젝트라는 두 가지 액세스 수준이 있습니다. 허브에는 Azure AI 서비스를 구성하는 인프라(가상 네트워크 설정, 고객 관리형 키, 관리 ID 및 정책 포함)가 포함됩니다. 허브 액세스를 통해 인프라를 수정하고, 새 허브를 만들고, 프로젝트를 만들 수 있습니다. 프로젝트는 AI 시스템을 빌드하고 배포할 수 있는 작업 영역 역할을 하는 허브의 하위 집합입니다. 프로젝트 내에서 흐름을 개발하고, 모델을 배포하고, 프로젝트 자산을 관리할 수 있습니다. 프로젝트 액세스를 통해 허브의 인프라 설정을 활용하면서 AI 엔드투엔드를 개발할 수 있습니다.

AI Studio 리소스 간의 관계를 보여 주는 다이어그램.

허브와 프로젝트 관계의 주요 이점 중 하나는 개발자가 허브 보안 설정을 상속하는 자체 프로젝트를 만들 수 있다는 것입니다. 프로젝트에 기여하고 새 프로젝트를 만들 수 없는 개발자가 있을 수도 있습니다.

허브의 기본 역할

AI 스튜디오 허브에는 기본적으로 사용 가능한 기본 제공 역할이 있습니다.

다음은 허브에 대한 기본 제공 역할과 해당 권한을 나타낸 표입니다.

역할 설명
소유자 새 허브를 관리 및 만들고 권한을 할당하는 기능을 포함하여 허브에 대한 모든 권한입니다. 이 역할은 허브 작성자에게 자동으로 할당됨
기여자 사용자는 새 허브를 만드는 기능을 포함하여 허브에 대한 모든 권한을 가지지만 기존 리소스에 대한 허브 권한을 관리할 수는 없습니다.
Azure AI Developer 새 허브 만들기 및 허브 권한 관리를 제외한 모든 작업을 수행합니다. 예를 들어 사용자는 프로젝트, 컴퓨팅 및 연결을 만들 수 있습니다. 사용자는 프로젝트 내에서 사용 권한을 할당할 수 있습니다. 사용자는 Azure OpenAI, Azure AI 검색 및 Azure AI 서비스와 같은 기존 Azure AI 리소스와 상호 작용할 수 있습니다.
Azure AI 유추 배포 연산자 리소스 그룹 내에서 리소스 배포를 만드는 데 필요한 모든 작업을 수행합니다.
판독기 허브에 대한 읽기 전용 액세스입니다. 이 역할은 허브 내의 모든 프로젝트 멤버에게 자동으로 할당됩니다.

기여자와 Azure AI Developer의 주요 차이점은 새로운 허브를 만드는 기능입니다. 사용자가 새 허브를 만들지 않도록 하려는 경우(할당량, 비용 또는 단지 허브 수 관리로 인해) Azure AI 개발자 역할을 할당합니다.

소유자 및 기여자 역할만 허브를 만들 수 있습니다. 현재 사용자 지정 역할은 허브를 만들 수 있는 권한을 부여할 수 없습니다.

Azure AI 개발자 역할

새 "Azure AI Developer" 역할에 대한 전체 권한 집합은 다음과 같습니다.

{
    "Permissions": [ 
        { 
        "Actions": [
            "Microsoft.MachineLearningServices/workspaces/*/read",
            "Microsoft.MachineLearningServices/workspaces/*/action",
            "Microsoft.MachineLearningServices/workspaces/*/delete",
            "Microsoft.MachineLearningServices/workspaces/*/write",
            "Microsoft.MachineLearningServices/locations/*/read",
            "Microsoft.Authorization/*/read",
            "Microsoft.Resources/deployments/*"
        ],
    
        "NotActions": [
            "Microsoft.MachineLearningServices/workspaces/delete",
            "Microsoft.MachineLearningServices/workspaces/write",
            "Microsoft.MachineLearningServices/workspaces/listKeys/action",
            "Microsoft.MachineLearningServices/workspaces/hubs/write",
            "Microsoft.MachineLearningServices/workspaces/hubs/delete",
            "Microsoft.MachineLearningServices/workspaces/featurestores/write",
            "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
        ], 
        "DataActions": [ 
            "Microsoft.CognitiveServices/accounts/OpenAI/*", 
            "Microsoft.CognitiveServices/accounts/SpeechServices/*", 
            "Microsoft.CognitiveServices/accounts/ContentSafety/*" 
        ], 
        "NotDataActions": [], 
        "Condition": null, 
        "ConditionVersion": null 
        } 
    ] 
}

기본 제공 Azure AI 개발자 역할이 요구 사항을 충족하지 않는 경우 사용자 지정 역할을 만들 수 있습니다.

프로젝트의 기본 역할

AI 스튜디오의 프로젝트에는 기본적으로 사용 가능한 기본 제공 역할이 있습니다.

다음은 프로젝트에 대한 기본 제공 역할과 해당 권한을 나타낸 표입니다.

역할 설명
소유자 프로젝트 사용자에게 권한을 할당하는 기능을 포함하여 프로젝트에 대한 모든 권한입니다.
기여자 사용자는 프로젝트에 대한 모든 권한을 가지지만 프로젝트 사용자에게 권한을 할당할 수는 없습니다.
Azure AI Developer 사용자는 배포 만들기를 포함한 대부분의 작업을 수행할 수 있지만, 프로젝트 사용자에게 사용 권한을 할당할 수는 없습니다.
Azure AI 유추 배포 연산자 리소스 그룹 내에서 리소스 배포를 만드는 데 필요한 모든 작업을 수행합니다.
판독기 프로젝트에 대한 읽기 전용 액세스입니다.

사용자에게 프로젝트에 대한 액세스 권한이 부여되면(예: AI Studio 권한 관리를 통해) 해당 사용자에게 두 개의 추가 역할이 자동으로 할당됩니다. 첫 번째 역할은 허브의 읽기 권한자입니다. 두 번째 역할은 유추 배포 운영자 역할로, 사용자는 프로젝트가 있는 리소스 그룹에 배포를 만들 수 있습니다. 이 역할은 "Microsoft.Authorization/*/read""Microsoft.Resources/deployments/*"라는 두 개의 사용 권한으로 구성됩니다.

엔드 투 엔드 AI 개발과 배포를 완료하려면 사용자는 자동 할당된 이 두 개의 역할과 프로젝트에 대한 기여자 또는 Azure AI Developer 역할만 필요합니다.

프로젝트를 만드는 데 필요한 최소 권한은 허브에서 허용되는 작업 Microsoft.MachineLearningServices/workspaces/hubs/join이 있는 역할입니다. Azure AI 개발자 기본 제공 역할에는 이 권한이 있습니다.

종속성 서비스 Azure RBAC 권한

허브에는 다른 Azure 서비스에 대한 종속성이 있습니다. 다음 표에는 허브를 만들 때 이러한 서비스에 필요한 권한이 나열되어 있습니다. 허브를 만드는 사용자에게 이러한 권한이 필요합니다. 허브에서 프로젝트를 만드는 사용자에게는 필요하지 않습니다.

Permission 목적
Microsoft.Storage/storageAccounts/write 지정된 매개 변수를 사용하여 스토리지 계정을 만들거나, 속성 또는 태그를 업데이트하거나, 지정된 스토리지 계정의 사용자 지정 도메인을 추가합니다.
Microsoft.KeyVault/vaults/write 새 키 자격 증명 모음을 만들거나 기존 키 자격 증명 모음의 속성을 업데이트합니다. 특정 속성에는 더 많은 권한이 필요할 수 있습니다.
Microsoft.CognitiveServices/accounts/write API 계정을 작성합니다.
Microsoft.MachineLearningServices/workspaces/write 새 작업 영역을 만들거나 기존 작업 영역의 속성을 업데이트합니다.

샘플 엔터프라이즈 RBAC 설정

다음 테이블은 엔터프라이즈용 Azure AI 스튜디오에 대한 역할 기반 액세스 제어를 설정하는 방법의 예입니다.

가상 사용자 역할 목적
IT 관리자 허브의 소유자 IT 관리자는 허브가 엔터프라이즈 표준에 맞게 설정되었는지 확인할 수 있습니다. 관리자가 새 허브를 만들 수 있도록 하려면 관리자에게 리소스에 대한 기여자 역할을 할당할 수 있습니다. 또는 관리자에게 리소스에 대한 Azure AI 개발자 역할을 할당하여 새 허브 만들기를 허용하지 않을 수 있습니다.
관리자 허브의 기여자 또는 Azure AI 개발자 관리자는 허브를 관리하고, 컴퓨팅 리소스를 감사하고, 연결을 감사하고, 공유 연결을 만들 수 있습니다.
팀 잠재 고객/잠재 고객 개발자 허브의 Azure AI 개발자 수석 개발자는 팀을 위한 프로젝트를 만들고 허브 수준에서 공유 리소스(예: 컴퓨팅 및 연결)를 만들 수 있습니다. 프로젝트를 만든 후 프로젝트 소유자는 다른 멤버를 초대할 수 있습니다.
팀 구성원/개발자 프로젝트의 기여자 또는 Azure AI 개발자 개발자는 프로젝트 내에서 AI 모델을 빌드 및 배포하고 컴퓨팅 및 연결과 같은 개발을 가능하게 하는 자산을 만들 수 있습니다.

허브 외부에서 만들어진 리소스에 대한 액세스

허브를 만들면 기본 제공 역할 기반 액세스 제어 권한을 통해 리소스를 사용할 수 있는 액세스 권한이 부여됩니다. 그러나 사용자를 대신하여 만든 리소스 외부에서 리소스를 사용하려는 경우 다음 두 가지를 모두 충족해야 합니다.

  • 사용하려는 리소스에 액세스할 수 있도록 설정된 사용 권한이 있어야 합니다.
  • 허브에 액세스할 수 있습니다.

예를 들어, 새 Blob Storage를 사용하려는 경우 허브의 관리 ID가 Blob에 대한 Blob Storage 읽기 권한자 역할에 추가되었는지 확인해야 합니다. 새로운 Azure AI 검색 원본을 사용하려는 경우 Azure AI 검색의 역할 할당에 허브를 추가해야 할 수도 있습니다.

역할을 통해 액세스 관리

허브 소유자인 경우 AI 스튜디오에 대한 역할을 추가하고 제거할 수 있습니다. AI 스튜디오 페이지로 이동하여 허브를 선택합니다. 그런 다음 사용자를 선택하여 허브에 대한 사용자를 추가 및 제거합니다. 액세스 제어(IAM) 또는 Azure CLI를 통해 Azure Portal에서 사용 권한을 관리할 수도 있습니다. 예를 들어, 다음 명령을 사용하여 Azure CLI를 사용하여 리소스 그룹 "this-rg"의 "joe@contoso.com"에 Azure AI Developer 역할을 할당합니다.

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

사용자 지정 역할 만들기

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

참고 항목

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

다음 JSON 예에서는 구독 수준에서 사용자 지정 AI 스튜디오 개발자 역할을 정의합니다.

{
    "properties": {
        "roleName": "AI Studio Developer",
        "description": "Custom role for AI Studio. At subscription level",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/endpoints/write",
                    "Microsoft.Storage/storageAccounts/write",
                    "Microsoft.Resources/deployments/validate/action",
                    "Microsoft.KeyVault/vaults/write",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read",
                    "Microsoft.CognitiveServices/*/read"
                ],
                "notActions": [
                    "Microsoft.MachineLearningServices/workspaces/delete",
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/listKeys/action",
                    "Microsoft.MachineLearningServices/workspaces/hubs/write",
                    "Microsoft.MachineLearningServices/workspaces/hubs/delete",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/write",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
                ],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action"
                ],
                "notDataActions": []
            }
        ]
    }
}

사용자 지정 역할을 만드는 단계는 다음 문서 중 하나를 사용합니다.

일반적으로 사용자 지정 역할을 만드는 방법에 대한 자세한 내용은 Azure 사용자 지정 역할 문서를 참조하세요.

AI Studio에서 역할 할당

사용자를 추가하고 허브 또는 프로젝트 수준에서 Azure AI Studio에서 직접 역할을 할당할 수 있습니다. 허브 또는 프로젝트 개요 페이지에서 새 사용자를 선택하여 사용자를 추가합니다.

참고 항목

기본 제공 역할을 선택하는 것으로 제한됩니다. 사용자 지정 역할을 할당해야 하는 경우 Azure Portal, Azure CLI 또는 Azure PowerShell을 사용해야 합니다.

새 사용자 단추가 강조 표시된 Azure AI Studio 허브 개요의 스크린샷

그런 다음 사용자 정보를 입력하고 기본 제공 역할을 선택하라는 메시지가 표시됩니다.

역할이 Azure AI Developer로 설정된 사용자 추가 프롬프트의 스크린샷.

시나리오: 고객 관리형 키 사용

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

AI 스튜디오 허브가 사용자 할당 관리 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 보안을 참조하세요.

시나리오: Microsoft Entra ID 인증을 사용한 연결

Microsoft Entra ID 인증을 사용하는 연결을 만드는 경우 개발자에게 역할을 할당하여 리소스에 액세스할 수 있도록 해야 합니다.

리소스 연결 역할 설명
Azure AI 검색 기여자 Azure AI 스튜디오의 인덱스를 나열하려면 API 키를 나열합니다.
Azure AI 검색 검색 인덱스 데이터 기여자 인덱싱 시나리오에 필요함
Azure AI 서비스/Azure OpenAI Cognitive Services OpenAI 기여자 Azure AI 스튜디오에서 공용 수집 API를 호출합니다.
Azure AI 서비스/Azure OpenAI Cognitive Services 사용자 Azure AI 스튜디오의 API 키를 나열합니다.
Azure AI 서비스/Azure OpenAI Cognitive Services 기여자 컨트롤 플레인에 대한 호출을 허용합니다.
Azure Blob Storage Storage Blob 데이터 Contributor Blob Storage에 데이터를 읽고 쓰는 데 필요합니다.
Azure Data Lake Storage Gen 2 Storage Blob 데이터 Contributor 데이터 레이크에 데이터를 읽고 쓰는 데 필요합니다.
Microsoft OneLake 기여자 Microsoft OneLake에 에이스를 제공하려면 Microsoft Fabric 작업 영역에 대한 액세스 권한을 부여해야 합니다.

Important

Azure Storage(Azure Data Lake Storage Gen 2 포함)와 함께 Promptflow를 사용하는 경우 스토리지 파일 데이터 권한 있는 기여자 역할도 할당해야 합니다.

채팅 플레이그라운드에서 Microsoft Entra ID 인증 연결을 사용하는 경우 서비스 간에 필요한 리소스에 액세스하기 위해 서로 권한을 부여해야 합니다. 구성을 수행하는 관리자는 역할 할당을 추가하기 위해 이러한 리소스에 대한 소유자 역할이 있어야 합니다. 다음 표에는 각 리소스에 필요한 역할 할당이 나열되어 있습니다. 담당자 열은 나열된 리소스의 시스템이 할당한 관리 ID를 참조하세요. 리소스 열은 담당자가 액세스해야 하는 리소스를 참조하세요. 예를 들어, Azure OpenAI에는 시스템이 할당한 관리 ID가 있으며, 이 ID에 Azure AI 검색 리소스에 대한 검색 인덱스 데이터 읽기 권한자 역할을 할당해야 합니다.

역할 담당자 리소스 설명
검색 인덱스 데이터 읽기 권한자 Azure AI 서비스/Azure OpenAI Azure AI 검색 유추 서비스는 인덱스에서 데이터를 쿼리합니다. 유추 시나리오에만 사용됩니다.
검색 인덱스 데이터 기여자 Azure AI 서비스/Azure OpenAI Azure AI 검색 인덱스의 콘텐츠에 대한 읽기-쓰기 권한입니다. 인덱스의 문서 컬렉션을 가져오거나, 새로 고치거나, 쿼리합니다. 수집 및 유추 시나리오에만 사용됩니다.
Search 서비스 기여자 Azure AI 서비스/Azure OpenAI Azure AI 검색 개체 정의(인덱스, 별칭, 동의어 맵, 인덱서, 데이터 원본 및 기술 세트)에 대한 읽기/쓰기 권한입니다. 유추 서비스는 자동 필드 매핑을 위해 인덱스 스키마를 쿼리합니다. 데이터 수집 서비스는 인덱스, 데이터 원본, 기술 집합, 인덱서를 만들고 인덱서 상태를 쿼리합니다.
Cognitive Services OpenAI 기여자 Azure AI 검색 Azure AI 서비스/Azure OpenAI 사용자 지정 기술
Cognitive Services OpenAI 사용자 채팅 모델을 위한 Azure OpenAI 리소스 모델 포함을 위한 Azure OpenAI 리소스 두 개의 Azure OpenAI 리소스를 사용하여 통신하는 경우에만 필요합니다.
Storage Blob 데이터 Contributor Azure AI 검색 Azure Storage Account BLOB을 읽고 지식 저장소를 씁니다.
Storage Blob 데이터 Contributor Azure AI 서비스/Azure OpenAI Azure Storage Account 입력 컨테이너에서 읽고 전처리 결과를 출력 컨테이너에 씁니다.

참고 항목

Cognitive Services OpenAI 사용자 역할은 두 개의 Azure OpenAI 리소스(하나는 채팅 모델용, 다른 하나는 포함 모델용)를 사용하는 경우에만 필요합니다. 해당 사항이 적용되는 경우 신뢰할 수 있는 서비스를 사용하도록 설정하고 포함 모델 Azure OpenAI 리소스에 대한 연결에서 Microsoft Entra ID가 사용하도록 설정되어 있는지 확인합니다.

시나리오: 기존 Azure OpenAI 리소스 사용

기존 Azure OpenAI 리소스에 대한 연결을 만들 때 리소스에 액세스할 수 있도록 사용자에게 역할을 할당해야 합니다. 수행해야 하는 작업에 따라 Cognitive Services OpenAI 사용자 또는 Cognitive Services OpenAI 기여자 역할을 할당해야 합니다. 이러한 역할 및 사용하도록 설정하는 작업에 대한 자세한 내용은 Azure OpenAI 역할을 참조하세요.

시나리오: Azure Container Registry 사용

Azure Container Registry 인스턴스는 Azure AI 스튜디오 허브에 대한 선택적 종속성입니다. 다음 표에는 인증 방법과 Azure Container Registry의 공용 네트워크 액세스 구성에 따라 Azure Container Registry에 허브를 인증할 때의 지원 매트릭스가 나열되어 있습니다.

인증 방법 공용 네트워크 액세스
사용 안 함
Azure Container Registry
공용 네트워크 액세스 사용
관리 사용자
AI 스튜디오 허브 시스템 할당 관리 ID
AI 스튜디오 허브 시스템 할당 관리 ID
ID에 ACRPull 역할이 할당됨

시스템 할당 관리 ID는 허브가 만들어질 때 올바른 역할에 자동으로 할당됩니다. 사용자 할당 관리 ID를 사용하는 경우 ACRPull 역할을 ID에 할당해야 합니다.

시나리오: 로깅에 Azure Application Insights 사용

Azure Application Insights는 Azure AI 스튜디오 허브에 대한 선택적 종속성입니다. 다음 표에는 허브를 만들 때 Application Insights를 사용하려는 경우 필요한 권한이 나열되어 있습니다. 허브를 만드는 사용자에게 이러한 권한이 필요합니다. 허브에서 프로젝트를 만드는 사용자에게는 이러한 권한이 필요하지 않습니다.

Permission 목적
Microsoft.Insights/Components/Write Application Insights 구성 요소 구성에 씁니다.
Microsoft.OperationalInsights/workspaces/write 새 작업 영역을 만들거나 기존 작업 영역의 고객 ID를 제공하여 기존 작업 영역에 연결합니다.

시나리오: 프로비전된 처리량 단위 조달자

다음 예에서는 PTU(프로비전된 처리량 단위)를 확보할 수 있는 사용자 지정 역할을 정의합니다.

{
    "properties": {
        "roleName": "PTU procurer",
        "description": "Custom role to purchase PTU",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.CognitiveServices/locations/commitmentTiers/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.Features/features/read",
                    "Microsoft.Features/providers/features/read",
                    "Microsoft.Features/providers/features/register/action",
                    "Microsoft.Insights/logDefinitions/read",
                    "Microsoft.Insights/metricdefinitions/read",
                    "Microsoft.Insights/metrics/read",
                    "Microsoft.ResourceHealth/availabilityStatuses/read",
                    "Microsoft.Resources/deployments/operations/read",
                    "Microsoft.Resources/subscriptions/operationresults/read",
                    "Microsoft.Resources/subscriptions/read",
                    "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                    "Microsoft.Resources/subscriptions/resourceGroups/read"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

시나리오: Azure OpenAI 도우미 API

다음 예에서는 Azure OpenAI Assistants를 사용하는 개발자의 역할을 정의합니다.

{
    "id": "",
    "properties": {
        "roleName": "Azure OpenAI Assistants API Developer",
        "description": "Custom role to work with Azure OpenAI Assistants API",
        "assignableScopes": [
            "<your-scope>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/steps/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

문제 해결

오류: 보안 주체가 API/작업에 액세스할 수 없음

증상

Azure AI Studio 채팅 실습을 사용하는 경우 "보안 주체가 API/작업에 액세스할 수 없습니다"라는 오류 메시지가 표시됩니다. 오류에는 "Apim-request-id"도 포함될 수 있습니다.

원인

Azure OpenAI 또는 Azure AI Search에 대한 요청을 인증하는 데 사용되는 사용자 또는 서비스 주체에는 리소스에 액세스하는 데 필요한 권한이 없습니다.

솔루션

사용자 또는 서비스 주체에 다음 역할을 할당합니다. 할당하는 역할은 사용 중인 서비스와 사용자 또는 서비스 주체에 필요한 액세스 수준에 따라 달라집니다.

액세스 중인 서비스 역할 설명
Azure OpenAI Cognitive Services OpenAI 기여자 Azure AI 스튜디오에서 공용 수집 API를 호출합니다.
Azure OpenAI Cognitive Services 사용자 Azure AI 스튜디오의 API 키를 나열합니다.
Azure AI 검색 검색 인덱스 데이터 기여자 인덱싱 시나리오에 필요합니다.
Azure AI 검색 검색 인덱스 데이터 읽기 권한자 유추 서비스는 인덱스에서 데이터를 쿼리합니다. 유추 시나리오에만 사용됩니다.

다음 단계