基于角色的访问控制(RBAC)详解
1. RBAC 概述
基于角色的访问控制(RBAC)用于云资源的访问管理,这对任何组织都至关重要,因为我们不希望未经授权的用户访问资源。可以遵循最小权限原则,为不同用户分配 RBAC 角色以完成日常任务。
RBAC 有内置角色,可提供细粒度的资源访问管理,同时也支持根据组织需求创建自定义角色。以下是 Azure RBAC 的一些用例场景:
- 允许用户对资源执行所有操作
- 允许组管理虚拟机
- 允许用户作为帮助台代理并向微软支持部门打开案例
- 允许应用程序管理 IP 地址
使用 RBAC 可以在组织内划分职责,如网络管理员、虚拟机管理员、计费管理员等,并授予他们执行各自管理任务所需的权限,而不是给予每个人无限制的访问权限。
2. RBAC 相关概念
RBAC 分配涉及三个关键要素,即“谁(Who)”、“什么(What)”和“哪里(Where)”,下面详细解释这些概念。
2.1 安全主体(Security Principal - Who)
安全主体代表 Azure AD 中请求访问资源的对象,包括用户、组、服务主体或托管标识。分配角色时,可以选择要分配权限的安全主体。如果将角色分配给一个组,该组的所有成员只要是组的一部分,就会自动继承该角色。安全主体代表可以分配权限的身份。
2.2 角色定义(Role Definition - What)
每个 RBAC 角色都有对应的角色定义,包含安全主体分配该角色后可以执行的一组权限。角色定义以 JSON 文件形式定义,包含名称、ID、