一种基于属性和图的云资源访问控制方法与流程

文档序号:22613526发布日期:2020-10-23 19:11阅读:105来源:国知局
一种基于属性和图的云资源访问控制方法与流程

本发明涉及计算机技术领域,具体为一种基于属性和图的云资源访问控制方法。



背景技术:

云计算是一种全新的服务模态,可以提供对可配置共享计算资源的按需网络访问。其本质是将云资源提供商所拥有的软硬件资源虚拟化为资源云,然后由云基础服务提供者布置在云端,为云资源请求者提供弹性可伸缩、按需付费使用的一种新型服务模态。

大量的事故使得云环境的安全受到质疑。因此,全面的分析并解决当前云计算环境所面临的各种安全问题已经成了云计算大规模推广和普及的前提。保障用户数据的机密性、完整性和可用性是云计算安全问题的核心。因此对数据资源的访问控制也成为了云安全中的核心。

访问控制通过将适当的权限授予适当的主体,使主体对资源进行合法的访问。目前大部分云平台服务提供商都以基于角色的访问控制方法对云中资源进行访问控制。虽然能够实现对数据的基本访问控制,但角色是静态的,用户一旦获取角色便拥有了对资源的操作权限,难以适应云计算环境的动态性;而基于属性的访问控制,虽然具有一定的动态性,但是由于基于控制树匹配搜索的权限验证,需要处理多棵控制树,具有计算量大和重复计算问题,访问控制效率低,不适合云计算环境下海量用户和海量资源的安全控制需求。



技术实现要素:

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种基于属性和图的云资源访问控制方法,解决了基于角色的访问控制方法对数据的基本访问控制中,由于角色是静态的,难以适应云计算环境的动态性;以及基于控制树匹配搜索的计算量大和重复计算,访问控制效率低的问题。

(二)技术方案

为实现以上目的,本发明通过以下技术方案予以实现:一种基于属性和图的云资源访问控制方法,其特征在于:包括如下步骤:

s1、创建用户属性:管理员向用户的属性配置表添加新的用户属性记录。

s2、创建云资源访问控制树:管理员为各种云资源,包括云服务和数据资源,根据需求对属性进行and和or组合,创建相应的云资源访问控制树。

s3、根据云资源访问控制树,生成云资源访问控制图;根据云应用的运行资源配置文件,生成云应用访问控制图;对生成的各种控制图进行管理。

s31、根据云资源访问控制树构造云资源访问控制图,其具体操作如下:

首先,根据编号对云资源访问控制树中的属性进行排序,例如a0<a1<a2<a3<…,约定编号小的属性在控制图中的位置位于编号大的属性之上,所以a0属性是控制图的根节点。

然后,根据云资源访问控制树,自底向上一步步构造云资源访问控制图。

s32、根据云应用的运行资源配置文件,生成云应用访问控制图,其具体操作如下:

首先,分析云应用的运行资源配置文件,根据该文件获得云服务清单和数据资源清单。所述的云服务清单是云平台为了完成云应用请求,需要按照一定的顺序调用的一个或多个云服务;所述的数据资源清单是云平台为了完成云应用请求,需要访问的数据资源。

然后,为了验证用户的云应用请求的权限,需要确认用户对所有的云服务和数据资源都有访问权限;所以,需要将每个云服务和数据资源对应的控制图进行and组合,用来验证用户对该云应用运行所需的所有云服务和数据资源都有权限。

s33、对生成的各种控制图进行管理,其具体操作如下:

生成的各种控制图,需要保存起来,这样后面对相同的云资源再进行访问控制时,不需要重新生成控制图。由于控制图是图数据,所以需要采用图数据库管理系统进行保存,如neo4j图数据库软件。

每次用户进行云应用请求时,需要验证用户的云应用请求的权限,此时并不直接生成控制图和and组合,而是先从图数据库中进行查询,如果该云应用请求所涉及到的某些云服务和数据资源对应的控制图已经生成了就直接获取控制图,只有当对应的控制图查询不到,才进行生成和and组合。

s4、基于访问控制图进行访问控制:从用户提交的云应用请求中提取云资源信息和属性信息,然后通过遍历云应用访问控制图的方法进行权限验证。

优选的,在步骤s2中,云服务是组成云应用的计算单位,即完成一个云应用请求,云平台会根据该云应用,按照一定的顺序执行一个或多个云服务;数据资源为:云服务在执行过程中会访问的数据资源,数据资源组织方式的具体情况如下:

数据仓库:存储云计算平台的所有数据资源;通常数据仓库里面包含多个数据库。

