发明内容
本申请实施例提供了一种权限检查方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种权限检查方法,所述方法包括:
获取测试用例集合;
通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
基于所述执行结果输出权限检查结果;
根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。
可选的,所述根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余之后,还包括:
将所述权限检查结果发送至客户端进行显示。
可选的,所述获取测试用例集合之前,还包括:
获取预设对象存储服务,所述对象存储服务包含桶集合和对象集合;
获取预先构建的第一用户树和预先构建的第二用户树;
获取待测试的目标操作;
当所述待测试的目标操作针对所述桶集合时,基于所述第一用户树生成第一测试用例集合;
当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第一用户树生成第二测试用例集合;
当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第二用户树生成第三测试用例集合;
将所述第一测试用例集合、第二测试用例集合和第三测试用例集合确定为测试用例集合。
可选的,所述获取获取预设对象存储服务之前,还包括:
获取用户数据信息;
根据预设用户类型将所述用户数据信息进行分类生成初始用户树;
基于所述初始用户树生成第一用户树;
基于预设桶策略对所述初始用户树拓展后生成第二用户树。
可选的,所述基于所述初始用户树生成第一用户树,包括:
获取所述初始用户树中的本账号用户集合;
基于预设用户组对所述本账号用户集合进行分类生成分类后的用户;
将预设子节点添加至所述分类后的用户对应的节点上,生成第一用户树。
第二方面,本申请实施例提供了一种权限检查装置,所述装置包括:
集合获取模块,用于获取测试用例集合;
实例获取模块,用于通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
凭据生成模块,用于当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
结果生成模块,用于根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
结果输出模块,用于基于所述执行结果输出权限检查结果;
策略判断模块,用于根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。
可选的,所述装置还包括:
结果显示模块,用于将所述权限检查结果发送至客户端进行显示。
可选的,所述装置还包括:
服务获取模块,用于获取预设对象存储服务,所述对象存储服务包含桶集合和对象集合;
用户树获取模块,用于获取预先构建的第一用户树和预先构建的第二用户树;
目标操作获取模块,用于获取待测试的目标操作;
第一集合生成模块,用于当所述待测试的目标操作针对所述桶集合时,基于所述第一用户树生成第一测试用例集合;
第二集合生成模块,用于当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第一用户树生成第二测试用例集合;
第三集合生成模块,用于当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第二用户树生成第三测试用例集合;
集合确定模块,用于将所述第一测试用例集合、第二测试用例集合和第三测试用例集合确定为测试用例集合。
可选的,所述装置还包括:
信息获取模块,用于获取用户数据信息;
初始用户树生成模块,用于根据预设用户类型将所述用户数据信息进行分类生成初始用户树;
第一用户树生成模块,用于基于所述初始用户树生成第一用户树;
第二用户树生成模块,用于基于预设桶策略对所述初始用户树拓展后生成第二用户树。
可选的,所述第一用户树生成模块包括:
集合获取单元,用于获取所述初始用户树中的本账号用户集合;
用户生成单元,用于基于预设用户组对所述本账号用户集合进行分类生成分类后的用户;
第一用户树生成单元,用于将预设子节点添加至所述分类后的用户对应的节点上,生成第一用户树。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
到目前为止,在识别操作权限中,利用AWS提供的IAM策略模拟器识别单个策略中包含对云服务的操作权限,IAM策略模拟器是一个通用的策略授权情况的检查工具,由于IAM策略模拟器一次检查只能输出一种策略对一种云服务的操作的授权情况。对于对象存储服务而言,一个用户可能附加多个IAM策略,一个桶可能设置了多个桶策略,这些策略共同决定用户对桶的访问权限,且可能存在冲突冗余情况。在这种情况下,使用IAM策略模拟器无法直接判断用户对于对象存储服务资源的操作权限,从而增加了数据泄露的概率。为此,本申请提供了一种权限检查方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置,下面采用示例性的实施例进行详细说明。
下面将结合附图1-附图12,对本申请实施例提供的权限检查方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的权限检查装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的权限检查装置可以为用户终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等。
请参见图1,为本申请实施例提供了一种权限检查方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:
S101,获取测试用例集合;
其中,测试用例集合是用来进行测试设定的操作而生成的测试实例。
在本申请实施例中,首先获取预设对象存储服务,所述对象存储服务包含桶集合和对象集合,再获取预先构建的第一用户树和预先构建的第二用户树,再获取待测试的目标操作。当所述待测试的目标操作针对所述桶集合时,基于所述第一用户树生成第一测试用例集合。当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第一用户树生成第二测试用例集合。当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第二用户树生成第三测试用例集合。将所述第一测试用例集合、第二测试用例集合和第三测试用例集合确定为测试用例集合。当根据测试用例集合检查用户对资源的访问操作权限时,首先需要获取到生成的测试用例集合。
具体的,在生成测试用例集合之前,首先需要选择进行测试的操作,为了不在检查的过程中破坏原有的OBS资源,本文只选取对OBS桶资源进行读取的操作进行测试,包括列举桶ListAllMyBuckets、获取桶基本信息HeadBucket、列举桶中对象ListBucket。
进一步地,对于列举桶ListAllMyBuckets操作生成测试用例集合时,无需选择指定桶,基于第一用户树即可生成测试用例集合。在基于第一用户树生成测试用例集合时,例如图2所示,首先在开始的时候选择用户树S(第一用户树),然后遍历用户树中的每个叶节点,设当前叶节点为G,在遍历用户树中的每个叶节点时,首先随机选择用户u∈G,再选择测试操作a,最后添加测试用例为<u,a>。当所有的叶节点都遍历结束后得到第一测试用例集合。
进一步地,对于针对指定桶的操作,需要根据桶选择对应的用户树。如图3所示,在开始时首先随机选择没有配置桶策略的桶B,再选择用户树S(第一用户树),然后遍历用户树S中的每个叶结点,设当前叶结点为G,随机选择用户u∈G,对所有测试操作a,添加测试用例<u,B,a>,当所有的叶节点都遍历结束后得到第二测试用例集合。如图4所示,对配置了桶策略的桶Bi(1≤i≤m),遍历用户树Si(第二用户树)中的每个叶结点,设当前叶结点为G,随机选择用户u∈G,对所有测试操作a,添加测试用例<u,Bi,a>,当所有的叶节点都遍历结束后得到第三测试用例集合,最后输出所有的测试用例集合后得到测试用例集合。
S102,通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
在本申请实施例中,根据步骤S101可得到全部测试用例集合,全部测试用例集合中包括第一测试用例集合、第二测试用例集合和第三测试用例集合。第一测试用例集合中包括第一实例,第一实例可表示为<u,a>。第二测试用例集合和第三测试用例集合包含了第二实例,可表示为<u,B,a>和<u,Bi,a>。
S103,当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
在一种可能的实现方式中,根据云服务商提供的API(应用程序接口)和SDK(软件开发工具包)用于执行OBS的相关操作,首先遍历测试用例集合,获取当前实例<u,a>或<u,B,a>,如果用户u没有用于测试的登录凭据(AK/SK),则使用云服务商提供的API,为该用户创建登录凭据,创建结束后生成用户登录凭据。
S104,根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
在一种可能的实现方式中,使用云服务商提供的SDK,使用用户u的测试登录凭据,执行相应操作a。如果测试用例中涉及桶B,则对该桶执行操作a。根据返回结果判断用户u是否具有该操作的权限。所有操作完成后,删除所有新创建的用户测试登录凭据。
S105,基于所述执行结果输出权限检查结果;
在一种可能的实现方式中,基于步骤S104可得到执行完测试用例后的执行结果,然后基于所述执行结果输出权限检查结果,最后将该检查结果通过有线或者无线发送至客户端进行展示。
例如,系统输出的对象存储服务资源的权限检查结果类似于图5和图6所示。图5是不同用户的ListAllMyBuckets操作权限的检查结果。图6不同用户对桶的操作权限的检查结果。
S106,根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。
在一种可能的实现方式中,假设某个配置了桶策略的桶Bi(1≤i≤m,m为所有设置了桶策略的桶的个数),有一条桶策略为p,涉及的用户为u。当我们构造Bi所对应的用户树Si时,所有涉及用户的集合为Ui,{u}是结点G的子结点,G-Ui也是G的子结点。如果从上述的测试结果中,我们可以发现,用户u对桶Bi的操作权限,与用户v∈G-Ui对桶Bi的操作权限相同,则可以判定桶策略p是冗余的。造成冗余的原因是各种策略之间的相互影响。
例如图7所示,图7是本申请实施例示出的执行过程图,首先需要构建用户树,构建用户树中需要构建两类用户树,一类是与桶策略无关的用户树S。另一类是针对每个配置了桶策略的桶Bi(1≤i≤m,m是配置了桶策略的桶的个数),构建相应的用户树Si。然后选择需要进行测试的操作。根据构建的用户树生成测试用例,再检查操作的权限,识别冗余的桶策略,最后展示测试的结果。
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
请参见图11,为本申请实施例提供的一种权限检查方法的流程示意图。本实施例以权限检查方法应用于用户终端中来举例说明。该权限检查方法可以包括以下步骤:
S201,获取预设对象存储服务,所述对象存储服务包含桶集合和对象集合;
S202,获取预先构建的第一用户树和预先构建的第二用户树;
S203,获取待测试的目标操作;
S204,当所述待测试的目标操作针对所述桶集合时,基于所述第一用户树生成第一测试用例集合;
S205,当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第一用户树生成第二测试用例集合;
S206,当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第二用户树生成第三测试用例集合;
S207,将所述第一测试用例集合、第二测试用例集合和第三测试用例集合确定为测试用例集合。
S208,获取测试用例集合;
S209,通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
S210,当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
S211,根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
S212,基于所述执行结果输出权限检查结果;
S213,根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余;
S214,将所述权限检查结果发送至客户端进行显示。
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
请参见图12,为本申请实施例提供的一种用户树生成方法的流程示意图。该用户树生成方法可以包括以下步骤:
S301,获取用户数据信息;
S302,根据预设用户类型将所述用户数据信息进行分类生成初始用户树;
其中,预设用户类型包含匿名用户、注册用户、本账号用户和其他账号用户。
在本申请实施例中,将步骤S301中获取的用户数据信息按照预设类型进行分类,分类后可将用户信息分为不同类型的用户,例如图8所示,图8为生成的初始用户树S,用户树S中的每个结点都是一组用户的集合。其中匿名用户集合N表示未注册云服务的普通访客,注册用户集合表示已注册云服务的所有用户,本账号用户集合A表示正在对OBS资源进行权限检查的账户中所有的IAM用户,其他账号用户集合E表示除了本账号之外的其他注册账号用户。这样的初始化操作反映了ACL中对匿名用户和注册用户的权限设置能力。
S303,获取所述初始用户树中的本账号用户集合;
S304,基于预设用户组对所述本账号用户集合进行分类生成分类后的用户;
S305,将预设子节点添加至所述分类后的用户对应的节点上,生成第一用户树。
在一种可能的实现方式中,根据用户组对本账号用户集合A中的用户进行分类,添加子结点。具体步骤为:
(1)查询本账号所有的用户组及用户组下的用户信息,根据用户组为结点A添加子结点G1,G2,…,Gn,(其中n为用户组的个数),其中Gi={u|u是第i个用户组中的用户}(1≤i≤n),即每个结点代表一个用户组中所有用户的集合。
(2)为结点A添加子结点Gn+1,代表属于多个用户组的用户集合。将属于多个用户组的用户从步骤①添加的结点Gi(1≤i≤n)的用户集合中删除,并相应地为结点Gn+1添加用户集合子结点{u1},{u2},…。如果两个或多个用户所属的用户组相同,则将它们对应的结点合并为一个用户集合结点。
(3)向结点A添加新结点Gn+2,代表不属于任何用户组的用户集合。
(4)遍历结点A的所有子结点Gi(1≤i≤n+2),删除用户集合为空的结点。
通过步骤(1)~(4)用户树S创建完毕,其结构如图9所示。
S306,基于预设桶策略对所述初始用户树拓展后生成第二用户树。
在一种可能的实现方式中,由于桶策略中设置了具体某个桶针对某个用户的访问权限,因此需要根据桶策略对用户树S进行拓展更新,构造桶Bi(1≤i≤m,m为所有设置了桶策略的桶的个数)对应的用户树Si。具体操作步骤如下:
(1)对设置了桶策略的桶Bi,获取其桶策略集合。
(2)获取这些桶策略涉及的用户集合Ui。
(3)遍历用户树S中的叶结点。设当前叶结点为G。
a.当时,对G∩Ui中的每一个元素u,为G增加子结点{u}。
b.当而且/>时,为G增加子结点G-Ui。
(4)这样得到桶Bi对应的用户树Si。
图14显示了获得用户集合Ui后,对叶结点G1进行操作后得到的用户树的结构。其中G1∩Ui={u1(1),u2(1),…,ul(1)}。
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图13,其示出了本发明一个示例性实施例提供的权限检查装置的结构示意图。该权限检查装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括集合获取模块10、实例获取模块20、凭据生成模块30、结果生成模块40、结果输出模块50和策略判断模块60。
集合获取模块10,用于获取测试用例集合;
实例获取模块20,用于通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
凭据生成模块30,用于当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
结果生成模块40,用于根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
结果输出模块50,用于基于所述执行结果输出权限检查结果;
策略判断模块60,用于根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。
可选的,所述装置1还包括:
结果显示模块70,用于将所述权限检查结果发送至客户端进行显示。
需要说明的是,上述实施例提供的权限检查装置在执行权限检查方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的权限检查装置与权限检查方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的权限检查方法。
本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例所述的权限检查方法。
请参见图14,为本申请实施例提供了一种终端的结构示意图。如图14所示,所述终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图14所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及权限检查应用程序。
在图14所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的权限检查应用程序,并具体执行以下操作:
获取测试用例集合;
通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;
当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;
根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;
基于所述执行结果输出权限检查结果;
根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。
在一个实施例中,所述处理器1001在执行所述根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余之后时,还执行以下操作:
将所述权限检查结果发送至客户端进行显示。
在一个实施例中,所述处理器1001在执行所述获取测试用例集合之前时,还执行以下操作:
获取预设对象存储服务,所述对象存储服务包含桶集合和对象集合;
获取预先构建的第一用户树和预先构建的第二用户树;
获取待测试的目标操作;
当所述待测试的目标操作针对所述桶集合时,基于所述第一用户树生成第一测试用例集合;
当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第一用户树生成第二测试用例集合;
当所述待测试的目标操作针对所述桶集合中单一桶时,基于所述第二用户树生成第三测试用例集合;
将所述第一测试用例集合、第二测试用例集合和第三测试用例集合确定为测试用例集合。
在一个实施例中,所述处理器1001在执行所述获取获取预设对象存储服务之前时,还执行以下操作:
获取用户数据信息;
根据预设用户类型将所述用户数据信息进行分类生成初始用户树;
基于所述初始用户树生成第一用户树;
基于预设桶策略对所述初始用户树拓展后生成第二用户树。
在一个实施例中,所述处理器1001在执行所述基于所述初始用户树生成第一用户树时,具体执行以下操作:
获取所述初始用户树中的本账号用户集合;
基于预设用户组对所述本账号用户集合进行分类生成分类后的用户;
将预设子节点添加至所述分类后的用户对应的节点上,生成第一用户树。
在本申请实施例中,获取测试用例集合;通过遍历所述测试用例集合获取第一实例和第二实例,所述第一实例包括用户和测试操作,所述第二实例包括用户、预设桶和测试操作;当所述用户对应的登录凭据不存在时,根据预设应用程序接口创建所述用户对应的登录凭据,生成用户登录凭据;根据预设软件开发工具包和所述用户登录凭据执行所述测试操作,生成执行结果;基于所述执行结果输出权限检查结果;根据所述权限检查结果判断所述预设桶对应的桶策略是否冗余。由于本发明通过分析各种权限的配置来生成最少的测试用例集合,然后根据测试用例集合检查用户对资源的访问操作权限,使租户对于对象存储服务资源的访问权限情况一目了然,有效避免因错误权限配置而导致数据泄露所带来的损失,并能够自动识别冗余的权限配置。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。所属技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,应该理解到,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
应当理解的是,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。