基于属性的abac权限管理-j9九游会登录
在华为云统一身份认证服务(iam)中,授权是确保正确主体拥有正确访问权限的关键。两种主要的授权策略是基于属性的访问控制(abac)和基于角色的访问控制(rbac)。了解这两种模型的区别可以帮助您设计更安全、更高效的访问控制方案。
概念定义
- 基于属性的访问控制(abac): abac是一种附加到iam身份(如iam用户)和基于属性(attributes)来定义权限的授权策略。abac 基于主体、资源、操作、环境等属性,通过策略实时评估多个属性组合来决策是否授权。例如,您可以规定只有当用户拥有“project=alpha”标签时,才能访问同样拥有标签为“project=alpha”的资源。
- 基于角色的访问控制(rbac): rbac是一种基于用户在组织中担任的职能或角色来定义权限的策略。在iam中,这意味着为不同的工作职能创建不同的策略或利用华为云预置角色,并将这些策略附加到iam身份(如iam用户)并约束其授权范围(如某个项目)。例如,你可以为某容器管理员用户授予华为云预置的cce administrator角色, 并约束其授权仅在项目alpha下生效。
例如, 您的员工分别需要在三个项目alpha、beta、gamma上工作,且需要访问ecs资源,您可以选择ecs administrator角色进行授权,并限制授权范围分别为项目alpha,项目beta及项目gamma。这样您的员工将只能在授权范围内的项目中,根据您授权的角色权限来访问云服务资源。如果员工的工作发生变化,需要额外访问cci提供的容器能力,或用户c需要访问归属于项目beta的资源时,您必须创建新的角色授权关系,并更新授权范围,否则将无法满足调整后的资源访问诉求。
核心差异
|
特性 |
基于角色的访问控制 (rbac) |
基于属性的访问控制 (abac) |
|---|---|---|
|
授权关系 |
身份-角色-授权范围 |
身份-策略 |
|
授权基础 |
基于预定义的角色和职能 |
基于身份、资源、环境等的动态属性 |
|
策略数量 |
随着职能和资源增加,通常需要更多的策略 |
通常需要更少的策略,因为策略是基于属性而非具体主体 |
|
扩展性 |
新增资源或职能时,可能需要手动更新现有策略 |
权限可随新资源自动扩展,无需修改现有策略 |
|
权限粒度 |
通常授予对特定资源的访问权限 |
允许基于属性授权,支持更为丰富的条件控制属性 |
|
管理复杂度 |
在大型或快速变化的环境可能变得复杂 |
简化了新项目或人员变动时的权限管理 |
abac相对于rbac的优势
- 动态响应变化与增长:对于新资源的权限,只要属性匹配,便会自动授予,无需手动将策略分配给身份。这极大地简化了新项目启动或团队成员调动时的权限管理。
- 更细粒度的权限控制:abac允许使用基于主体、资源、操作、环境上下文的属性,从而实现更细粒度的控制。
- 策略数量更少,管理更简单:abac通常需要更少的策略。您无需为每个工作职能创建单独的策略,从而使策略更容易管理和维护。
- 与企业身份供应商集成:abac允许您在使用外部身份供应商(idp)时, 将员工在idp上的属性映射至iam的身份标签(通过iam身份中心), 并在策略中基于这些标签进行访问控制。详情参考iam身份中心的。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