数据库:一个数据库存储某个云应用的所有数据;通常数据库里面包含多个数据表。

数据表:一个数据表存储某个云应用中某个实体的所有属性数据;通常数据表里面包含多个数据字段。

数据字段:每个数据字段存储某个实体的某个属性数据。

优选的,在步骤s2中,创建云资源访问控制树的过程中,管理员根据需求对属性进行and和or组合,为每个云服务、数据仓库、数据库、数据表以及数据字段创建相应的云资源访问控制树。

(三)有益效果

本发明提供了一种基于属性和图的云资源访问控制方法。具备以下有益效果:该基于属性和图的云资源访问控制方法,把用户请求,计算资源,数据资源的权限均采用属性组合的形式进行描述,大大提高了访问控制的灵活性和可扩展性,同时利用控制图提升权限验证的效率。传统的方法是直接采用访问控制树进行权限验证,由于访问控制树中包含and和or的逻辑操作,在验证过程中需要进行逻辑计算,并且每棵访问控制树的验证过程是独立的,计算量大,通过生成控制图,并把控制图进行and组合,由于控制图是采用图的方式存储,也就是图中存在节点共享的,能够减少计算量;同时通过图的遍历进行权限验证,避免了逻辑运算,能够减少计算量,另外通过控制图的一次生成多次利用的方法,在多次同一云应用请求时,实际上只进行了一次控制图生成和组合,大大减少了重复计算,可以很好的适应云计算环境下海量用户和海量资源的访问控制需求,从而增加了系统的安全性。

附图说明

图1为本发明具体实施方式中例举的访问控制树的示意图;

图2为本发明具体实施方式中例举的控制图的示意图;

图3为本发明图1中控制树最底层的结构示意图;

图4为本发明图3中控制树所生成的控制图的结构示意图;

图5为本发明图3中控制树上层的控制树的结构示意图;

图6为本发明图5中控制树所生成的控制图的结构示意图;

图7为本发明图1中控制树所生成的控制图的结构示意图;

图8为本发明多个控制图进行与and组合的操作示意图;

图9为图8中l控制图和r控制图与and组合后得到的控制图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-9,本发明提供一种技术方案:一种基于属性和图的云资源访问控制方法,包括如下步骤:

s1、创建用户属性:管理员向用户的属性配置表添加新的用户属性记录,例如对于用户user1,其能够拥有的属性包括:职位,工龄,性别,访问ip,办公地点,所属项目组,允许访问时间等。

s2、创建云资源访问控制树,管理员为各种云资源,包括云服务和数据资源,根据需求对属性进行and和or组合,创建相应的云资源访问控制树。

其中云资源包括计算资源和数据资源,其中计算资源为:在处理用户云应用请求过程中,云平台按照一定的顺序调用一个或多个云服务;数据资源为:云服务在执行过程中会访问相应的数据资源,数据资源组织方式的具体情况如下:

数据仓库:存储云计算平台的所有数据资源;通常数据仓库里面包含多个数据库。

数据库:一个数据库存储某个云应用的所有数据;通常数据库里面包含多个数据表。

数据表:一个数据表存储某个云应用种某个实体的所有属性数据;通常数据表里面包含多个数据字段。

数据字段:每个数据字段存储某个实体的某个属性数据。

创建云资源访问控制树的过程中,管理员需要为每个云服务、数据仓库、数据库、数据表以及数据字段,根据实际需求对属性进行and和or组合,创建相应的云资源访问控制树。访问控制树中,叶节点代表的是属性,非叶节点代表的逻辑门。例如逻辑门and和逻辑门or。逻辑门and表示必须同时拥有某些属性;逻辑门or表示满足某一属性即可。

例如:某云资源的访问控制树如图1所示。图1表明,用户只有满足属性a0,a1或者a0,a2,a3的时候才能够访问云资源。

由于访问控制树是图数据,所以需要采用图数据库管理系统进行保存,如neo4j图数据库软件。

s3、根据云资源访问控制树,生成云资源访问控制图;根据云应用的运行资源配置文件,生成云应用访问控制图;对生成的各种控制图进行管理。

本步骤所述的控制图有两类节点:属性节点和判定节点。以如图2所示的控制图为例。该控制图中有两类节点:属性节点,例如a0、a1、a2、a3。每个属性节点有两个分支:y分支表示属性满足,n分支表示属性不满足。判定节点,例如n和y。n节点表示权限不足,不能访问云资源;y节点表示权限满足,能访问云资源。

从控制图的顶层节点到判定节点y的每条路径,指明了一个可以访问云资源的属性组合。例如图2中,顶层节点到判定节点y的最右边的路径包括a0的y分支和a1的y分支,该路径指明了用户满足属性a0,a1就可以访问云资源。

