你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure AI Studio 中基于角色的访问控制

本文介绍如何管理对 Azure AI Studio 中心的访问(授权)。 Azure 基于角色的访问控制 (Azure RBAC) 用于管理对 Azure 资源的访问权限,例如,创建新资源或使用现有资源的权限。 Microsoft Entra ID 中的用户可获得特定角色,从而拥有资源访问权限。 Azure 提供内置角色和创建自定义角色的功能。

警告

应用某些角色可能会限制 Azure AI Studio 中针对其他用户的 UI 功能。 例如,如果用户的角色无法创建计算实例,工作室中就不会提供创建计算实例的选项。 此行为是正常的,可以防止用户尝试会返回“拒绝访问”错误的操作。

AI Studio 中心与项目

在 Azure AI Studio 中,有两个访问级别:中心和项目。 在中心中,可找到基础结构(包括虚拟网络设置、客户管理的密钥、托管标识和策略),还可配置 Azure AI 服务。 中心访问权限允许修改基础结构、创建新中心以及创建项目。 项目是中心的子集,充当工作区,允许生成和部署 AI 系统。 在项目中,可以开发流、部署模型和管理项目资产。 通过项目访问,可以端到端开发 AI,同时利用中心上的基础结构设置。

AI Studio 资源之间的关系示意图。

中心和项目关系的主要优势之一是,开发人员可以创建继承中心安全设置的自己的项目。 你可能还有开发人员是项目的参与者,并且无法创建新项目。

中心的默认角色

AI Studio 中心具有默认可用的内置角色。

下面是中心的内置角色及其权限的表:

角色 描述
所有者 对中心的完全访问权限,包括管理和创建新中心以及分配权限的能力。 此角色会自动分配给中心创建者
参与者 用户拥有对中心的完全访问权限,包括创建新中心的功能,但无法管理现有资源的中心权限。
Azure AI 开发人员 执行除创建新中心和管理中心权限之外的所有操作。 例如,用户可以创建项目、计算和连接。 用户可以在其项目中分配权限。 用户可以与现有 Azure AI 资源(例如 Azure OpenAI、Azure AI 搜索和 Azure AI 服务)进行交互。
Azure AI 推理部署操作员 执行在资源组内创建资源部署所需的所有操作。
读者 对中心的只读访问权限。 此角色自动分配给中心中的所有项目成员。

“参与者”与“Azure AI 开发人员”之间的主要区别在于能够创建新的中心。 如果你不希望用户创建新的中心(由于配额、成本或只是管理拥有的中心数量),请分配 Azure AI 开发人员角色。

只有“所有者”和“参与者”角色才允许创建中心。 目前,自定义角色无法授予创建中心的权限。

Azure AI 开发人员角色

新的“Azure AI 开发人员”角色的完整权限集如下所示:

