随着云原生安全和软件零信任方法的重要性日益增加,有关云资源访问级别的问题变得越来越重要。同样重要的是理解不同授权策略的价值。
在本文中,我们概述了细粒度和粗粒度授权方法。关键要点包括:
- 粗粒度授权适用于更广泛形式的访问控制,例如侧重于角色的访问控制。
- 细粒度授权实现了更高级别的特定性,这通常是确保更复杂和可扩展的云原生开发所需的。
- 开放策略代理(OPA)和Styra声明授权服务(DAS)有助于实现正确级别的访问控制,同时自动化策略管理和实施,从而实现大规模的细粒度访问控制。
什么是粒度授权?
授权策略控制谁或什么可以在给定系统中做什么。授权决策的具体程度决定了所涉及的粒度级别。换句话说,更细粒度是指授权系统或网络中的特定用户或实体所需的更高级别的细节或上下文。
仅基于关联角色的授权策略通常是粗粒度的。然而,所需的详细信息和上下文的数量(如一天中的位置或时间)越多,粒度就越大。
以下是关键区别:
- 细粒度访问控制是根据多种条件授予或撤销对关键系统和数据的访问的能力。例如,某个角色下的用户只有在公司工作至少一年后才能访问服务a。
- 粗粒度访问控制在授予或拒绝访问时需要较低级别的特定性。例如,特定角色(例如工程或人员操作)下的任何用户都可以访问服务a。
RBAC与ABAC:有什么区别?
虽然基于角色的访问控制(RBAC)通常与粗粒度授权相关联,但基于属性的访问控制通常是一种更细粒度的方法,因为它使团队能够指定更精细的细节和关于允许访问哪些资源的上下文信息。
基于角色的访问控制(RBAC)
RBAC允许您将用户分配给角色,然后将角色映射到权限。您可以为管理员用户创建一个角色,为普通用户创建另一个角色。作为一个静态模型,RBAC更易于管理和配置,但由于它为特定角色中的所有用户提供了相同的权限,因此它可能不太安全。
然而,这种方法适用于不需要多层条件的情况。例如,企业使用角色为员工提供不同的访问级别:经理可以查看其团队成员的工资信息,但团队成员无法访问彼此的工资信息。
角色爆炸是一个挑战
粗粒度授权的挑战之一是其有限的灵活性和可扩展性。在RBAC模型中,每个角色都有自己的权限集。随着用户数量或工作职能的增加,管理部门可能需要创建新的角色和权限,而这些角色和权限不容易与以前的映射相匹配,这可能会给RBAC管理带来巨大的复杂性。
正如我们在2022年云原生对齐报告中所发现的,64%的开发者表示,云原生扩展的最大挑战之一是为IT管理设置适当的员工控制。随着资源或功能的增加,由于角色爆炸,管理这些角色变得更具挑战性。
要点:当您的组织需要更多的灵活性和可扩展性时,它需要转向更细粒度的授权方法,例如ABAC。例如,正如我们所讨论的,RBAC对于Kubernetes API安全性是不够的。要了解更多信息,请下载我们的白皮书。
基于属性的访问控制(ABAC)
基于属性的访问控制为团队提供了更大程度的粒度,因为它映射到用户的属性,而这些属性可能比角色更加具体和基于上下文。例如,您可以为用户、资源和操作分配属性,然后创建细粒度策略,允许特定用户组仅在一天中的特定时间访问特定资源。这类政策有助于确保员工在工作时间之外不会访问关键信息。
正如您所料,细粒度授权通常更安全,因为它缩小了访问范围。移除权限的灵活性对于最大限度地减少横向移动和数据泄漏的风险也至关重要。正如《2022年数据泄露调查报告》所指出的,当涉及到泄露的记录数量时,特权方可能会比局外人造成更大的损害。
另一方面,ABAC的缺点是管理和配置可能更具挑战性,因为它可能需要一系列更复杂的策略来规定用户获得资源和服务访问权限的条件。
想了解更多有关云原生应用的细粒度控件吗?立即观看Styra网络研讨会。
摘要:粗粒度与细粒度访问控制
在高度分布式和异构的云架构中,应用程序有不同的授权需求。细粒度控件与粗粒度控件之间的选择最终取决于手头的项目。
下面是一个快速分解:
Coarse-Grained Authorization | Fine-Grained Authorization | |
Level of granularity | Less specificity is taken into account when determining who or what has access to resources | Multiple conditions determine access |
Flexibility | Static authorization model that doesn’t always scale well, as it can lead to role explosion | Dynamic approach that takes context into account for increased security |
Example | Role-based access control (RBAC) | Attribute-based access control (ABAC) |
Use case | Using employee’s job function to grant or deny access to salary information | Access to data is limited according to employee’s location, budget managed or working hours |
在细粒授权和粗粒授权之间仍不确定?
您不需要在粗访问控制和细粒访问控制之间进行选择。使用OpenPolicyAgent(OPA)和StyraDAS实现云本地授权,您可以根据应用程序的独特需求实现RBAC和ABAC机制。作为开放策略代理(OPA)的控制平面,Styra DAS有助于大规模实施授权,因为它自动化了云原生环境中的策略管理。
Tags
本文:https://architect.pub/what-you-need-know-about-fine-grained-vs-coarse-grained-authorization