网络安全架构 | IAM(身份访问与管理)架构的现代化

IAM(身份和访问管理)通常负责用户需要访问的各种系统中的身份生命周期管理,包括入职、离职、角色变更。尽管IAM解决方案已经在市场上销售了30多年,但仍被认为是极其复杂的,非常耗费时间和耗费资源

IAM的构建模块可以分为三类:身份、认证、授权。现有技术主要集中在前两个方面,即身份生命周期管理和身份认证。而授权通常由开发人员和应用程序所有者负责。所导致的结果是没有真正的控制,也缺乏对用户可以做什么或看什么的可见性

授权是组织安全的核心,这也意味着它是生产力的核心,授权决定了数字身份在每个应用程序中可以做什么。确保数据安全并避免违规是授权的全部内容,确保正确的人在正确的时间动态地获得正确的访问权是根本。授权方法的发展旨在简化授权过程,使其能够更快扩展,并为组织提供更好的控制和可见性。

本文主要以国外知名IAM(身份访问与管理)厂商PlainID公司的视角,思考了IAM架构现代化的问题。按照PlainID的观点,授权管理的演进路线图是:访问控制列表(ACL)–>基于角色的访问控制(RBAC)–>基于属性的访问控制(ABAC)–>基于策略的访问控制(PBAC)。PBAC是当前和未来的最佳授权方法,因为PBAC结合了RBAC和ABAC的最佳特性IAM架构现代化的核心是PBCA。关于PBCA的安全模式示例,可参见《网络安全架构 | 安全模式方法论》。

一、从IAM到授权演进

01 IAM面临的困境

IAM(身份和访问管理)通常负责用户需要访问的各种系统中的身份生命周期管理,包括入职、离职、角色变更等。

但是,尽管IAM解决方案已经在市场上销售了30多年,但它们被认为是极其复杂的,并且非常耗时和耗费资源。

除此之外,组织的数据和身份也在不断扩大。许多组织正在考虑或已经将其数据扩展到云。曾经由组织的内部措施所控制和保护的内容,现在已经呈现分布式扩散,所以对它们的访问控制也随之分布式扩散

许多组织还需要支持分布式身份。员工可以从任何地方、办公室、家庭或移动设备访问组织系统。公司兼并、外部承包商,扩大了这些系统需要支持的身份来源。

02 IAM的构建模块

IAM的构建模块可以分为以下三类:

  • 身份:如何定义和管理在线体验?
  • 认证:如何证明身份?
  • 授权:身份可以做什么?

现有技术主要集中在前两个方面,即身份生命周期管理和身份认证。授权通常由开发人员、应用程序所有者负责。这种局面的结果是没有真正的控制,也缺乏对用户可以做什么或看到什么的可见性。

是时候改变了,是时候找到更好的方式来处理授权了。授权方法的发展旨在简化授权过程,使其能够更快地扩展,并向资产所属的组织提供更好的控制和可见性

03 授权的演进:从RBAC到ABAC再到PBAC

分配访问控制是信息安全和法规遵从性的基本步骤之一。企业通常处理个人、商业、企业内部的数据,这些数据绝对不能泄露给公众,也不能泄露给组织内部。所有主要的法规遵从性制度,如FISMA、PCI-DSS、HIPAA和GDPR,都有详细的要求,规定了谁可以访问某些数据、何时可以访问这些数据、以及如何保存访问记录。但最后一个问题仍然存在,但如何确保未经授权的人员不能访问该数据?

1)使用属性来调节访问

ABAC(基于属性的访问控制)下,对特定记录或资源的访问,是基于访问者(主体)、资源本身(对象)、以及访问对象的时间和地点(环境)的某些特征即属性进行的。主体的属性可以包括其职称、证书、受训情况。对象的属性可以包括其相关项目、其包含的个人识别信息(PII)、以及该PII的敏感性。从整体上看,这些属性现在可以用来设置允许访问数据和资源的规则。

而另一方面,RBAC(基于角色的访问控制)涉及为每个组织或业务功能创建一个角色,授予该角色访问某些记录或资源的权限,并将用户分配给该角色。这种系统完全是太颗粒化了,很不灵活,并且在大范围场景下非常受限。

2)使用PBAC简化访问控制和智能化权限设置

PBAC(基于策略的访问控制)下,授权不依赖于任何特定的实现(如XACML),并且可以用自然语言设置策略,如“团队领导只能在工作日的上午9点到下午6点之间,授予团队成员对项目的访问权限”。这使得管理大量用户和数据更加简单。