{
    "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 Studio 中的项目具有默认可用的内置角色。

下面是项目的内置角色及其权限的表:

角色 描述
所有者 对项目的完全访问权限,包括向项目用户分配权限的能力。
参与者 用户有权完全访问项目,但无法向项目用户分配权限。
Azure AI 开发人员 用户可以执行大多数操作(包括创建部署),但无法向项目用户分配权限。
Azure AI 推理部署操作员 执行在资源组内创建资源部署所需的所有操作。
读者 对项目的只读访问权限。

向用户授予对项目(例如,通过 AI Studio 权限管理)的访问权限时,还会自动向用户分配另外两个角色。 第一个角色是中心的读取者。 第二个角色是推理部署操作员角色,拥有该角色的用户可在项目所在的资源组上创建部署。 此角色包含下面两个权限:"Microsoft.Authorization/*/read""Microsoft.Resources/deployments/*"

若要完成端到端 AI 开发和部署,用户只需要具有这两个自动分配的角色,还具有项目的“参与者”或“Azure AI 开发人员”角色即可。

创建项目所需的最低权限是在中心上具有允许的操作 Microsoft.MachineLearningServices/workspaces/hubs/join 的角色。 Azure AI 开发人员内置角色具有此权限。

Azure AI 管理员角色

在 2024 年 11 月 19 日之前,为中心创建的系统分配的托管标识会自动为包含中心和项目的资源组分配参与者角色。 在此日期之后创建的中心将为 Azure AI 管理员角色分配系统分配的托管标识。 此角色的范围更窄,仅限于托管标识执行其任务所需的最低权限。

Azure AI 管理员角色目前以公共预览版提供。

重要

本文中标记了“(预览版)”的项目目前为公共预览版。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

Azure AI 管理员角色具有以下权限

{
    "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.DataFactory/factories/*"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

将现有系统托管标识转换为 Azure AI 管理员角色

提示

建议将 2024 年 11 月 19 日之前创建的中心转换为使用 Azure AI 管理员角色。 Azure AI 管理员角色的范围比以前使用的参与者角色更窄,并且遵循最小特权原则。

可以使用下列方法之一转换在 2024 年 11 月 19 日之前创建的中心:

  • Azure REST API:对工作区使用 Azure REST API 的 PATCH 请求。 请求的正文应设置 {"properties":{"allowRoleAssignmeentOnRG":true}}。 以下示例演示了使用 curlPATCH 请求。 将 <your-subscription><resource-group-name><workspace-name><YOUR-ACCESS-TOKEN> 替换为你的应用场景的值。 有关使用 REST API 的详细信息,请访问 Azure REST API 文档

    curl -X PATCH https://management.azure.com/subscriptions/<your-subscription>/resourcegroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-04-01-preview -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"
    
  • Azure CLI:使用包含 --allow-roleassignment-on-rg trueaz ml workspace update 命令。 以下示例会更新名为 myworkspace 的工作区。 此命令需要 Azure 机器学习 CLI 扩展 2.27.0 或更高版本。

    az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
    
  • Azure Python SDK:将 Workspace 对象的 allow_roleassignment_on_rg 属性设置为 True 并执行更新操作。 以下示例会更新名为 myworkspace 的工作区。 此操作需要 Azure 机器学习 SDK 版本 1.17.0 版或更高版本。

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

依赖项服务 Azure RBAC 权限

中心依赖于其他 Azure 服务。 下表列出了创建中心时这些服务所需的权限。 创建中心的人员需要这些权限。 从中心创建项目的人员不需要这些权限。

权限 用途
Microsoft.Storage/storageAccounts/write 使用指定的参数创建存储帐户、更新指定存储帐户的属性或标记,或者为其添加自定义域。
Microsoft.KeyVault/vaults/write 创建新的密钥保管库,或更新现有密钥保管库的属性。 某些属性可能需要更多的权限。
Microsoft.CognitiveServices/accounts/write 写入 API 帐户。
Microsoft.MachineLearningServices/workspaces/write 创建新工作区或更新现有工作区的属性。

示例企业 RBAC 设置

下表中的示例显示如何为企业的 Azure AI Studio 设置基于角色的访问控制。

Persona 角色 目的
IT 管理员 中心所有者 IT 管理员可以确保中心按照其企业标准进行设置。 如果他们希望管理者能够创建新的中心,他们可为管理者分配资源的参与者角色。 或者,他们可为管理员分配资源的 Azure AI 开发人员角色,以禁止创建新的中心。
Managers 中心上的参与者或 Azure AI 开发人员 管理员可以管理中心、审核计算资源、审核连接以及创建共享连接。
团队主管/首席开发人员 中心上的 Azure AI 开发人员 首席开发人员可为其团队创建项目,并在中心级别创建共享资源(例如计算和连接)。 创建项目后,项目所有者可以邀请其他成员。
团队成员/开发人员 项目上的参与者或 Azure AI 开发人员 开发人员可以在项目中构建和部署 AI 模型,还可创建支持开发的资产,例如计算和连接。

访问中心外部创建的资源

创建中心时,内置的基于角色的访问控制权限向你授予使用资源的访问权限。 但是,如果你想要使用代表你创建的资源之外的资源,则需要确保下面两点:

  • 你尝试使用的资源已设置了权限,允许你访问它。
  • 允许中心访问该资源。

例如,如果尝试使用新的 Blob 存储,需要确保将中心的托管标识添加到 Blob 的 Blob 存储读取者角色。 如果尝试使用新的 Azure AI 搜索源,可能需要将中心添加到 Azure AI 搜索的角色分配中。

使用角色管理访问

如果你是中心的所有者,则可以为 AI Studio 添加和移除角色。 转到 AI Studio 中的“主页”,然后选择中心。 然后选择“用户”,以添加和移除中心的用户。 还可以在 Azure 门户的“访问控制(IAM)”下或通过 Azure CLI 管理权限。 例如,使用 Azure CLI 通过以下命令将资源组“this-rg”的“Azure AI 开发人员”角色分配到“joe@contoso.com”:

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

创建自定义角色

如果内置角色不够,可以创建自定义角色。 自定义角色在该 AI Studio 中可能具有读取、写入、删除和计算资源权限。 可以在特定项目级别、特定资源组级别或特定订阅级别提供该角色。

注意

必须是该级别资源的所有者,才能在该资源中创建自定义角色。

以下 JSON 示例在订阅级别定义了一个自定义 AI Studio 开发人员角色:

{
    "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 门户Azure CLI,或 Azure PowerShell

Azure AI Studio 中心概述的屏幕截图,其中突出显示了新用户按钮。

然后,系统会提示输入用户信息并选择内置角色。

“添加用户提示”的屏幕截图,其中将角色设置为 Azure AI 开发人员。

方案:使用客户管理的密钥

将中心配置为使用客户管理的密钥 (CMK) 时,将使用 Azure 密钥保管库来存储密钥。 用户或用于创建工作区的服务主体必须具有对密钥保管库的所有者或参与者访问权限。

如果 AI Studio 中心配置了用户分配的托管标识,则必须向该标识授予以下角色。 这些角色允许托管标识创建使用客户管理的密钥时使用的 Azure 存储、Azure Cosmos DB 和 Azure 搜索资源:

  • 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 Studio 中的索引的 API 密钥。
Azure AI 搜索 搜索索引数据参与者 索引场景需要
Azure AI 服务 / Azure OpenAI 认知服务 OpenAI 参与者 从 Azure AI Studio 调用公共引入 API。
Azure AI 服务 / Azure OpenAI 认知服务用户 从 Azure AI Studio 列出 API 密钥。
Azure AI 服务 / Azure OpenAI 认知服务参与者 允许调用控制平面。
Azure Blob 存储 存储 Blob 数据参与者 读取和并将数据写入 Blob 存储所必需。
Azure Data Lake Storage Gen 2 存储 Blob 数据参与者 读取并将数据写入 Data Lake 所必需。
Microsoft OneLake 参与者 要向某人授予对 Microsoft OneLake 的访问权限,必须 向其授予访问 Microsoft Fabric 工作区的访问权限

重要

如果将提示流用于 Azure 存储(包括 Azure Data Lake Storage Gen 2),则还必须分配存储文件数据特权参与者角色。

在聊天操场中使用经过 Microsoft Entra ID 进行身份验证的连接时,服务需要互相授权才能访问所需的资源。 执行配置的管理员需要拥有对这些资源的“所有者”角色才能添加角色分配。 下表列出了每个资源所需的角色分配。 “被分派人”列是指所列资源的系统分配的托管标识。 “资源”列是指被分派人需要访问的资源。 例如,Azure OpenAI 具有一个系统分配的托管标识,需要为其分配“搜索索引数据读取者”角色,以便访问 Azure AI 搜索资源

角色 被分派人 资源 说明
搜索索引数据读取者 Azure AI 服务 / Azure OpenAI Azure AI 搜索 推理服务从索引中查询数据。 仅用于推理场景。
搜索索引数据参与者 Azure AI 服务 / Azure OpenAI Azure AI 搜索 对索引中内容的读写访问权限。 导入、刷新或查询索引的文档集合。 仅用于数据引入和推理场景。
搜索服务参与者 Azure AI 服务 / Azure OpenAI Azure AI 搜索 对对象定义(索引、别名、同义词映射、索引器、数据源和技能组)的读写访问权限。 推理服务查询自动字段映射的索引架构。 数据引入服务创建索引、数据源、技能集、索引器并查询索引器状态。
认知服务 OpenAI 参与者 Azure AI 搜索 Azure AI 服务 / Azure OpenAI 自定义技能
认知服务 OpenAI 用户 用于聊天模型的 Azure OpenAI 资源 用于嵌入模型的 Azure OpenAI 资源 仅当使用两个 Azure OpenAI 资源进行通信时才需要。
存储 Blob 数据参与者 Azure AI 搜索 Azure 存储帐户 读取 Blob 和写入知识存储。
存储 Blob 数据参与者 Azure AI 服务 / Azure OpenAI Azure 存储帐户 从输入容器读取,并将预处理结果写入输出容器。

注意

仅当使用两个 Azure OpenAI 资源(一个用于聊天模型,另一个用于嵌入模型)时,才需要“认知服务 OpenAI 用户”角色。 如果适用,请启用受信任的服务,并确保嵌入模型 Azure OpenAI 资源的连接已启用 Microsoft Entra ID。

方案:使用现有的 Azure OpenAI 资源

创建与现有 Azure OpenAI 资源的连接时,还必须向用户分配角色,以便他们可以访问资源。 应根据需要执行的任务,分配“认知服务 OpenAI 用户”或“认知服务 OpenAI 参与者”角色。 有关这些角色及其启用的任务的信息,请参阅 Azure OpenAI 角色

方案:使用 Azure 容器注册表

Azure 容器注册表实例是 Azure AI Studio 中心的可选依赖项。 下表列出了在向 Azure 容器注册表验证某个中心的身份时的支持矩阵,具体取决于身份验证方法和 Azure 容器注册表的公用网络访问配置

身份验证方法 已禁用公用网络
访问
已启用 Azure 容器注册表
公用网络访问
管理员用户
AI Studio 中心的系统分配的托管标识
AI Studio 中心的用户分配的托管标识,
标识分配有 ACRPull 角色

创建中心时,系统分配的托管标识会自动分配给正确的角色。 如果你使用的是用户分配的托管标识,你必须向该标识分配 ACRPull 角色。

方案:使用 Azure Application Insights 进行日志记录

Azure Application Insights 是 Azure AI Studio 中心的可选依赖项。 下表列出了在创建中心时需要使用 Application Insights 的情况下所需的权限。 创建中心的人员需要这些权限。 从中心创建项目的人员不需要这些权限。

权限 目的
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 助手为开发人员定义角色。

{
    "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 搜索的请求进行身份验证的用户或服务主体没有访问资源所需的权限。

解决方案

将以下角色分配给用户或服务主体。 分配的角色取决于所使用的服务以及用户或服务主体所需的访问级别:

正在访问的服务 角色 说明
Azure OpenAI 认知服务 OpenAI 参与者 从 Azure AI Studio 调用公共引入 API。
Azure OpenAI 认知服务用户 从 Azure AI Studio 列出 API 密钥。
Azure AI 搜索 搜索索引数据参与者 索引场景需要。
Azure AI 搜索 搜索索引数据读取者 推理服务从索引中查询数据。 仅用于推理场景。

后续步骤