【应用安全】关于细粒度与粗粒度授权,您需要了解的内容

简介: 随着云原生安全和软件零信任方法的重要性日益增加,有关云资源访问级别的问题变得越来越重要。同样重要的是理解不同授权策略的价值。

随着云原生安全和软件零信任方法的重要性日益增加,有关云资源访问级别的问题变得越来越重要。同样重要的是理解不同授权策略的价值。

在本文中,我们概述了细粒度和粗粒度授权方法。关键要点包括:

  • 粗粒度授权适用于更广泛形式的访问控制,例如侧重于角色的访问控制。
  • 细粒度授权实现了更高级别的特定性,这通常是确保更复杂和可扩展的云原生开发所需的。
  • 开放策略代理(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

相关文章
|
测试技术 程序员 数据库
软件开发文档介绍
软件开发文档是软件开发使用和维护过程中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。 软件开发文档可以分为开发文档和产品文档两大类。
5608 0
|
11月前
|
存储 JSON Java
ELK 圣经:Elasticsearch、Logstash、Kibana 从入门到精通
ELK是一套强大的日志管理和分析工具,广泛应用于日志监控、故障排查、业务分析等场景。本文档将详细介绍ELK的各个组件及其配置方法,帮助读者从零开始掌握ELK的使用。
|
12月前
|
Java Maven Spring
如何在idea中创建Springboot项目? 手把手带你创建Springboot项目,稳!
文章详细介绍了在IDEA中创建Spring Boot项目的过程,包括选择Spring Initializr、配置项目属性、选择Spring Boot版本、导入依赖、等待依赖下载以及项目结构简介。
11440 1
|
关系型数据库 MySQL Linux
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
这篇文章记录了在CentOS 7系统上安装并配置MySQL后,使用Navicat尝试进行远程连接但失败的问题。问题的主要原因是虚拟机的防火墙没有关闭。文章详细介绍了如何检查防火墙的状态,如何临时关闭它,以及如何禁止防火墙在系统启动时自动启动。当防火墙处于开启状态时,远程连接无法成功;关闭或禁用防火墙后,远程连接便能成功建立。
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
|
网络协议 搜索推荐
网络中的单播、多播和广播
【8月更文挑战第24天】
552 0
|
Unix Linux Shell
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
|
供应链 区块链 数据安全/隐私保护
探索区块链技术在金融领域的应用与前景分析
本文将深入探讨区块链技术在金融领域的具体应用场景,分析其优势与挑战,并展望未来发展趋势。通过案例分析和技术解析,揭示区块链技术在金融行业中的革新意义及前景。
2148 15
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
29887 2
微服务架构最强讲解,那叫一个通俗易懂!
|
JSON 负载均衡 Java
SpringCloud Feign 远程调用(史上最详细讲解)
SpringCloud Feign 远程调用(史上最详细讲解)
13965 0
SpringCloud Feign 远程调用(史上最详细讲解)
|
运维 监控 安全