此外,PBAC支持环境控制。因此,如果存在只应在某些公司计算机上查看的敏感文件,则可以轻松设置策略以限制对场内系统的访问。

策略也可以基于事件快速调整。例如,如果工程师在紧急情况下需要访问,他们可以在紧急情况下在有限的时间内被授予立即访问权限。

PBAC还通过隔离数据访问、控制访问蔓延,甚至阻止授权用户以危险方式访问数据,使遵守GRC和GDPR等法规变得更加容易。

3)以自动化应对永恒的挑战

随着角色、组织结构、新项目分配的变化,PBAC可以立即调整用户可以访问的文档、医疗记录、服务器等。无需执行任何其他操作,即可启动访问新项目数据、部门中的新用户。PBAC确实是一种更加有效的方法,以支持您的访问决策。
PBAC是一种新兴的模式,旨在帮助企业满足需求,即基于公司政策和治理要求,实施可操作的访问控制方案。

04 基于组的访问 vs. 基于资源的访问

1)基于组的访问

传统上,安全组是授权访问数据和操作的最常用方式。安全组或安全角色充当链接,作为用户和数据、信息或操作之间的中间层。但它们并不能直接反映用户实际可以做什么或看到什么

例如:我们希望开发人员访问开发数据,而管理人员访问管理数据。因此,我们为开发人员创建一个组,为管理人员创建另一个组,并相应地分配用户。但谁负责确保开发组只能访问开发文档?管理组只能访问管理数据?如果分配给两个组的开发经理,意外地在开发文件夹中放置了“员工管理评估”文档,会发生什么情况?

当使用基于组的访问时,责任会被转移。IAM团队通常将用户连接到组,但该组可以访问的数据和活动是由应用程序或业务所有者负责的。在实践中,用户常常获得对他们不需要的太多资源的访问,并且无法获得对他们确实需要的特定资源和工具的访问。

这种方法会导致太多的错误,而且无法扩展。还原到开发人员示例:每当开发人员加入新项目时,都需要将其分配给一组新的文档、工具和权限。此外,可能需要撤销对他们以前的工具集等的访问。如果组织中只有少数开发人员,这可能是可以管理的。但是,在有成百上千名员工的地方会发生什么呢?即使只有一名员工更改角色,IAM团队也将花费大量不必要的时间来解除和重新分配权限。

2)基于资源的访问

更好的方法是将用户直接连接到数据基于资源的访问允许您将用户连接到他们有权访问的数据。无需中间人,无需派发责任,无需任何可能导致潜在错误的未知阶段。

例如,在基于资源的访问中,可以同时基于用户和文档的匹配项目标识符,授予访问权。它还可以基于用户在项目中的角色,根据项目阶段确定访问权限,比如项目A处于审阅阶段,因此其数据可供分配给此项目的所有审阅者访问。

因此,基于资源的访问允许直接的连接,允许对于用户可以看到什么和可以执行什么的精确的可视性。

二、使用PBAC重构IAM架构

01 重构IAM架构的思路

随着面对全球化的数字转型和网络安全威胁向量的持续增长,IAM专家现在发现传统IAM架构模式并不总是合适。一种新的、现代的IAM模式需要演进,以更好地支持更多的应用程序和更先进的用例。最终,这成为支持组织目标更加灵活同时主动降低风险的唯一途径。

PlainID承认这个架构的挑战性。这就是为什么我们已经开发了一个“现代化的IAM架构”模式(或观点),来解决授权策略和PBAC如何重新设计IAM的这个问题。

我们通过将PBAC(基于策略的访问控制)实现为一个集中式服务,来重新思考和重新设计身份和访问管理(IAM)架构。这种架构改变,允许组织改善他们的安全态势,降低风险并变得更加敏捷。
这个PBAC服务不仅应该支持一个特定的应用程序集,而且应该充当不同的IAM技术的焦点(或“大脑”),以向一个不同的更大的应用程序和平台集,提供动态访问控制。

作为本文的依据和输入,我们引用了两个不同的出版物,分别来自两个组织,即GartnerNIST(美国国家标准与技术研究所)。建议您阅读这两个出版物,以获得有关每个组织观点的全面视图。

下面是一些可以作为IAM如何现代化的介绍的摘录。

