你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Note
另有一篇以中心为中心的 RBAC 文章可供参考:Azure AI Foundry(中心和项目)的基于角色的访问控制。
本文介绍如何管理对 Azure AI Foundry 资源的访问。 使用 Azure 基于角色的访问控制(Azure RBAC)管理对 Azure 资源的访问,例如创建新资源或使用现有资源。 在 Microsoft Entra ID 中,分配授予资源访问权限的用户角色。 Azure 提供内置角色,并允许创建自定义角色。
如果内置的 Azure AI 开发人员角色不满足你的需求,则可以创建自定义 角色。
Warning
应用某些角色可能会限制 Azure AI Foundry 门户中针对其他用户的 UI 功能。 例如,如果用户的角色没有创建计算实例的权限,则门户中不提供创建计算实例的选项。 此行为是正常的,可以防止用户尝试会返回“拒绝访问”错误的操作。
Azure AI Foundry 项目角色
在 Azure AI Foundry 门户中,有两个级别的访问权限:
- 帐户:该帐户位于 Azure AI Foundry 资源的基础结构(包括虚拟网络设置、客户管理的密钥、托管标识和策略)的所在地。 Azure AI Foundry 资源具有内置角色,默认情况下这些角色可用于帐户和项目。 下面是内置角色及其权限的表。
| Role | Description |
|---|---|
| Azure AI 用户 | 授予读者对 AI 项目的访问权限、读者对 AI 帐户的访问权限以及 AI 项目的数据操作权限。 如果你可以分配角色,则会自动为你分配此角色。 否则,订阅所有者或具有角色分配权限的用户将授予该角色。 |
| Azure AI 项目经理 | 允许对 Azure AI Foundry 项目执行管理操作、使用项目进行构建和开发,以及有条件地将 Azure AI 用户角色分配给其他用户主体。 |
| Azure AI 帐户所有者 | 授予管理 AI 项目和帐户的完全访问权限,并允许有条件地将 Azure AI 用户角色分配给其他用户主体。 |
Note
要查看和清除已删除的 AI Foundry 账户,您必须在订阅范围内被分配为贡献者角色。
Azure AI 项目经理和 Azure AI 帐户所有者之间的主要区别在于:
- 新建 Azure AI Foundry 帐户资源。 只有 Azure AI 帐户所有者才能执行此操作。
第二个区别出现在角色定义中:数据操作
Microsoft.CognitiveServices/*。 此数据操作允许用户完成项目中的任何读取、写入或删除数据操作。 Azure AI 项目经理可以执行此操作,但 Azure AI 帐户所有者不能执行。 只有 Azure AI 用户和 Azure AI 项目经理才能获得 AI 项目的数据操作。 将 Azure AI 项目经理视为高级 Azure AI 用户。
除了这些内置角色分配之外,还有 Azure 特权管理员角色,如所有者、参与者和读者。 这些角色不特定于 Azure AI Foundry 资源权限,因此请使用前面所述的内置角色进行最低特权访问。
使用下表查看每个内置角色(包括 Azure 特权管理员角色)的权限:
| 内置角色 | 创建 Foundry 项目 | 创建 Foundry 帐户 | 在项目中生成和开发(数据操作) | 完成角色分配 | 读取者对项目和帐户的访问权限 | 管理模型 |
|---|---|---|---|---|---|---|
| Azure AI 用户 | ✔ | ✔ | ||||
| Azure AI 项目经理 | ✔ | ✔ | ✔ (仅分配 Azure AI 用户角色) | ✔ | ||
| Azure AI 帐户所有者 | ✔ | ✔ | ✔ (仅分配 Azure AI 用户角色) | ✔ | ✔ | |
| Owner | ✔ | ✔ | ✔ (将任何角色分配给任何用户) | ✔ | ✔ | |
| Contributor | ✔ | ✔ | ✔ | ✔ | ||
| Reader | ✔ |
项目的默认角色
Azure AI 用户
下面是 Azure AI 用户角色的权限:
{
"id": "/providers/Microsoft.Authorization/roleDefinitions/53ca6127-db72-4b80-b1b0-d745d6d5456d",
"properties": {
"roleName": "Azure AI User",
"description": "Grants reader access to AI projects, reader access to AI accounts, and data actions for an AI project.",
"assignableScopes": ["/"],
"permissions": [
{
"actions": [
"Microsoft.CognitiveServices/*/read",
"Microsoft.CognitiveServices/accounts/listkeys/action",
"Microsoft.Insights/alertRules/read",
"Microsoft.Insights/diagnosticSettings/read",
"Microsoft.Insights/logDefinitions/read",
"Microsoft.Insights/metricdefinitions/read",
"Microsoft.Insights/metrics/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/operationresults/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Support/*"
],
"notActions": [],
"dataActions": ["Microsoft.CognitiveServices/*"],
"notDataActions": []
}
]
}
}
Note
如果仅向用户主体分配了 Azure AI 用户角色,而未分配其他 Azure 内置角色,则还需在 Azure AI Foundry 资源上分配读者角色,以便在 Foundry 门户中查看 Foundry 资源。 这仅适用于 Foundry 门户 UX 体验。
Azure AI 项目经理
Azure AI 帐户所有者角色使用条件 Azure 角色分配委派。 使用条件委派,该角色只能将 Azure AI 用户角色分配给资源组中的用户主体。 条件委派允许管理员委派角色分配,以便团队可以开始构建 AI Foundry 项目。 有关详细信息,请参阅根据条件将 Azure 角色分配管理委托给其他用户。
下面是 Azure AI 项目经理角色的权限:
{
"id": "/providers/Microsoft.Authorization/roleDefinitions/eadc314b-1a2d-4efa-be10-5d325db5065e",
"properties": {
"roleName": "Azure AI Project Manager",
"description": "Lets you perform developer actions and management actions on Azure AI Foundry Projects. Allows for making role assignments, but limited to Cognitive Service User role.",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/delete",
"Microsoft.CognitiveServices/accounts/*/read",
"Microsoft.CognitiveServices/accounts/projects/*",
"Microsoft.CognitiveServices/locations/*/read",
"Microsoft.Authorization/*/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"notActions": [],
"dataActions": [
"Microsoft.CognitiveServices/*"
],
"notDataActions": [],
"conditionVersion": "2.0",
"condition": "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals{53ca6127-db72-4b80-b1b0-d745d6d5456d})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals{53ca6127-db72-4b80-b1b0-d745d6d5456d}))"
}
]
}
}
Azure AI 帐户所有者
Azure AI 帐户所有者角色利用委托的 Azure 角色分配管理来按条件管理其他人。 由于条件委派,Azure AI 帐户所有者角色只能将 Azure AI 用户角色分配给资源组中的其他用户主体。 条件委派允许企业管理员委托角色分配的工作,以开始使用 AI Foundry 项目进行构建和开发。 有关具有条件的角色分配的详细信息,请参阅 将 Azure 角色分配管理委派给有条件的其他人。
新 Azure AI 帐户所有者角色的完整权限集为:
{
"id": "/providers/Microsoft.Authorization/roleDefinitions/e47c6f54-e4a2-4754-9501-8e0985b135e1",
"properties": {
"roleName": "Azure AI Account Owner",
"description": "Grants full access to manage AI projects and accounts. Grants conditional assignment of the Azure AI User role to other user principals.",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/delete",
"Microsoft.CognitiveServices/*",
"Microsoft.Features/features/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Features/providers/features/register/action",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Insights/logDefinitions/read",
"Microsoft.Insights/metricdefinitions/read",
"Microsoft.Insights/metrics/read",
"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.Support/*"
],
"notActions": [],
"dataActions": [],
"notDataActions": [],
"conditionVersion": "2.0",
"condition": "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals{53ca6127-db72-4b80-b1b0-d745d6d5456d})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals{53ca6127-db72-4b80-b1b0-d745d6d5456d}))"
}
]
}
}
项目的企业 RBAC 设置示例
下表显示了企业 Azure AI Foundry 资源的基于角色的访问控制 (RBAC) 示例。
| Persona | Role | Purpose |
|---|---|---|
| IT 管理员 | 订阅所有者 | IT 管理员确保 Azure AI Foundry 资源符合企业标准。 为管理员分配资源的 Azure AI 帐户所有者角色,以允许他们创建新的 Azure AI Foundry 帐户。 为管理员分配资源的 Azure AI 项目经理角色,以允许他们在帐户内创建项目。 |
| Managers | Azure AI Foundry 资源的 Azure AI 帐户所有者 | 经理管理 Azure AI Foundry 资源、部署模型、审核计算资源、审核连接以及创建共享连接。 他们无法构建项目,但可以将 Azure AI 用户角色分配给自己和其他人以开始构建。 |
| 团队主管或首席开发人员 | Azure AI Foundry 资源的 Azure AI 项目经理 | 首席开发人员可为他们的团队创建项目并开始在项目中进行生成。 创建项目后,项目所有者邀请其他成员并分配 Azure AI 用户 角色。 |
| 团队成员或开发人员 | Azure AI Foundry 资源的 Azure AI 用户 | 开发人员在项目中构建代理。 |
Important
具有参与者角色的用户可以在 Azure AI Foundry 中部署模型。
访问在 AI Foundry 外部创建的资源
创建 AI Foundry 资源时,内置的基于角色的访问控制 (RBAC) 权限可让你访问资源。 若要使用在 AI Foundry 外部创建的资源,请确保满足以下两项:
- 你有权访问该资源。 例如,要使用新的 Azure Blob 存储帐户,请将 AI Foundry 帐户资源的托管标识添加到该存储帐户上的存储 Blob 数据读者角色。 若要使用新的 Azure AI 搜索源,请将 AI Foundry 添加到 Azure AI 搜索角色分配。
使用项目角色管理访问权限
如果你是 Azure AI Foundry 帐户资源的所有者,请添加或删除角色。 1. 在 Azure AI Foundry 的主页上,选择 Azure AI Foundry 资源。
- 选择“用户”以添加或删除资源的用户。 此外,可以通过访问控制 (IAM) 或使用 Azure CLI 在 Azure 门户中管理权限。
例如,以下命令将 Azure AI 用户角色分配给订阅中 ID 为 joe@contoso.com 的资源组 this-rg 的 00000000-0000-0000-0000-000000000000:
az role assignment create --role "Azure AI User" --assignee "joe@contoso.com" --scope /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/this-rg
为项目创建自定义角色
如果内置角色不够,请创建自定义角色。 自定义角色可以包括 Azure AI Foundry 资源的读取、写入、删除和计算权限。 使角色在项目、资源组或订阅范围内可用。
Note
需要该范围内的“所有者”角色才能在该资源中创建自定义角色。
若要创建自定义角色,请参阅以下文章之一:
- Azure 门户
- Azure CLI
- Azure PowerShell
有关自定义角色的详细信息,请参阅 Azure 自定义角色一文。
将 Microsoft Entra 组与 Azure AI Foundry 配合使用
Microsoft Entra ID 提供了多种方式来管理对资源、应用程序和任务的访问。 使用 Microsoft Entra 组,可以向一组用户而不是每个用户授予访问权限和权限。 可以在 Azure 门户中为企业 IT 管理员创建Microsoft Entra 组,以简化开发人员的角色分配过程。 创建 Microsoft Entra 组时,可以通过将该组所需的角色分配到必要的资源上,最大限度地减少新开发人员在 Foundry 项目中的角色分配数量。
完成以下步骤,将 Entra ID 组与 Azure AI Foundry 配合使用:
导航到 Azure 门户中的 组 。
在组门户中创建新的 安全组 。
分配 Microsoft Entra 组的所有者,并将组织中的单个用户主体作为成员添加到该组中。 保存组。
导航至需要进行角色分配的资源。
- 例: 若要在 Foundry 中生成代理、运行跟踪等,必须将最低特权“Azure AI 用户”角色分配给用户主体。 将“Azure AI 用户”角色分配给新 Microsoft Entra 组,以便企业中的所有用户都可以在 Foundry 中构建。
- 例: 若要在 Azure AI Foundry 中使用跟踪和监视功能,需要在连接的 Application Insights 资源上分配“读取者”角色分配。 将“读者”角色分配给新的Microsoft Entra 组,以便企业中的所有用户都可以使用跟踪和监视功能。
导航到访问控制(IAM)。
选择要分配的角色。
分配对“用户、组或服务主体”的访问权限,然后选择新的安全组。
查看并分配。 角色分配现在适用于分配给组的所有用户原则。
若要详细了解 Entra ID 组、先决条件和限制,请参阅: