你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文面向平台工程师、中央 IT 管理员和其他高级管理员,这些管理员计划和管理Microsoft Dev Box 部署。 它描述了Microsoft Dev Box 支持的不同内置角色,以及它们如何映射到组织角色(如平台工程师和开发经理),以便在推出 Dev Box 之前规划正确的权限模型。
Azure 基于角色的访问控制(RBAC)指定定义要应用的权限的内置角色。 无需直接向单个用户或组授予精细权限,而是分配将相关权限捆绑在一起的角色,以便可以跨资源一致地应用和审核访问权限。 你可以通过特定范围的角色分配,将此角色定义分配给用户或组。 范围可以是单个资源、资源组或整个订阅。 在下一部分中,你将了解 Microsoft Dev Box 支持哪些内置角色。
有关详细信息,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)?
注意
更改角色分配后,这些更新可能需要几分钟时间才能传播。
内置角色
在本文中,Azure 内置角色根据其影响范围按逻辑分为三种组织角色类型:
平台工程师角色:影响开发人员中心、目录和项目的权限
开发经理:影响基于项目的资源的权限
开发人员角色:影响用户的权限
以下是 Microsoft Dev Box 支持的内置角色:
| 组织角色类型 | 内置角色 | 说明 |
|---|---|---|
| 平台工程师 | “所有者” | 授予创建/管理开发人员中心、目录和项目的完全控制权,并能向其他用户授予权限。 了解有关所有者角色的更多信息。 |
| 平台工程师 | 参与者 | 授予创建/管理开发人员中心、目录和项目的完全控制权,但不包括向其他用户分配角色的权限。 了解有关参与者角色的更多信息。 |
| 平台工程师 | DevCenter 所有者 | 提供管理所有 Microsoft.DevCenter 资源并对其的访问权限。 详细了解 DevCenter 所有者角色。 |
| 开发经理 | 开发人员中心项目管理员 | 授予管理项目和 Dev Box 某些方面的权限。 了解有关 DevCenter 项目管理员角色的更多信息。 |
| 开发人员 | Dev Box 用户 | 授予创建 Dev Box 的权限,并对其创建的 Dev Box 拥有完全控制权。 了解有关 Dev Box 用户角色的更多信息。 |
角色分配范围
在 Azure RBAC 中,范围是访问权限适用的资源集。 分配角色时,了解范围至关重要,这样才能仅授予所需的访问权限。
在 Azure 中,可以在以下四个级别指定范围:管理组、订阅、资源组和资源。 范围采用父子关系结构。 层次结构的每个级别都会使范围更具针对性。 可以在其中任何一个范围级别分配角色。 所选级别决定了角色的应用广泛程度。 较低级别继承较高级别的角色权限。 了解有关 Azure RBAC 范围的更多信息。
对于 Microsoft Dev Box,请考虑以下范围:
| Scope | 说明 |
|---|---|
| 订阅 | 用于管理所有 Azure 资源和服务的计费和安全。 通常,只有平台工程师拥有订阅级访问权限,因为此角色分配会授予对订阅中所有资源的访问权限。 |
| 资源组 | 用于将资源分组在一起的逻辑容器。 资源组的角色分配授予对该资源组及其内所有资源(如开发人员中心、Dev Box 定义、Dev Box 池、项目和 Dev Box)的权限。 |
| 开发人员中心(资源) | 一组需要类似设置的项目。 开发人员中心的角色分配仅授予对开发人员中心本身的权限。 为开发人员中心分配的权限不会被其他 Dev Box 资源继承。 |
| 项目(资源) | 创建 Dev Box 时用于应用通用配置设置的 Azure 资源。 项目的角色分配仅授予对该特定项目的权限。 |
| Dev Box 池(资源) | 一组可一起管理并应用类似设置的 Dev Box。 Dev Box 池的角色分配仅授予对该特定 Dev Box 池的权限。 |
| Dev Box 定义(资源) | 指定源映像和大小(包括计算大小和存储大小)的 Azure 资源。 Dev Box 定义的角色分配仅授予对该特定 Dev Box 定义的权限。 |
常见 Dev Box 活动的角色
下表显示常见的 Dev Box 活动以及用户执行该活动所需的角色。
| 活动 | 角色类型 | 角色 | Scope |
|---|---|---|---|
| 授予创建资源组的权限。 | 平台工程师 | 所有者或参与者 | 订阅 |
| 授予提交 Microsoft 支持工单的权限,包括请求容量。 | 平台工程师 | 所有者、参与者、支持请求参与者 | 订阅 |
| 授予创建虚拟网络和子网的权限。 | 平台工程师 | 网络参与者 | 资源组 |
| 授予创建网络连接的权限。 | 平台工程师 | 所有者或参与者 | 资源组 |
| 授予向其他用户分配角色的权限。 | 平台工程师 | “所有者” | 资源组 |
| 授予以下权限: - 创建/管理开发人员中心。 - 添加/删除网络连接。 - 添加/删除 Azure 计算库。 - 创建/管理 Dev Box 定义。 - 创建/管理项目。 - 将目录附加/管理到开发人员中心或项目(项目级目录必须在开发人员中心启用)。 - 配置 Dev Box 限制。 |
平台工程师 | 参与者 | 资源组 |
| 授予创建和管理 Dev Box 资源的权限,而无需向资源组中的其他资源类型授予访问权限。
- 开发人员中心 - 项目 - 开发框定义 - 开发框池 |
平台工程师 | DevCenter 所有者 | 资源组 |
| 授予为开发人员中心添加或删除网络连接的权限。 | 平台工程师 | 参与者或 DevCenter 所有者 | 开发人员中心 |
| 授予启用/禁用项目目录的权限。 | 开发经理 | 参与者 | 开发人员中心 |
| 授予以下权限: - 添加、同步、删除目录(项目级目录必须在开发人员中心启用)。 - 创建 Dev Box 池。 - 停止、启动、删除池中的 Dev Box。 |
开发经理 | 开发人员中心项目管理员 | 项目 |
| 在项目中创建和管理自己的 Dev Box。 | 用户 | Dev Box 用户 | 项目 |
| 在 GitHub 或 Azure Repos 存储库中创建和管理目录。 | 开发经理 | 不受 RBAC 管理。
- 用户必须通过 Azure DevOps 或 GitHub 获得权限分配。 |
存储库 |
重要说明
组织的订阅用于管理所有 Azure 资源和服务的计费和安全。 你可以在订阅上分配所有者或参与者角色。 通常,只有平台工程师拥有订阅级访问权限,因为这包括对订阅中所有资源的完全访问权限。
平台工程师的角色
若要授予用户管理组织订阅中 Microsoft Dev Box 的权限,可以在资源组范围分配“所有者”或“参与者”角色,或在开发中心范围分配开发中心所有者角色。
使用“所有者”或“参与者”角色时,请将其分配给 资源组。 资源组内的开发人员中心、网络连接、Dev Box 定义、Dev Box 池和项目继承这些角色分配。
所有者角色
分配所有者角色,授予用户创建或管理 Dev Box 资源的完全控制权,并能向其他用户授予权限。 当用户在资源组中拥有所有者角色时,他们可以在该资源组内的所有资源上执行以下活动:
- 为平台工程师分配角色,以便他们可以管理 Dev Box 资源。
- 创建开发人员中心、网络连接、Dev Box 定义、Dev Box 池和项目。
- 查看、删除和更改所有开发人员中心、网络连接、Dev Box 定义、Dev Box 池和项目的设置。
- 附加和分离目录。
参与者角色
分配参与者角色,授予用户在资源组内创建或管理开发人员中心和项目的完全控制权。 参与者角色与所有者角色具有相同的权限,但不包括:
- 执行角色分配。
注意
当你在资源组上分配所有者或参与者角色时,这些权限也适用于该资源组中存在的非 Dev Box 相关资源。
DevCenter 所有者角色
可以在资源组范围或开发人员中心范围内分配 DevCenter 所有者角色。
资源组范围内的 DevCenter 所有者角色
将 DevCenter 所有者角色分配给资源组,以便用户完全控制 Microsoft.DevCenter 资源,而无需授予对资源组中其他资源的广泛访问权限。
当用户在资源组中拥有 DevCenter 所有者角色时,可以:
- 在该资源组中创建、更新和删除开发人员中心。
- 在该资源组中创建、更新和删除项目。
- 在该资源组中创建、更新和删除开发框池和开发框定义。
- 管理附加到资源组中开发人员中心的目录、网络连接和计算库。
- 通过在项目级别分配 DevCenter 项目管理员和 DevCenter Dev Box 用户角色来委托项目管理。
范围的 DevCenter 所有者角色
将 DevCenter 所有者角色分配给开发人员中心,让用户完全控制 Microsoft.DevCenter 资源,而无需授予对其他开发人员中心及其资源的更广泛访问权限。 分配有此角色的用户无法创建新的开发人员中心。
当用户在开发人员中心具有 DevCenter 所有者角色时,他们可以:
- 在该开发人员中心中创建、更新和删除项目。
- 在该开发人员中心中创建、更新和删除开发框池和开发框定义。
- 管理附加到该开发中心的目录、网络连接和计算资源库。
- 通过在项目级别分配 DevCenter 项目管理员和 DevCenter Dev Box 用户角色来委托项目管理。
开发人员经理的角色
开发经理角色有一个:DevCenter 项目管理员。与平台工程师角色相比,此角色在较低级别范围拥有更受限制的权限。 你可以将此角色分配给开发经理,使他们能够为其团队执行管理任务。
开发人员中心项目管理员角色
分配 DevCenter 项目管理员角色,以启用以下功能:
添加、同步、删除目录(项目级目录必须在开发人员中心启用)。
创建 Dev Box 池。
停止、启动、删除池中的 Dev Box。
开发人员角色
开发人员角色有一个:Dev Box 用户。 此角色使开发人员能够创建和管理自己的 Dev Box。
Dev Box 用户角色
分配 Dev Box 用户角色,授予用户创建 Dev Box 的权限,并对其创建的 Dev Box 拥有完全控制权。 开发人员可以在其创建的任何 Dev Box 上执行以下操作:
- 创建
- 启动/停止
- 重启
- 延迟计划关闭
- 删除
标识和访问管理 (IAM)
Azure 门户中的访问控制 (IAM) 页用于在 Microsoft Dev Box 资源上配置 Azure 基于角色的访问控制。 可以为 Active Directory 中的个人和组使用内置角色。 以下屏幕截图显示在 Azure 门户中使用访问控制 (IAM) 的 Active Directory 集成 (Azure RBAC):
有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色。
开发人员中心、资源组和项目结构
组织应预先投入时间规划开发人员中心的放置位置,以及资源组和项目的结构。
开发人员中心:按要一起管理的项目集组织开发人员中心,应用类似的设置,并提供类似的模板。
组织可以使用一个或多个开发人员中心。 通常,组织内的每个子组织都有自己的开发人员中心。 在以下情况下,可以考虑创建多个开发人员中心:
如果希望特定配置可用于一部分项目。
如果不同的团队需要在 Azure 中拥有和维护开发人员中心资源。
项目:与每个开发团队或从事一个应用程序或产品的人员组相关联。
在为资源组分配角色时,规划尤为重要,因为它还将权限应用于资源组内的所有资源,包括开发人员中心、网络连接、Dev Box 定义、Dev Box 池和项目。
为确保用户仅被授予对适当资源的权限:
创建仅包含 Dev Box 资源的资源组。
根据所需的 Dev Box 定义、Dev Box 池以及应具有访问权限的开发人员来组织项目。 需要注意的是,Dev Box 池决定了 Dev Box 的创建位置。 开发人员应在靠近自己的位置创建 Dev Box,以实现最小延迟。
例如,可为不同的开发团队创建单独的项目,以隔离每个团队的资源。 然后,项目中的开发经理可以被分配到项目管理员角色,该角色仅授予他们访问其团队资源的权限。
重要说明
预先规划结构,因为创建后无法将项目等 Dev Box 资源移动到不同的资源组。
目录结构
Microsoft Dev Box 使用目录使开发人员能够通过任务目录和自定义文件为 Dev Box 部署自定义项,例如安装软件、添加扩展、克隆存储库等。
Microsoft Dev Box 将目录存储在 GitHub 存储库或 Azure DevOps Services 存储库中。 可以将目录附加到开发人员中心或项目。
你可以将一个或多个目录附加到开发人员中心,并在该级别管理所有自定义项。 要更精细地控制开发人员访问自定义项的方式,你可以在项目级别附加目录。 在规划附加目录的位置时,应考虑每个开发团队的需求。