在这些摘录之后,我们将讨论如何通过应用PBAC来实现IAM现代化。这种现代化方法包括几个不同的视角,关于不同的IAM技术和解决方案如何互操作,以提供更动态和敏捷的IAM架构。

02 Gartner报告:构建敏捷和现代化身份基础设施

在Gartner关于构建敏捷和现代化身份基础设施的技术报告中,Gartner提出:

“数字业务和网络安全威胁的增加,对IAM系统提出了更高的要求。组织必须支持更广泛的身份用例,并且能够更快速、近实时地适应新的请求和威胁。为了应对这些挑战,组织必须采纳一种新的视角,事关IAM系统必须如何运行和演进。一个新的、动态的、智能的架构,以先进的分析技术得到增加,正在演进以满足现代身份的需要。”

 进一步Gartner提出:

IAM必须从支持一系列身份竖井中特定用例的一套能力集合,演进到一个更加灵活的平台,从而能够快速支持新的业务和新的访问需求组合。” 

03 NIST标准草案:零信任架构

零信任架构(ZTA)是一个新的概念,它被许多组织所接受。2020年2月,NIST发布了一份针对安全架构师和关于ZTA实施路线图的第二版草案。NIST是如何定义零信任和零信任架构的:“零信任(ZT)提供了一套概念和思想,旨在面向可能失陷的网络时,减少其信息系统和服务中执行精确的、每次请求的访问决策的不确定性。零信任架构(ZTA)是一种利用零信任概念且包含组件关系、工作流规划、访问策略的企业网络安全计划。”“这一定义集中在问题的症结上,即防止未授权访问数据和服务的目标,并使访问控制执行尽可能地细粒度。”NIST还定义了一套需要应用的原则。这些原则中的几个(特别是第3、4、6条)特别指出,需要使用基于会话的动态策略评估的细粒度和动态访问控制

  • 1. 所有数据源和计算服务都被认为是资源
  • 2. 无论网络位置如何,所有通信都要收到保护。
  • 3. 在每个会话的基础上,授予单个企业资源的访问权。
  • 4. 对资源的访问由动态策略决定,包括客户端身份、应用程序、请求资产的可观察状态,并且可以包括其他行为属性
  • 5. 企业确保所有拥有的和有关的设备处于尽可能最安全的状态,并且监控资产以确保它们处于尽可能最安全的状态。
  • 6. 在允许访问之前,所有资源的认证和授权都是动态的和严格强制执行的。
  • 7. 企业收集关于网络基础设施和通信的当前状态的尽可能多的信息,并使用它来改善其安全态势。

零信任架构的中心是使用一个策略决策点(PDP)和一个策略执行点(PEP)外部化访问决策到一个逻辑点的概念:“在图1所示的访问抽象模型中,一个用户或机器需要访问企业资源。访问是通过策略决策点(PDP)和相应的策略执行点(PEP)来授予的。”

“系统必须确保用户是真实的,并且请求是有效的。PDP/PEP通过恰当的判断以允许主体访问资源。这意味着零信任适用于两个基本领域:认证和授权。”

NIST阐述了向零信任模型的转变是一个旅程,不单纯事关新的技术,更关注现代化计划需要如何逐步被应用,以支持更多的用例。

“组织应寻求逐步实现零信任原则、过程变更和技术解决方案,以通过用例来保护它们的数据资产和业务功能。 ”

04 实现IAM架构现代化的方法

PlainID IAM现代化方法的中心是授权“策略”。在PlainID的PBAC平台中定义的策略提供了一个通用工具,以对广泛的应用程序、服务和API,定义上下文访问权限
PBAC方法明显地模仿了NIST定义ZTA访问模型的方式,即“访问是通过策略决策点(PDP)和相应的策略执行点(PEP)来授予的。”但是这个ZTA访问模型的问题是所有资源(应用程序、数据等)需要能够停止授权流,并在授予访问之前向策略引擎发送访问请求。该模型完全适用于某种“类型的应用”,其中可以使用应用程序的简单扩展(即PEP)来实现外部化的访问控制模型。尽管这些类型的应用对于组织来说是非常重要的,但它们并不代表需要以现代化方式消费授权和实现访问控制的大多数应用。为了真正实现IAM架构的现代化,我们需要支持一组更大的应用程序和用例集。在我们看来,这就是为什么我们需要打破Gartner所描述的“身份竖井”。正如NIST所解释的,我们还需要“逐步实施零信任原则”,以便能够解决更广泛和更高级的用例

—-数据来源:网络安全观 微信公众号