从控制图的顶层节点到判定节点n的每条路径,指明了一个不足以访问云资源的属性组合。例如图2中,顶层节点到判定节点n的最左边的路径包括a0的n,该路径指明了用户不满足属性a0就是非法访问云资源。

s31、根据云资源访问控制树构造云资源访问控制图,其具体操作如下:

首先,根据编号对云资源访问控制树中的属性进行排序,例如a0<a1<a2<a3<…,约定编号小的属性在控制图中的位置位于编号大的属性之上,所以a0属性是控制图的根节点。

然后,根据云资源访问控制树,自底向上一步步构造云资源访问控制图。

如果云资源访问控制树的最底层是一个and门,把门节点下面的属性按照编号的顺序,利用y分支进行相连并连到判定节点y,并且所有属性的n分支都直接连到判定节点n。

如果云资源访问控制树的最底层是一个or门,把门节点下面的属性按照编号的顺序,利用n分支进行相连并连到判定节点n,并且所有属性的y分支都直接连到判定节点y.

例如:存在如图1所示的控制树,其最底层and门控制树如图3所示,图3所生成的控制图如图4所示。

随后,逐层向上处理云资源访问控制树,进一步生成控制图。

以图1所示的云资源访问控制树为例,自底层向上,当前处理的上层控制树是如图5所示的or门控制树,生成图6所示的控制图。生成过程为:构造属性a1节点,因为是or门,a1的y分支直接连到判定节点y。a1的n分支连接到上一步构造的and门控制树对应的控制图。

处理完如图5所示的or门控制树,向上到达如图1所示的顶层and门控制树,最终生成的控制图如图7所示。生成过程为:构造属性a0节点,因为是and门,a0的n分支直接连到判定节点n,a0的y分支连接到上一步构造的or门控制树对应的控制图。

s32、根据云应用的运行资源配置文件,生成云应用访问控制图,其具体操作如下:

首先,分析云应用的运行资源配置文件,根据该文件获得云服务清单和数据资源清单。所述的云服务清单是云平台为了完成云应用请求,需要按照一定的顺序调用的一个或多个云服务;所述的数据资源清单是云平台为了完成云应用请求,需要访问的数据资源。

在处理用户云应用请求过程中,云平台会根据云服务清单,按照一定的顺序调用一个或多个云服务。每个云服务有一棵访问控制树,每棵访问控制树生成了一个控制图;所以一次用户云应用请求对应多个云服务访问控制图。另一方面,为了完成一次用户云应用请求,不同的云服务需要访问不同的数据资源。每个数据资源生成了一个控制图;一次用户云应用请求对应多个数据资源访问控制图。

为了验证用户的云应用请求的权限,需要确认用户对所有的云服务和数据资源都有访问权限;所以,需要将每个云服务和数据资源对应的控制图进行and组合,用来验证用户对该云应用运行所需的所有云服务和数据资源都有权限。

如图8所示,将多个控制图进行and组合的方法,具体操作如下:

图中左边是需要进行and组合的两个控制图,两个控制图左边的称为l,右边的称为r,组合后的控制图称为c1。

and组合过程是一个自顶向下的过程:

比较两个控制图的根节点的编号,显然a1更小,所以把a1作为组合控制图c1的根节点。

c1的根节点a1的y分支是l中a1的y分支和r的and组合。

c1的根节点a1的n分支是l中a1的n分支和r的and组合。

由于l中a1的n分支是判定节点n,即权限不满足,所以判定节点n和r的and组合结果也是判定节点n,即权限不满足。

l中a1的y分支和r,两个控制图的根节点都是a2,所以把a2作为组合控制图c2的根节点。

c2的根节点a2的y分支是l中a2的y分支和r中a2的y分支的and组合。

c2的根节点a2的n分支是l中a2的n分支和r中a2的n分支的and组合。

由于l中a2的y分支是判定节点y,即权限满足,所以判定节点y和r中a2的y分支的and组合结果就是r中a2的y分支。

l中a2的n分支和r中a2的n分支,比较两个控制图的根节点的编号,显然a3更小,所以把a3作为组合控制图c3的根节点。

c3的根节点a3的y分支是l中a3的y分支和r中a2的n支的and组合。

c3的根节点a3的n分支是l中a3的n分支和r中a2的n分支的and组合。

由于l中a3的y分支是判定节点y,即权限满足,所以判定节点y和r中a2的n分支的and组合结果就是r中a2的n支。

由于l中a3的n分支是判定节点n,即权限不满足,所以判定节点n和r中a2的n分支的and组合结果也是判定节点n,即权限不满足。

最终的结果如图9所示。

s33、对生成的各种控制图进行管理,其具体操作如下:

生成的各种控制图,需要保存起来,这样后面对相同的云资源再进行访问控制时,不需要重新生成控制图。由于控制图是图数据,所以需要采用图数据库管理系统进行保存,如neo4j图数据库软件;

每次用户进行云应用请求时,需要验证用户的云应用请求的权限,此时并不直接生成控制图和and组合,而是先从图数据库中进行查询,如果该云应用请求所涉及到的某些云服务和数据资源对应的控制图已经生成了就直接获取控制图,只有当对应的控制图查询不到,才进行生成和and组合;

s4、基于访问控制图进行访问控制:从用户提交的云应用请求中提取云资源信息和属性信息,然后通过遍历云应用访问控制图的方法进行权限验证。

其中,用户提交的云应用请求处理过程如下:

用户向云平台提交某个云应用请求。

云平台接收到该云应用请求,并对该云应用请求进行解析,提取属性信息,包括用户名称、云应用名称、请求发起时间,请求发起地址。

云平台利用用户名称,查询用户-属性配置表,获得用户属性;如职位,工龄,性别,访问ip,办公地点,所属项目组,允许访问时间等。

云平台利用云应用名称在配置文件库中找到云应用对应的运行资源配置文件,根据该文件获得云服务清单和数据资源清单。

按照步骤s33所述,云平台通过查询图数据库,确认云应用访问控制图是否已经生成并保存于图数据库中。

如果已经存在,则直接获取。

如果云应用访问控制图不存在,则通过查询图数据库,确认该云应用所相关的云服务和数据资源对应的控制图是否都已经生成。

如果已经存在,则直接获取;按照步骤s32所述,把所有相关的云服务和数据资源对应的控制图进行and组合,生成云应用访问控制图,并把生成的云应用访问控制图保存于图数据库中。

如果部分相关的云服务和数据资源对应的控制图不存在,则通过查询图数据库,获取这些云服务和数据资源对应的访问控制树,按照步骤s31所述,转化为访问控制图,再按照步骤s32所述,把所有相关的云服务和数据资源对应的控制图进行and组合,生成云应用访问控制图,并把生成的云应用访问控制图保存于图数据库中。

最后,云平台根据获得的用户属性、请求发起时间,请求发起地址结合起来构成属性集合;通过遍历云应用访问控制图的方法进行权限验证。

若到达判定节点y,权限验证成功,云平台调用相应的云资源完成云应用请求处理。

若到达判定节点n,云平台反馈给用户非法访问的信息。

若无法到达判定节点n和y,云平台反馈给用户权限不足的信息。

举例说明,如果某个云应用请求,对应的访问控制图如图9所示;

如果从用户提交的云应用请求中提取的属性信息为{a1、a3},通过遍历访问控制图可知,仅仅依赖a1的y分支和a3的y分支是无法到达判定节点y,所以反馈给用户权限不足的信息;

如果从用户提交的云应用请求中提取的属性信息为{非a1},例如a1指的是访问时间段[8:00-15:00],而用户进行云应用请求的时间为7:00。所以属性信息为非a1。通过遍历访问控制图可知,a1的n到达判定节点n,所以反馈给用户非法访问的信息。

如果从用户提交的云应用请求中提取的属性信息为{a1、非a2,a3,a4},通过遍历访问控制图可知,通过a1的y分支、a2的n分支、a3的y分支、和a4的y分支到达判定节点y,所以权限验证成功,云平台调用相应的云资源完成云应用请求处理。

综上所述,该基于属性和图的云资源访问控制方法,把用户请求,计算资源,数据资源的权限均采用属性组合的形式进行描述,大大提高了访问控制的灵活性和可扩展性,同时利用控制图提升权限验证的效率。传统的方法是直接采用访问控制树进行权限验证,由于访问控制树中包含and和or的逻辑操作,在验证过程中需要进行逻辑计算,并且每棵访问控制树的验证过程是独立的,计算量大,通过生成控制图,并把控制图进行and组合,由于控制图是采用图的方式存储,也就是图中存在节点共享的,能够减少计算量;同时通过图的遍历进行权限验证,避免了逻辑运算,能够减少计算量,另外通过控制图的一次生成多次利用的方法,在多次同一云应用请求时,实际上只进行了一次控制图生成和组合,大大减少了重复计算,可以很好的适应云计算环境下海量用户和海量资源的访问控制需求,从而增加了系统的安全性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1