用于身份系统中的角色可达性分析的组合推理技术的制作方法
未命名
07-12
阅读:66
评论:0

用于身份系统中的角色可达性分析的组合推理技术
背景技术:
1.云提供商网络使得用户能够使用多种计算相关资源,诸如计算资源、存储资源、网络资源等。当用户或应用程序与云提供商网络交互时(例如,使用由云提供商网络提供的应用程序编程接口(api)或命令行接口(cli)),用户或应用程序通常需要指定安全凭据以指示用户或应用程序是谁以及用户或应用程序是否具有访问所请求资源的权限。云提供商网络继而使用安全凭据来验证和授权用户或应用程序执行各种动作。安全凭据可包括例如用户名和密码、访问密钥等。
附图说明
2.将参考附图描述根据本公开的各种实施方案,在附图中:
3.图1是示出根据一些实施方案的其中相对于由云提供商网络的身份和访问管理服务定义的用户组织(例如,包括用户、角色和策略的集合)执行角色可达性分析的环境的图。
4.图2是示出根据一些实施方案的与用户和用户账户内的角色相关联的示例性身份策略片段和信任策略片段之间的关系的图。
5.图3示出了根据一些实施方案的身份和访问管理服务的角色的示例性授权语义。
6.图4是示出根据一些实施方案的示例性角色可达性程序的图。
7.图5是示出根据一些实施方案的包括分析结果的图形用户界面(gui)的图。
8.图6是示出根据一些实施方案的用于针对身份系统中的角色可达性使用组合推理技术的方法的操作的流程图。
9.图7示出了根据一些实施方案的示例性提供商网络环境。
10.图8是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。
11.图9是示出可在一些实施方案中使用的示例性计算机系统的框图。
具体实施方式
12.本公开涉及用于使用组合推理技术相对于云提供商网络的用户账户和角色的集合执行角色可达性分析的方法、设备、系统和非暂时性计算机可读存储介质。基于委派角色的资源管理通常是一种用于控制对云提供商网络和其他分布式系统中的资源的访问的方法。例如,许多云提供商网络使用这种方法实现身份和访问管理子系统,其中“角色”的概念用于指定可由人员、软件或(递归地)由其他角色访问哪些资源。根据一些实施方案,提供了角色可达性分析的抽象,所述抽象可用作角色可达性分析器应用程序的输入,以推理角色可达性问题,例如,与组织的哪些角色可以从其他角色到达有关的问题。在一些实施方案中,所描述的分析使得身份和访问管理服务能够以编程方式推理许多可能的策略类型(例如,边界策略、服务控制策略、身份策略、会话策略等)之间的交互,并且进一步使得能够在存在其他云提供商网络概念(诸如传递会话标记)的情况下进行推理。此外,分析的组合性使得分析能够分布在任何数量的同时执行的计算资源上,从而提高计算性能、内存使用等。
13.现代云服务提供商通常为其客户提供用于验证和授权的集成特征。例如,云提供商网络的身份和访问管理子系统可提供账户、用户(账户内)和联合(来自第三方身份提供商的账户)的概念,以用于身份验证。为了指定可以访问资源的条件,云提供商网络可使用通用策略语言以及角色和委派角色承担的概念。如上所述,基于委派角色的资源管理是一种用于控制对分布式计算中的资源的访问的常用方法。角色可达性是角色可以经由可能的许多角色承担步骤的传递闭包访问哪些资源的问题(例如,用户a可以承担角色b,并进一步经由角色b承担角色c等)。角色可达性有助于了解为在云中以及其他可能环境中执行而构建的系统的安全态势。
14.因此,如果希望正式证明构建在基于云的应用程序编程接口(api)之上的系统的安全态势的属性,则需要能够回答角色可达性问题的分析技术,例如,以下形式的问题:“角色q可以访问角色r吗?”。例如,账户i中的q可能能够承担为账户k的角色r。角色r可能具有访问由于安全、隐私或合规性原因不希望账户i访问的资源的权限。在云提供商网络中,这些资源可能包括存储资源、装置资源、或甚至对管理角色访问权限的策略的写入权限。如今,企业级组织通常拥有数千个基于云的账户,以及在其基于云的足迹中使用的数万个角色。此外,由于许多组织正在积极淘汰其本地数据中心并采用基于云的it服务,因此每个云提供商网络客户使用的账户和角色数量呈指数级增长。
15.在一些实施方案中,角色可达性的分析可以解释为模型检查问题。在一些实施方案中,本文所述的系统的结构包括主体集(例如,与云提供商网络的一个或多个账户相关联的用户和角色)的标识、与用户相关联的权限、与角色相关联的信任策略以及与角色相关联的权限。本文所述的实施方案描述了基于这样一种规范的角色可达性问题的实际解决方案,所述规范利用了现实世界系统中常见的结构:账户内的可能角色承担关系的集合通常比不同账户中的角色之间的关系更密集,这意味着组合推理可以用于分析期间的可扩展性。对于账户内分析,描述了一种过度逼近抽象的过程,其为期望类型的分析结果提供足够的保真度。除其他益处外,所描述的分析技术使得能够有效计算角色可达性分析,从而也有助于改善云提供商网络处组织账户的安全态势。
16.图1是示出根据一些实施方案的其中相对于由云提供商网络100的身份和访问管理服务102定义的用户组织(例如,包括用户、角色和策略的集合)执行角色可达性分析的环境的图。云提供商网络100(有时简称为“云”)是指网络可访问计算资源池(诸如计算资源、存储资源和网络资源、应用程序和服务),其可以是虚拟化的或裸机化的。云可以提供对可配置计算资源的共享池的便捷、按需网络访问,所述计算资源可以响应于客户命令以编程方式预配和释放。可以动态地预配和重新配置这些资源以适应可变负载。因此,云计算可以被视为通过公共可访问网络(例如,互联网、蜂窝通信网络)作为服务交付的应用程序以及提供那些服务的云提供商数据中心中的硬件和软件。
17.提供商网络100(或“云”提供商网络)为用户提供利用各种类型的计算相关资源中的一者或多者的能力,所述计算相关资源诸如计算资源(例如,执行虚拟机(vm)实例和/或容器、执行批作业、执行代码而不预配服务器)、数据/存储资源(例如,对象存储、块级存储、数据档案存储、数据库和数据库表等)、网络相关资源(例如,配置虚拟网络(包括多组计算资源)、内容传递网络(cdn)、域名服务(dns))、应用程序资源(例如,数据库、应用构建/部署服务)、访问策略或角色、身份策略或角色、机器图像、路由器及其他数据处理资源等。这些
和其他计算资源可以作为服务提供,所述服务诸如:可执行计算实例的硬件虚拟化服务、可以存储数据对象的存储服务等。提供商网络100的用户(或“客户”)可利用与客户账户相关联的一个或多个用户账户,但是可根据使用的情境稍微可互换地使用这些项。用户可经由一个或多个接口(诸如通过使用应用程序编程接口(api)调用)、经由作为网站或应用程序实现的控制台等跨一个或多个中间网络104(例如,互联网)与提供商网络100交互。api是指客户端和服务器之间的接口和/或通信协议,使得如果客户端以预定义格式发出请求,则客户端应以特定格式接收响应或发起定义的动作。在云提供商网络背景中,api通过允许客户从云提供商网络获得数据或在云提供商网络内引起动作来为客户提供访问云基础设施的网关,从而使得能够开发与托管在云提供商网络中的资源和服务交互的应用程序。api还可以使得云提供商网络的不同服务能够彼此交换数据。接口可以是提供商网络100的控制平面的一部分或充当控制平面的前端,所述控制平面包括支持和实现可更直接地提供给客户的服务的“后端”服务。
18.云提供商网络可形成为多个区,其中区是云提供商将数据中心聚集在其中的地理区域。每个区包括经由专用高速网络(例如,光纤通信连接)彼此连接的多个(例如,两个或更多个)可用区(az)。az(也称为可用性域,或简称为“区”)提供隔离的故障域,其包括一个或多个数据中心设施,所述设施与另一az中的设施具有单独的电源、单独的网络和单独的冷却。数据中心是指容纳云提供商网络的服务器并为其提供电力和冷却的物理建筑物或机柜。优选地,区内的az彼此相距足够远,因此自然灾害(或其他故障诱发事件)不会同时影响多于一个az或使多于一个az离线。
19.客户可以经由可公开访问的网络(例如,互联网、蜂窝通信网络)例如通过转接中心(tc)连接到云提供商网络的az。tc是将客户连接到云提供商网络的主要骨干位置,并且可并置在其他网络提供商设施(例如,互联网服务提供商(isp)、电信提供商)处并安全地连接(例如,经由vpn或直接连接)到az。每个区可以操作两个或更多个tc以实现冗余。区连接到全球网络,所述全球网络包括专用网络基础设施(例如,由云提供商控制的光纤连接),所述专用网络基础设施将每个区连接到至少一个其他区。云提供商网络可通过边缘位置和区边缘高速缓存服务器,从这些区之外但与这些区联网的存在点(或“pop”)交付内容。计算硬件的这种划分和地理分布使得云提供商网络能够在全球范围内以高度的容错性和稳定性为客户提供低延迟的资源访问。
20.通常,提供商网络的流量和操作可广泛地细分为两类:逻辑控制平面上承载的控制平面操作和逻辑数据平面上承载的数据平面操作。数据平面表示用户数据通过分布式计算系统的移动,而控制平面表示控制信号通过分布式计算系统的移动。控制平面通常包括分布在一个或多个控制服务器上并由一个或多个控制服务器实现的一个或多个控制平面组件。控制平面流量通常包括管理操作,例如系统配置和管理(例如,资源放置、硬件容量管理、诊断监控、系统状态信息)。数据平面包括在提供商网络上实现的客户资源(例如,计算实例、容器、块存储卷、数据库、文件存储)。数据平面流量通常包括非管理操作,诸如将客户数据传入和传出客户资源。控制平面组件通常在与数据平面服务器分开的一组服务器上实现,并且控制平面流量和数据平面流量可通过单独/不同的网络发送。
21.为了提供这些和其他计算资源服务,提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可用于向用户提供控制或利用计算资源的能力(例如,“计算实例”,诸如使
用客户操作系统(o/s)的vm,所述vm使用以下各项来操作:可在底层主机o/s之上进一步操作或不进一步操作的管理程序、可在vm中操作或不操作的容器、可在没有底层管理程序的“裸机”硬件上执行的计算实例),其中一个或多个计算资源可以使用单个电子装置来实现。因此,用户可直接利用由提供商网络托管的计算资源(例如,由硬件虚拟化服务提供)来执行各种计算任务。另外地或替代地,用户可通过提交由提供商网络执行的代码(例如,经由按需代码执行服务)来间接地利用计算资源,所述提供商网络继而利用一个或多个计算资源来执行代码,通常用户对所涉及的底层计算实例没有任何控制或了解。
22.在一些实施方案中,身份和访问管理服务102是使得用户能够安全地控制对云提供商网络资源的访问的服务(例如,与各种提供商网络服务106相关联的资源160,诸如与存储服务110相关联的存储对象108、与数据库服务114相关联的数据库112、与硬件虚拟化服务118相关联的计算实例116等)。身份和访问管理服务102用于控制谁被允许向云提供商网络100进行验证(例如,登录)以及谁被授权(例如,具有权限)使用由云提供商网络提供的资源。一般来讲,资源是用于捕获可以由客户在云提供商网络100中创建、读取、修改或删除的项目的域的概念。资源的示例还包括主体(例如,主体120,包括示例性用户122a-122n和角色124a-124n)和策略126(例如,包括基于身份的策略128、信任策略130和其他策略132)。图1进一步示出了组织134的概念,所述组织可以包括任何数量的相关联账户136a-136n,所述账户还可以包括任何数量的用户和角色(例如,与账户136b相关联的角色138和与账户136n相关联的角色140)。
23.在一些实施方案中,当一个人最初在云提供商网络100创建账户时,这个人以单点登录身份(例如,主体120的根用户)开始,所述单点登录身份具有对与所述账户相关联的所有云提供商网络服务和资源的完全访问权限。例如,可通过使用用于创建账户的用户名(例如,电子邮件地址)和密码登录来访问根用户身份。云提供商网络100通常建议用户不要将根用户用于大多数任务,而是创建具有定义权限的附加用户账户(例如,包括用户账户122a-122n中的一个或多个)。在一些实施方案中,用户可以针对不同的资源向不同的用户账户授予不同的权限。例如,用户账户可能被配置为允许一些用户完全访问硬件虚拟化服务118、存储服务110和其他云提供商网络100资源。对于其他用户,用户账户可允许对某些存储桶进行只读访问,或允许管理一些实例116等。
24.在一些实施方案中,账户包括作为身份和访问管理服务102的一部分存储的身份相关对象,包括例如用户122a-122n、组(未示出)、角色124a-124n、策略126等。这些资源可以由云提供商网络100的具有足够权限的用户例如使用基于web的控制台、api、cli或由身份和访问管理服务102提供的其他接口来添加、编辑和删除。
25.在一些实施方案中,主体120表示可以对云提供商网络100的资源(例如,资源160或身份和访问管理服务102的资源)请求动作或操作的人或应用程序。与账户136a相关联的主体120的集合可以包括任何数量的用户122a-122n和角色124a-124n。当主体(例如,用户或角色)发送对资源的动作或操作的请求时,发生云提供商网络请求。请求可以包括以下信息中的一些或全部:主体想要执行的动作或操作、对其执行动作或操作的资源对象、使用实体(例如,用户或角色)发送请求的人或应用程序、环境数据(例如,关于ip地址、用户代理、ssl启用状态、当日时间等的信息)以及资源数据(例如,与正在请求的资源相关的数据,诸如资源标识符或标记名称)。在一些实施方案中,身份和访问管理服务102将请求中包含的
信息收集到请求上下文中,该请求上下文用于评估和授权该请求。
26.在一些实施方案中,对于要完成的请求,身份和访问管理服务102确定请求主体是否被授权(例如,允许)来完成请求。在授权期间,身份和访问管理服务102使用包括在请求上下文中的值来检查适用于请求的策略(例如,策略126中的一个或多个)。身份和访问管理服务102使用策略126来确定是允许还是拒绝该请求。在一些实施方案中,策略作为javascript对象表示法(json)文档(或使用任何其他数据格式)存储在身份和访问管理服务102中,并指定主体实体的权限。在一些实施方案中,存在几种类型的策略126可能影响请求是否被授权,包括例如基于身份的策略128、信任策略130以及其他策略132。例如,为了向用户提供访问其自己账户中的资源的权限,可以配置基于身份的策略,而基于资源的策略可用于授予对资源的跨账户访问权限。在一些实施方案中,身份和访问管理服务102检查适用于请求的上下文的每个策略。如果单个权限策略包括被拒绝的动作,则身份和访问管理服务102拒绝整个请求。在一些实施方案中,身份和访问管理服务102默认拒绝请求,使得只有在适用的权限策略允许请求的每个部分时才授权请求。
27.在一些实施方案中,一旦请求通过验证并被授权,身份和访问管理服务102就批准请求中的动作或操作。操作由服务定义,并且包括可以对资源执行或相对于资源执行的动作,诸如查看、创建、编辑和删除该资源。例如,身份和访问管理服务102可支持诸如创建用户、删除用户、创建角色和承担角色的动作以及许多其他可能的动作。为了允许主体执行操作,该动作包括在适用于主体或受影响资源的策略中。
28.在一些实施方案中,基于身份的策略128是附加到身份(诸如账户中的用户、组或角色)的权限策略。在一些实施方案中,基于资源的策略是附加到诸如存储对象108或角色信任策略的资源的权限策略。基于资源的策略控制指定主体可以对该资源执行什么动作以及在什么条件下执行什么动作。在一些实施方案中,例如,身份和访问管理服务102支持可以附加到角色(例如,角色124a-124n中的一个或多个)的信任策略130。由于角色既是身份又是支持基于资源的策略的资源,因此在一些实施方案中,信任策略和基于身份的策略两者附加到角色。信任策略130定义哪些主要主体实体(账户、用户、角色和联合用户)可以承担该角色。
29.在一些实施方案中,角色是用户在具有特定权限的账户中创建的身份。角色类似于用户,因为它是一种身份,具有确定身份可以做什么和不能做什么的权限策略。然而,角色不是与一个人唯一地相关联,而是可由任何需要它的人承担。此外,角色可能没有标准的长期凭据,诸如与其相关联的密码或访问密钥。相反,当实体承担角色时,为其提供角色会话的临时安全凭据。角色可以用于将访问权限委派给通常不具有资源访问权限的用户、应用程序或服务。例如,人可能希望授予账户中的用户访问那些用户通常无法访问的资源的访问权限,或者授予一个账户中的用户访问另一账户中资源的访问权限。
30.在一些实施方案中,在图1中的圆圈“1”处,与组织134相关联的一个或多个用户使用电子装置144来生成身份配置请求142,以配置与组织(例如,由组织134表示的组织)相关联的主体120的集合,并进一步配置与这些主体中的一些或所有主体相关联的策略126。例如,可创建这些主体来为云提供商网络100的账户(例如,账户136a-136n)内的用户和进程提供验证。如上所示,身份表示用户并且可以经过验证,然后被授权在云提供商网络100中执行动作,并且每个身份可以与一个或多个策略126相关联,以确定用户或角色可以使用哪
些云提供商网络资源以及在什么条件下执行什么动作。账户、主体和策略的集合可例如由意图出于各种目的使用云提供商网络100的各种服务的组织创建。此外,可以根据组织的需要随时间修改包括组织的账户、主体和策略的集合。
31.在一些实施方案中,在圆圈“2”处,响应于身份配置请求142,身份和访问管理服务102创建和存储表示账户、主体和策略的数据。如上文进一步所示,这些主体和策略可以由云提供商网络100的具有足够权限的外部用户例如使用基于web的控制台、api、cli或由身份和访问管理服务102提供的其他接口添加、编辑和删除,并且可以使用由身份和访问管理服务102管理的各种类型的存储资源来存储表示主体和策略的数据。
32.图2是示出根据一些实施方案的与用户和用户账户内的角色相关联的示例性身份策略片段和信任策略片段之间的关系的图。应当指出的是,虽然由云提供商网络100的用户定义的典型策略包含许多“允许”和“拒绝”语句的连词和析词,但图2中的示例性策略仅表示简单策略片段。在示例性云提供商网络100中,如果y的信任策略信任x并且x的身份策略授予对资源y的sts:assumerole api(例如,由云提供商网络100定义并用于承担角色的api动作)的访问权限,则主体x(例如,诸如用户a 200的用户、诸如角色b 202的角色或诸如角色c 204的角色)可以承担角色y。在该示例中,如果x和y来自不同的账户,则如果x的身份策略明确授予访问权限,则x将被授予对sts:assumerole api的访问权限。如果x和y来自同一个账户,则只要x的身份策略不明确拒绝访问,x具有sts:assumerole的访问权限。
33.在图2所示的示例中,用户a 200(例如,来自账户01239)未被明确拒绝访问以承担角色b 202,因为角色b不在用户a的身份策略中使用的“d*”语言中(例如,如用户a身份策略片段206所示)。同时,角色b 202由于策略片段210而信任用户a 200(并且因此允许用户a200执行角色承担208a步骤),并且角色c 204由于策略片段214而信任角色b 202。角色b 202可以使208b承担角色c(来自账户09876),因为c在c*的语言中。与用户a 200和角色b 202之间的关系不同,需要在c的信任策略中明确允许,因为角色b 202和角色c 204与不同的账户相关联。最后,应当指出的是,信任策略中的条件语句将承担角色步骤限制为从受限ip地址(诸如20.34.66.10)在虚拟机上操作的进程。因此,在该示例中,用户a 200可以潜在地将角色b 202、ssh的凭据获取到不同的基于云的虚拟机(诸如20.10.1.10)中,然后成功地承担角色c 204。
34.在某些情况下,承担角色链(用户a 200->角色b 202->角色c204)可能是与相关组织相关联的用户所期望的行为。然而,在其他示例中,用户a 200能够经由角色b 202承担角色c 204可能是不期望的。例如,如果角色c 204有权访问09876账户的所有者不希望用户a 200有权访问的资源,则角色承担链表示不期望的可能性。给定一个声明性不变量,即希望在这个环境中证明访问权限,角色可达性分析旨在在通常大量复杂的身份策略、资源策略、信任策略、用户、角色、计算资源等中找到此类角色承担链。
35.为了支持广泛多种用例,在一些实施方案中,云提供商网络100支持可添加到图2所示的示例的许多附加概念,例如诸如会话标记、传递会话标记、权限边界策略、会话策略等。这些概念中的每个概念的语义相互作用,使得回答角色可达性相关问题变得越来越困难。还有一个考虑因素是,在试图回答角色可达性问题时,可能会修改正在使用的策略语句。修改这些语句的代码可能在分析期间考虑的角色的控制之下。图2所示的示例省略了这些细节,以便给出角色可达性问题的概要示例。然而,本文描述的正式阐述是完整描述的,
并且对应的分析支持额外的此类复杂性。
36.如上所述,如本文所使用的资源是用于捕获可以由客户在云提供商网络100中创建、读取、修改或删除的项目的域的一般概念。示例包括用户、角色、策略、队列、数据库、虚拟机等。在该示例中,表示有效资源集,表示策略集,并且表示主体集。和的语法在语义上是抽象的,并且应当指出的是,(例如,用户或角色是一种资源类型)。在一些实施方案中,每个资源上都有一个投影,表示r
#
,其返回与r相关联的云提供商网络100的帐号。假设其他几个投影,例如,如果资源r是密钥管理服务(kms)加密密钥,则r
service
=kms。动作的集合是常量诸如iam:attachrolepolicy和s3:deleteobject的集合。因此,请求是四元组(p,a,r,c),使得合。因此,请求是四元组(p,a,r,c),使得并且c是包含请求的附加服务特定信息的映射,例如,图2中的策略条件示例中使用的aws:sourceip密钥以及会话标记。假设是所有有效映射的集合。
37.在一些实施方案中,策略(例如,策略126)在整个云提供商网络100中附加到各种资源、主体和网络结构,并且授权决策基于这些策略的组合。策略的语法是抽象的,并且本文提供的示例以示例性基于json的语法显示,尽管其他示例中可以使用其他语法。假设是语法上有效的策略。在一些实施方案中,q的语义表示为其中其中当明确允许请求时,当不明确允许请求时(需注意,这与明确拒绝不同),当明确拒绝请求时,如以下示例中所述,使用类似布尔运算但在3值设置上组合各种策略的结果:{真,假,拒绝}。因此,对于3值设置,提升布尔运算定义如下:
[0038][0039]
在一些实施方案中,当与和一起使用时,值拒绝的行为类似于编程语言中的异常。也就是说,对于构造为和的组合的所有表达式e,如果拒绝作为子表达式出现,则e简化为拒绝。作为一个示例,
[0040]
在一些实施方案中,云提供商网络100的状态被视为由逻辑常数索引的部分函数族。对于与身份和管理服务102相关的大多数常量,部分函数的域为并且当定义时范围为并且当未定义时为
⊥
也就是说,如果σ是云提供商网络状态,并且c是有效的身份和访问管理服务相关常量,则作为一个示例,使用逻辑常量边界来表示边界策略。因此,如果p在云提供商网络状态σ下具有边界策略q,则σ
边界
(p)=q。如果p没有边界策略,则σ
边界
(p)=
⊥
。
[0041]
在一些实施方案中,图3所示的示例性定义示出了如何为角色做出访问控制决策,如由角色授权语义300所示。如图3所示,考虑角色p是否被授权对资源r执行动作a的问题。例如,当且仅当auth
σ
(p,a,r,c)=真时,身份和访问管理服务102授权来自云提供商网络
100状态σ的动作。在此,假设p是角色;例如,当p是用户时,不同的语义规管授权。图3所示的示例性语义仅仅是为了说明的目的而提供的;在其他实施方案中,角色授权的语义可以通过考虑策略类型和云提供商网络结构的其他组合的逻辑来表达。
[0042]
在一些实施方案中,以下方程基于上面定义的角色授权语义定义了承担角色转换关系
[0043][0044]
在此,方程指示,当云提供商网络100处于状态σ并且传递会话标记状态为t时,当引入新的传递会话标记t
′‑
t集合时,角色p可承担为p
′
。中的e用于表征在执行期间环境对云提供商网络状态的影响。例如,当p承担为p
′
时,环境可以添加或删除角色、策略或资源。在一些实施方案中,当且仅当存在t、t
′
、σ
′
使得时,在环境模型e下,角色p
′
可从(p,σ)到达。在实践中,e的选择影响跨多个角色承担步骤的可达性问题。例如,当云提供商网络状态没有改变(即,e={(s,s
′
)|s=s
′
})时,p
′
可能无法从p到达,但如果环境不受限制(例如,e={(s,s
′
)|真}),则可到达。需注意,在中,传递会话标记的状态在中被明确跟踪,以便在可能的多个角色承担步骤中对其效果进行建模。
[0045]
图4示出了定义的程序f(使用承担语句,例如,如由符号模型检查器152或其他类型的角色可达性分析应用程序所定义),其具有当且仅当断言语句不能在u(p,σ,t,e,p
′
)中失败时,在环境模型e下角色p
′
不能从(p,σ)到达的属性。在一些实施方案中,这种减少使得能够使用基于软件的分析引擎(例如,可能包括符号模型检查器152)来证明或反驳任意两个给定角色p和p
′
之间的可达性。此外,该分析可以分布在任何数量的并发执行的计算装置(例如,由身份和访问管理服务102管理的计算装置或资源,由硬件虚拟化服务118或云提供商网络100的其他服务提供)上,从而使得能够有效地分析包括许多用户和角色的组织。例如,如果组织包括角色的集合作为输入,则对角色对的分析可以分布在任何数量的单独计算装置146上。
[0046]
在一些实施方案中,在圆圈“3”处,身份和访问管理服务102接收相对于与账户或账户集合(例如,与组织134相关联的账户)相关联的一些或所有角色执行角色可达性分析的请求158。例如,请求158可请求对与云提供商网络100的身份和访问管理服务102相关联的组织的多个账户(例如,账户136a-136n或组织134)的角色可达性分析,其中多个账户共同包括多个用户122a-122n(以及与账户136b-136n相关联的用户)、多个角色124a-124n、138、140和多个策略(例如,包括策略126)。在一些实施方案中,请求158是计算表示可能对(p,p
′
)的图的请求,使得p可以承担为p
′
。在一些实施方案中,参考上述示例性程序并假设σ、t和e,这可计算为集合:g={(p,p
′
)|可达(u(p,σ,t,e,p
′
))=假},其中可达表示符号模型检查器152或任何其他分析引擎的使用。在其他示例中,角色可达性分析请求158可请求对账户、角色的指定集合,或待分析的角色集合的其他分组进行分析。
[0047]
在一些实施方案中,请求158指定来自组织的所选择的一个或多个角色进行分析。例如,用户可指定一个或多个管理账户进行分析,使得角色可达性分析识别可以到达管理
角色的一个或多个其他角色的集合。在其他示例中,用户请求对与指定权限(例如,访问特定资源或在云提供商网络100内执行特定类型的动作的权限)相关联的任何角色进行分析。例如,这些类型的“入站”分析可以帮助用户识别用户和角色的集合,这些用户和角色可以到达具有用户可能希望或不希望这些用户/角色具有访问权限的权限的角色。在其他实施方案中,请求158指定一个或多个用户或角色,用于对用户或角色可以到达的角色集合进行“出站”分析。例如,用户可指定该用户知道已受损的用户或角色,并且该分析可提供受损用户或角色可以到达的角色集合的指示。
[0048]
在一些实施方案中,在圆圈“4”处,角色可达性分析器150获得组织规范148(例如,关于用户账户和策略信息的数据标识信息)作为输入,并使用组织规范148作为输入,基于角色可达性模型/程序154来发起分析引擎的执行(例如,基于软件的应用程序,其用于基于本文所述的形式化来执行角色可达性分析,并且可能包括符号模型检查器152)。例如,角色可达性分析器150可在一个或多个计算装置146上执行。在一些实施方案中,角色可达性分析器的分析的结果是角色承担图156,其示出由角色可达性分析器150识别的角色124a-124n之间的角色可达性关系。
[0049]
在一些实施方案中,由角色可达性分析器150执行的角色可达性分析涉及通过针对被分析的多个角色中的每对角色确定是否存在角色承担步骤的集合来识别在组织规范148中识别的多个角色之间的角色可达性关系,其中所述对中的第二角色可由所述对中的第一角色经由一个或多个角色承担步骤来承担。例如,对于第一角色a和第二角色b,分析涉及根据允许角色a直接承担为角色b,或者允许角色a经由一个或多个中间角色承担步骤承担为角色b的策略(存在环境,使得角色a可以承担为角色c,角色d可以承担为角色c,并且角色b可以从角色d承担)来确定角色b是否可从角色a到达。
[0050]
在一些实施方案中,可以通过注意在分析期间发现许多可达角色链并且因此不需要重新计算这些角色链来进一步修改上述分析。此外,在典型组织中,账户内角色承担相对常见,而账户间角色承担相对罕见。因此,在一些实施方案中,一组特定于账户的图可如下计算:gi={(p,p
′
)[p
#
=i∧p
′
#
=i∧影响(u(p,σt,e,p
′
))=假}。然后,在一些实施方案中,可以使用图5所示的角色可达性程序500来有效地计算g本身。如图所示,角色可达性程序500仅在可能跨账户转换的情况下(这在稀疏环境中是罕见的)尝试将边缘添加到g中。在一些实施方案中,使用插值来合成e。例如,设e={(s,s)|s=s
′
},则f(p,σ,t,e,p
′
)。在一些实施方案中,然后可以获得并使用在符号模型检验器证明期间使用的插值。
[0051]
在一些实施方案中,在圆圈“5”处,身份和访问管理服务102导致分析结果的显示,所述分析结果可能包括例如基于web的控制台或其他gui 600中的角色可达性图602。图6是角色可达性图602的图形显示的示例,所述角色可达性图表示在上述分析中相对于所识别的角色集合识别的角色可达性关系。在一些实施方案中,在角色可达性图602中,图的每个节点表示多个角色中的相应角色,并且图的第一节点和第二节点之间的边缘指示允许相应的第一角色承担多个角色中的相应第二角色。例如,角色可达性图602示出角色124c可从用户122a经由角色承担步骤从用户122a到达角色124a(或到达角色124b),然后进一步从角色124a到达角色124c。图6所示的示例进一步示出跨例如由从账户136a的角色124f到账户136n的角色124i的可能角色承担步骤所示的账户,角色承担步骤是可能的。在其他实施方案中,可以呈现角色可达性分析的其他呈现,例如,显示与特定用户或角色相关联的信息以
及用户或角色基于可能的角色承担链继承的权限和策略集合,尽管呈现可以或可以不显示角色可达性链的图形或其他显式表示。
[0052]
在一些实施方案中,如上所述,角色可达性图602还提供关于与所显示的角色中的一个或多个角色相关联的身份策略的信息。例如,用户可在图中选择角色并使gui显示有关授予所述角色的权限的信息,使得用户可以获得关于所识别的角色承担关系的发生的潜在影响的信息。尽管图6所示的示例仅示出了少量账户和角色,但角色可达性图602通常可以包括任何数量的账户、角色、用户以及与角色可达性分析相关的其他信息的显示。
[0053]
图7是示出根据一些实施方案的用于针对身份系统中的角色可达性使用组合推理技术的方法的操作的流程图700。操作700(或本文描述的其他过程、或其变型、和/或组合)的一些或全部在配置有可执行指令的一个或多个计算机系统的控制下执行,并且作为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)实现、由硬件实现或由其组合实现。代码例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质是非暂时性的。在一些实施方案中,操作700中的一个或多个(或全部)由其他图的角色可达性分析器150执行。
[0054]
操作700包括在框702处接收请求对与云提供商网络的身份和访问管理服务相关联的多个账户进行角色可达性分析的输入,其中所述多个账户共同包括多个角色和多个策略。
[0055]
操作700包括在框704处发起用于识别多个角色之间的角色可达性关系的分析引擎的执行,其中所述多个角色中的第一角色与第二角色之间的角色可达性关系指示允许用户经由承担第一角色和一个或多个角色承担步骤来承担第二角色,并且其中所述分析引擎使用多个角色和多个策略的规范作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递会话标记的状态的建模。
[0056]
操作700包括在框706处生成表示角色可达性关系的至少一个角色可达性图,其中角色可达性图的每个节点表示多个角色中的相应角色,并且其中角色可达性图的第一节点与第二节点之间的边缘指示允许相应的第一角色承担多个角色中的相应第二角色。
[0057]
操作700包括在框708处致使显示图形用户界面(gui),所述gui包括所述至少一个角色可达性图的图形显示。
[0058]
图8示出根据一些实施方案的示例性提供商网络(或“服务提供商系统”)环境。提供商网络800可经由一个或多个虚拟化服务810向客户提供资源虚拟化,所述虚拟化服务允许客户购买、租借或以其他方式获得在提供商网络或一个或多个数据中心中的网络内的装置上实现的虚拟化资源(包括但不限于计算资源和存储资源)的实例812。本地互联网协议(ip)地址816可与资源实例812相关联;本地ip地址是提供商网络800上的资源实例812的内部网络地址。在一些实施方案中,提供商网络800还可提供客户可以从提供商800获得的公共ip地址814和/或公共ip地址范围(例如,因特网协议版本4(ipv4)或因特网协议版本6(ipv6)地址)。
[0059]
照惯例,提供商网络800经由虚拟化服务810可以允许服务提供商的客户(例如,操作包括一个或多个客户装置852的一个或多个客户端网络850a-850c的客户)动态地将分配或分配给客户的至少一些公共ip地址814与分配给客户的特定资源实例812相关联。提供商
网络800还可允许客户将先前映射到分配给客户的一个虚拟化计算资源实例812的公共ip地址814重新映射到也分配给所述客户的另一虚拟化计算资源实例812。使用服务提供商提供的虚拟化计算资源实例812和公共ip地址814,服务提供商(例如,客户网络850a-850c的运营商)的客户可例如实现客户特定应用程序并且在中间网络840(例如,因特网)上呈现客户的应用程序。然后,中间网络840上的其他网络实体820可生成去向客户网络850a-850c发布的目的地公共ip地址814的流量;将流量路由到服务提供商数据中心并且在数据中心处经由网络底层路由到虚拟化计算资源实例812的当前映射到目的地公共ip地址814的本地ip地址816。类似地,可经由所述网络底层将来自虚拟化计算资源实例812的响应流量路由回到通向源实体820的中间网络840上。
[0060]
本文中所使用的本地ip地址指代例如提供商网络中的资源实例的内部或“专用”网络地址。本地ip地址可以在由互联网工程任务组(ietf)注释请求(rfc)1918预留的地址块内和/或具有由ietf rfc 4193指定的地址格式,并且在提供商网络内可以是可变的。源自提供商网络外部的网络流量不会直接路由到本地ip地址;而是,流量使用映射到资源实例的本地ip地址的公共ip地址。提供商网络可以包括提供网络地址转译(nat)或类似功能性以执行从公共ip地址到本地ip地址的映射的网络装置或设备,反之亦然。
[0061]
公共ip地址是由服务提供商或由客户分配给资源实例的互联网可变网络地址。路由到公共ip地址的流量例如经由1:1nat转译并转发到资源实例的相应本地ip地址。
[0062]
一些公共ip地址可以由提供商网络基础设施分配给特定资源实例;这些公共ip地址可以被称为标准公共ip地址,或简称为标准ip地址。在一些实施方案中,标准ip地址到资源实例的本地ip地址的映射是所有资源实例类型的默认启动配置。
[0063]
至少一些公共ip地址可分配给提供商网络800的客户或由提供商网络800的客户获得;然后,客户可将其分配到的公共ip地址分配给分配给客户的特定资源实例。这些公共ip地址可被称为客户公共ip地址或简称为客户ip地址。并不是像在标准ip地址的情形中那样由提供商网络800分配给资源实例,而是客户ip地址可由客户例如经由服务提供商提供的api分配给资源实例。与标准ip地址不同,客户ip地址由相应的客户分配给客户账户并且可在必要时或视需要重新映射到其他资源实例。客户ip地址与客户账户相关联,而不是与特定资源实例相关联,并且客户控制所述ip地址,直到客户选择释放它。与常规的静态ip地址不同,客户ip地址允许客户通过将客户的公共ip地址重新映射到与客户账户关联的任何资源实例来屏蔽资源实例或可用区故障。例如,客户ip地址使得客户能够通过将客户ip地址重新映射到替换资源实例来解决客户的资源实例或软件的问题。
[0064]
图9是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务920向客户提供多个计算资源924(例如,诸如vm的计算实例925)。例如,可将计算资源924租借或租赁给提供商网络900的客户(例如,实现客户网络950的客户)。每个计算资源924可设置有一个或多个本地ip地址。提供商网络900可被配置为将分组从计算资源924的本地ip地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源924的本地ip地址。
[0065]
提供商网络900可为例如经由本地网络956耦合到中间网络940的客户网络950提供经由耦合到中间网络940和提供商网络900的硬件虚拟化服务920实现虚拟计算系统992的能力。在一些实施方案中,硬件虚拟化服务920可提供一个或多个api 902(例如网页服务
接口),经由所述api客户网络950可例如经由控制台994(例如,基于网页的应用程序、独立应用程序、移动应用程序等)访问硬件虚拟化服务920提供的功能。在一些实施方案中,在提供商网络900处,客户网络950处的每一虚拟计算系统992可对应于租用、租借或以其他方式提供给客户网络950的计算资源924。
[0066]
从虚拟计算系统992和/或另一客户装置990(例如,经由控制台994)的实例,客户可例如经由一个或多个api 902访问存储服务910的功能,以从提供商网络900提供的虚拟数据存储区916的存储资源918a-918n访问数据(例如,文件夹或“桶”、虚拟化卷、数据库等)和将数据存储到所述存储资源。在一些实施方案中,可在客户网络950处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可在本地高速缓存至少一些数据(例如,频繁访问的或关键的数据),并且可经由一个或多个通信信道与存储服务910通信以从本地高速缓存上传新的或修改的数据,使得维护数据的主存储区(虚拟化数据存储区916)。在一些实施方案中,用户经由虚拟计算系统992和/或在另一个客户装置990上可以经由充当存储虚拟化服务的存储服务910安装和访问虚拟化数据存储916卷,并且这些卷在用户看来可以是本地(虚拟化)存储装置998。
[0067]
虽然在图9中未示出,但还可经由api 902从提供商网络900内的资源实例访问虚拟化服务。例如,客户、设备服务提供商或其他实体可经由api 902从提供商网络900上的相应虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一虚拟网络内的一个或多个资源实例。
[0068]
在一些实施方案中,实现本文中所述的技术的一部分或全部的系统可包括通用计算机系统,所述通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图10中所示的计算机系统1000。在所示的实施方案中,计算机系统1000包括一个或多个处理器1010,所述一个或多个处理器经由输入/输出(i/o)接口1030耦合到系统存储器1020。计算机系统1000还包括耦合到i/o接口1030的网络接口1040。虽然图10将计算机系统1000示出为单个计算装置,但在各种实施方案中,计算机系统1000可以包括一个计算装置或被配置为作为单个计算机系统1000一起工作的任何数量的计算装置。
[0069]
在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统或包括数个处理器1010(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器1010可以是能够执行指令的任何适合的处理器。例如,在各种实施方案中,处理器1010可以为实现多种指令集架构(isa)中的任何一种(诸如,x86、arm、powerpc、sparc、或mips isa或任何其他合适的isa)的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每一者通常可但未必实现同一isa。
[0070]
系统存储器1020可存储可由处理器1010访问的指令和数据。在各种实施方案中,系统存储器1020可使用任何适合的存储器技术来实现,诸如随机存取存储器(ram)、静态ram(sram)、同步动态ram(sdram)、非易失性/快闪型存储器或任何其他类型的存储器。在所示实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上述那些方法、技术和数据)被示为存储在系统存储器1020内作为角色可达性分析器代码1025(例如,可执行以全部或部分实现角色可达性分析器150)和数据1026。
[0071]
在一个实施方案中,i/o接口1030可被配置为协调处理器1010、系统存储器1020和装置中的任何外围装置(包括网络接口1040或其他外围接口)之间的i/o流量。在一些实施
方案中,i/o接口1030可执行任何必要的协议、时序或其他数据变换以将来自一个部件(例如,系统存储器1020)的数据信号转变成适合于另一部件(例如,处理器1010)使用的格式。在一些实施方案中,i/o接口1030可包括对通过各种类型的外围总线(例如,诸如外围组件互连(pci)总线标准或通用串行总线(usb)标准的变型)附接的装置的支持。例如,在一些实施方案中,可将i/o接口1030的功能分成两个或更多个单独的部件,诸如北桥和南桥。此外,在一些实施方案中,i/o接口1030(诸如,通向系统存储器1020的接口)的功能中的一些或所有可直接并入到处理器1010中。
[0072]
例如,网络接口1040可被配置为允许在计算机系统1000与附接到一个或多个网络1050的其他装置1060(例如,诸如图1中所示的其他计算机系统或装置)之间交换数据。例如,在各种实施方案中,网络接口1040可经由任何适合的有线或无线通用数据网络(例如,以太网网络类型)支持通信。另外,网络接口1040可经由电信/电话网络(例如,模拟语音网络或数字光纤通信网络)、经由存储区域网(san)(诸如光纤通道san)或经由i/o任何其他适合类型的网络和/或协议支持通信。
[0073]
在一些实施方案中,计算机系统1000包括一个或多个卸载卡1070a或1070b(包括一个或多个处理器1075,并且可能包括一个或多个网络接口1040),所述一个或多个卸载卡使用i/o接口1030(例如,实现快速外围组件互连(pci-e)标准的版本或诸如quickpath互连(qpi)或ultrapath互连(upi)的另一互连的总线)连接。例如,在一些实施方案中,计算机系统1000可充当托管计算资源(诸如计算实例)的主机电子装置(例如,作为硬件虚拟化服务的一部分进行操作),并且一个或多个卸载卡1070a或1070b执行可管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,一个或多个卸载卡1070a或1070b可执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器转移/复制操作等。在一些实施方案中,这些管理操作可由一个或多个卸载卡1070a或1070b与由计算机系统1000的其他处理器1010a-1010n执行的管理程序(例如,根据管理程序的请求)协作来执行。然而,在一些实施方案中,由一个或多个卸载卡1070a或1070b实现的虚拟化管理器可容纳来自其他实体(例如,来自计算实例本身)的请求,并且可不与任何单独的管理程序协作(或服务于任何单独的管理程序)。
[0074]
在一些实施方案中,系统存储器1020可为被配置为存储如上文所描述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。通常来说,计算机可访问介质可包括非暂时性存储介质或诸如磁性介质或光学介质的存储器介质,例如经由i/o接口1030耦合到计算机系统1000的盘或dvd/cd。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如ram(例如,sdram、双倍数据速率(ddr)sdram、sram等)、只读存储器(rom)等,所述易失性或非易失性介质可包括在计算机系统1000的一些实施方案中作为系统存储器1020或另一类型的存储器。此外,计算机可访问介质可包括经由通信介质(诸如,网络和/或无线链路)输送的传输介质或信号(诸如,电信号、电磁信号或数字信号),所述通信介质诸如可以经由网络接口1040实现。
[0075]
本文中所论述或所提出的各种实施方案可在各种各样的操作环境中实现,在一些情形中所述操作环境可以包括可用于操作多个应用程序中的任一者的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可以包括:许多通用个人计算机中的任一
者,诸如运行标准操作系统的台式计算机或笔记本计算机;以及运行移动软件并且能够支持许多联网协议和消息传递协议的蜂窝装置、无线装置和手持式装置。这种系统还可以包括许多工作站,所述工作站运行多种可商业购得的操作系统和用于诸如开发和数据库管理等目的的其他已知应用程序中的任一者。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和/或能够经由网络通信的其他装置。
[0076]
大多数实施方案利用本领域技术人员将熟悉的至少一种网络来支持使用多种广泛可用的协议中的任一者进行通信,所述协议诸如传输控制协议/互联网协议(tcp/ip)、文件传输协议(ftp)、通用即插即用(upnp)、网络文件系统(nfs)、公共互联网文件系统(cifs)、可扩展消息传递和到场协议(xmpp)、appletalk等。所述网络可以包括例如局域网(lan)、广域网(wan)、虚拟专用网(vpn)、互联网、内联网、外联网、公用电话交换网(pstn)、红外网络、无线网络以及它们的任何组合。
[0077]
在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用程序中的任一种,包括http服务器、文件传输协议(ftp)服务器、通用网关接口(cgi)服务器、数据服务器、java服务器、流量应用程序服务器等。服务器还可能能够响应于来自用户装置的请求(诸如通过执行可以被实现为以任何编程语言(诸如c、c#或c++)或任何脚本语言(诸如perl、python、php或tcl)以及它们的组合编写的一个或多个脚本或程序的一个或多个web应用)而执行程序或脚本。服务器还可以包括数据库服务器,包括但不限于商业上可从oracle(r)、microsoft(r)、sybase(r)、ibm(r)等购得的数据库服务器。数据库服务器可以为关系型或非关系型(例如,“nosql”)、分布式或非分布式等。
[0078]
本文公开的环境可以包括多种数据存储区以及如上文所讨论的其他存储器和存储介质。这些可以驻留在多种位置中,诸如驻留在一个或多个计算机本地(和/或驻留在其中)的存储介质上,或驻留在跨网络远离计算机中的任一者或全部的存储介质上。在一组特定的实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网(san)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要文件可以视情况本地或远程存储。在系统包括计算机化装置的情况下,每个这样的装置可以包括可以经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“cpu”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和/或至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可以包括一个或多个存储装置,诸如硬盘驱动器、光存储装置和诸如随机存取存储器(ram)或只读存储器(rom)等固态存储装置,以及可移除介质装置、存储卡、闪存卡等。
[0079]
此类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所述。计算机可读存储介质读取器可以与计算机可读存储介质连接或被配置为接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除存储装置以及用于暂时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用程序或web浏览器。应当明白,备选实施方案可以具有与上述不同的大量变型。例如,还可以使用自定义硬件,和/或特定元件可以在硬件、软件(包括便携式软件,诸如小应用程序)或这两者中实现。此外,可以采用与诸如网络输入/输出装置等其他计
算装置的连接。
[0080]
用于包含代码或部分代码的存储介质和计算机可读介质可以包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质,包括ram、rom、电可擦除可编程只读存储器(eeprom)、闪存存储器或其他存储器技术、只读光盘存储器(cd-rom)、数字通用光盘(dvd)或其他光存储器装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或可以用于存储期望信息并且可以由系统装置访问的任何其他介质。基于本文中提供的公开和教导,本领域一般技术人员将会明白用于实现各种实施方案的其他方式和/或方法。
[0081]
在以上描述中,描述各种实施方案。出于解释目的,阐述了具体配置和细节以便提供对实施方案的透彻理解。然而,对于本领域技术人员来说也显而易见的是,可以在没有具体细节的情况下实践所述实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
[0082]
在本文中使用带有虚线边框(例如,大破折号、小破折号、点破折号和点)的带括号的文本和框来示出向一些实施方案添加附加特征的任选操作。然而,所述标记法不应被视为意指这些是唯一选项或任选操作,和/或带实线边界的框在某些实施方案中不是任选的。
[0083]
在各种实施方案中,具有后缀字母的附图标记(例如,918a至918n)可以用于指示可以存在所引用实体的一个或多个实例,并且当存在多个实例时,每个实例不必相同,而是可以替代地共享一些一般特征或按惯例行事。此外,所使用的特定后缀不意在暗示存在特定量的实体,除非有相反的具体指示。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可以具有或可以不具有相同数量的实例。
[0084]
对于“一个实施方案”、“实施方案”、“示例性实施方案”等的提及指示所述的实施方案可以包括特定特征、结构或特性,但是每一个实施方案都可以不必包括所述特定特征、结构或特性。此外,此类短语不一定是指同一实施方案。此外,当结合实施方案来描述特定特征、结构或特性时,应认为,无论是否有明确描述,结合其他实施方案来实施此类特征、结构或特性也在本领域技术人员的知识范围内。
[0085]
此外,在上述各种实施方案中,除非另外特别指出,否则诸如短语“a、b或c中的至少一个”的析取语言意图被理解为表示a、b或c或其任何组合(例如,a、b和/或c)。因而,析取语言通常并不意图也不应被理解为暗示给定的实施方案要求至少一个a、至少一个b或至少一个c各自都存在。
[0086]
所公开的技术的至少一些实施方案可以根据以下条款来描述:
[0087]
1.一种计算机实现的方法,其包括:
[0088]
接收请求对与云提供商网络的身份和访问管理服务相关联的多个账户进行角色可达性分析的输入,其中所述多个账户共同包括多个角色和多个策略;
[0089]
发起用于识别所述多个角色之间的角色可达性关系的分析引擎的执行,其中所述多个角色中的第一角色与第二角色之间的角色可达性关系指示允许用户经由承担所述第一角色和一个或多个角色承担步骤来承担所述第二角色,并且其中所述分析引擎使用所述多个角色和所述多个策略的规范作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递会话标记的状态的建模;
[0090]
生成表示所述角色可达性关系的至少一个角色可达性图,其中角色可达性图的每个节点表示所述多个角色中的相应角色,并且其中所述角色可达性图的第一节点与第二节点之间的边缘指示允许相应的第一角色承担所述多个角色中的相应第二角色;以及
[0091]
致使显示图形用户界面(gui),所述gui包括所述至少一个角色可达性图的图形显示。
[0092]
2.如条款1所述的计算机实现的方法,其还包括通过针对所述多个角色中的每对角色确定是否存在角色承担步骤的集合来识别所述多个角色之间的所述角色可达性关系,其中所述对中的第二角色可由所述对中的第一角色经由所述角色承担步骤的集合来承担。
[0093]
3.如条款1或2中任一项所述的计算机实现的方法,其中所述分析引擎的执行涉及分析所述多个角色中的角色对,并且其中所述方法还包括跨多个并发执行的计算资源来分布对所述角色对的分析。
[0094]
4.一种计算机实现的方法,其包括:
[0095]
获得指定由云提供商网络的身份和访问管理服务定义的第一角色和第二角色并进一步指定各自与所述第一角色或所述第二角色相关联的多个策略的数据;
[0096]
发起分析引擎的执行以确定所述第二角色能够经由一个或多个角色承担步骤从所述第一角色到达,其中所述分析引擎使用所述数据作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递性会话标记的状态的建模;以及
[0097]
致使显示图形用户界面(gui),所述gui包括所述第一角色和所述第二角色的表示并且还包括所述第一角色和第二角色之间的所述一个或多个角色承担步骤的指示。
[0098]
5.如条款4所述的计算机实现的方法,其中所述第一角色和所述第二角色是所述分析引擎所分析的多个角色的一部分,并且其中所述方法还包括:通过针对所述多个角色中的每对角色确定是否存在角色承担步骤的集合来识别所述多个角色之间的角色可达性关系,其中所述对中的第二角色能够由所述对中的第一角色经由所述角色承担步骤的集合来承担。
[0099]
6.如条款4或5中任一项所述的计算机实现的方法,其中所述第一角色和所述第二角色是所述分析引擎所分析的多个角色的一部分,其中所述分析引擎的执行涉及分析所述多个角色中的角色对,并且其中所述方法还包括跨多个并发执行的计算资源来分布来分布对所述角色对的分析。
[0100]
7.如条款4至6中任一项所述的计算机实现的方法,其中所述第一角色和所述第二角色与由云提供商网络的身份和访问管理服务定义的一个或多个账户相关联,并且其中所述身份和访问管理服务发起响应于对由所述身份和访问管理服务定义的所述一个或多个账户执行角色可达性分析的请求的执行。
[0101]
8.如条款4至6中任一项所述的计算机实现的方法,其还包括:
[0102]
由云提供商网络的身份和访问管理服务接收请求对由所述云提供商网络的身份和访问管理服务定义的组织的多个账户进行角色可达性分析的输入,其中所述组织包括多个角色,所述多个角色包括所述第一角色和所述第二角色;以及
[0103]
识别所述多个角色之间的多个角色可达性关系,包括确定所述第二角色能够从所述第一角色到达。
[0104]
9.如条款4至8中任一项所述的计算机实现的方法,其中所述第一角色与云提供商
网络的第一账户相关联并且所述第二角色与所述云提供商网络的第二账户相关联,并且其中所述gui包括所述第一角色和所述第二角色与不同账户相关联的指示。
[0105]
10.如条款4至9中任一项所述的计算机实现的方法,其中所述第二角色与指定被允许承担所述第一角色的一个或多个主体的信任策略相关联,其中所述第一角色进一步与指定授予所述第一角色的权限的身份策略相关联,并且其中用作所述分析引擎的输入的所述数据进一步包括所述信任策略和所述身份策略的表示。
[0106]
11.如条款4至10中任一项所述的计算机实现的方法,其中所述角色可达性程序进一步对以下各项中的至少一者的使用进行建模:用于定义基于身份的策略能够授予包括所述第一角色或所述第二角色的实体的最大权限的权限边界策略;用于定义角色授予会话的权限的会话策略;用于定义组织的包括所述第一角色或所述第二角色的实体的权限的服务控制策略;或用于定义资源的权限的基于资源的策略。
[0107]
12.如条款4至11中任一项所述的计算机实现的方法,其中所述gui包括角色可达性图的图形显示,所述角色可达性图包括表示所述第一角色的第一节点、表示所述第二角色的第二节点以及表示所述第一角色与所述第二角色之间的一个或多个角色承担步骤的一个或多个边缘。
[0108]
13.如条款4至12中任一项所述的计算机实现的方法,其还包括:
[0109]
接收选择所述第二角色的输入;以及
[0110]
致使显示与所述第二角色相关联的身份策略信息,其中所述身份策略信息指定授予所述第二角色的权限。
[0111]
14.如条款4至13中任一项所述的计算机实现的方法,其中所述传递会话标记中的传递会话标记是分配给角色承担会话的元数据,并且其中所述传递会话标记由与后续角色承担步骤相关联的后续角色承担会话继承。
[0112]
15.如条款4至14中任一项所述的计算机实现的方法,其还包括:
[0113]
接收指定包括所述第一角色的一个或多个角色的集合并且进一步指定对所述一个或多个角色的所述可达性的入站或出站分析的请求;并且
[0114]
其中所述分析引擎确定能够到达所述一个或多个角色的入站或出站角色的集合,并且其中所述gui还包括所述入站或出站角色的表示。
[0115]
16.一种系统,其包括:
[0116]
第一一个或多个电子装置,所述第一一个或多个电子装置用于在多租户云提供商网络中实现身份和访问管理服务,所述身份和访问管理服务包括指令,所述指令在执行时致使所述身份和访问管理服务:
[0117]
接收请求对与云提供商网络的身份和访问管理服务相关联的多个账户进行角色可达性分析的输入,其中所述多个账户共同包括多个角色和多个策略,
[0118]
发起用于识别所述多个角色之间的角色可达性关系的分析引擎的执行,其中所述多个角色中的第一角色与第二角色之间的角色可达性关系指示允许用户经由承担所述第一角色和一个或多个角色承担步骤来承担所述第二角色,以及
[0119]
致使显示图形用户界面(gui),所述gui包括由所述分析引擎生成的至少一个角色可达性图的图形显示;以及
[0120]
第二一个或多个电子装置,所述第二一个或多个电子装置用于在所述多租户提供
商网络中实现分析引擎,所述分析引擎包括指令,所述指令在执行时致使所述分析引擎:
[0121]
使用所述多个角色和所述多个策略的规范作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递会话标记的状态的建模,以及
[0122]
生成表示所述角色可达性关系的至少一个角色可达性图,其中角色可达性图的每个节点表示所述多个角色中的相应角色,并且其中所述角色可达性图的第一节点与第二节点之间的边缘指示允许相应的第一角色承担所述多个角色中的相应第二角色。
[0123]
17.如条款16所述的系统,其中所述分析引擎还包括指令,所述指令在执行时使所述分析引擎通过针对所述多个角色中的每对角色确定是否存在角色承担步骤的集合来识别所述多个角色之间的所述角色可达性关系,其中所述对中的第二角色能够由所述对中的第一角色经由所述角色承担步骤的集合来承担,其中所述角色可达性图表示一个或多个传递闭包图,所述一个或多个传递闭包图表示所述角色可达性关系。
[0124]
18.如条款16或17中任一项所述的系统,其中所述分析引擎的执行涉及分析所述多个角色中的角色对,并且其中所述身份和访问管理服务还包括指令,所述指令在执行时使所述身份和访问管理服务跨多个并发执行的计算资源来分布对所述角色对的所述分析。
[0125]
19.如条款16至18中任一项所述的系统,其中所述第一角色与云提供商网络的第一账户相关联并且所述第二角色与所述云提供商网络的第二账户相关联,并且其中所述gui包括所述第一角色和所述第二角色与不同账户相关联的指示。
[0126]
20.如条款16至19中任一项所述的系统,其中所述第二角色与指定被允许承担所述第一角色的一个或多个主体的信任策略相关联,其中所述第一角色进一步与指定授予所述第一角色的权限的身份策略相关联,并且其中用作所述分析引擎的输入的所述数据进一步包括所述信任策略和所述身份策略的表示。
[0127]
因此,说明书和附图被认为是说明性的而不是限制性的意义。然而,显而易见的是,在不偏离如所附权利要求中所阐述的本公开的更宽泛的精神及范围的情况下,可以对其进行各种修改及改变。
技术特征:
1.一种计算机实现的方法,其包括:获得指定由云提供商网络的身份和访问管理服务定义的第一角色和第二角色并进一步指定各自与所述第一角色或所述第二角色相关联的多个策略的数据;发起分析引擎的执行以确定所述第二角色能够经由一个或多个角色承担步骤从所述第一角色到达,其中所述分析引擎使用所述数据作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递性会话标记的状态的建模;以及致使显示图形用户界面(gui),所述gui包括所述第一角色和所述第二角色的表示并且还包括所述第一角色和所述第二角色之间的所述一个或多个角色承担步骤的指示。2.如权利要求1所述的计算机实现的方法,其中所述第一角色和所述第二角色是所述分析引擎所分析的多个角色的一部分,并且其中所述方法还包括:通过针对所述多个角色中的每对角色确定是否存在角色承担步骤的集合来识别所述多个角色之间的角色可达性关系,其中所述对中的第二角色能够由所述对中的第一角色经由所述角色承担步骤的集合来承担。3.如权利要求1或2中任一项所述的计算机实现的方法,其中所述第一角色和所述第二角色是所述分析引擎所分析的多个角色的一部分,其中所述分析引擎的执行涉及分析所述多个角色中的角色对,并且其中所述方法还包括跨多个并发执行的计算资源来分布对所述角色对的分析。4.如权利要求1至3中任一项所述的计算机实现的方法,其还包括:由云提供商网络的身份和访问管理服务接收请求对由所述云提供商网络的身份和访问管理服务定义的组织的多个账户进行角色可达性分析的输入,其中所述组织包括多个角色,所述多个角色包括所述第一角色和所述第二角色;以及识别所述多个角色之间的多个角色可达性关系,包括确定所述第二角色能够从所述第一角色到达。5.如权利要求1至4中任一项所述的计算机实现的方法,其中所述第一角色与云提供商网络的第一账户相关联,并且所述第二角色与所述云提供商网络的第二账户相关联,并且其中所述gui包括所述第一角色和所述第二角色与不同账户相关联的指示。6.如权利要求1至5中任一项所述的计算机实现的方法,其中所述第二角色与指定被允许承担所述第一角色的一个或多个主体的信任策略相关联,其中所述第一角色进一步与指定授予所述第一角色的权限的身份策略相关联,并且其中用作所述分析引擎的输入的所述数据进一步包括所述信任策略和所述身份策略的表示。7.如权利要求1至6中任一项所述的计算机实现的方法,其中所述角色可达性程序进一步对以下各项中的至少一者的使用进行建模:用于定义基于身份的策略能够授予包括所述第一角色或所述第二角色的实体的最大权限的权限边界策略;用于定义角色授予会话的权限的会话策略;用于定义组织的包括所述第一角色或所述第二角色的实体的权限的服务控制策略;或用于定义资源的权限的基于资源的策略。8.如权利要求1至7中任一项所述的计算机实现的方法,其中所述gui包括角色可达性图的图形显示,所述角色可达性图包括表示所述第一角色的第一节点、表示所述第二角色的第二节点以及表示所述第一角色与所述第二角色之间的一个或多个角色承担步骤的一个或多个边缘。
9.如权利要求4所述的计算机实现的方法,其中所述传递会话标记中的传递会话标记是分配给角色承担会话的元数据,并且其中所述传递会话标记由与后续角色承担步骤相关联的后续角色承担会话继承。10.如权利要求4所述的计算机实现的方法,其还包括:接收指定包括所述第一角色的一个或多个角色的集合并且进一步指定对所述一个或多个角色的所述可达性的入站或出站分析的请求;并且其中所述分析引擎确定能够到达所述一个或多个角色的入站或出站角色的集合,并且其中所述gui还包括所述入站或出站角色的表示。11.一种系统,其包括:第一一个或多个电子装置,所述第一一个或多个电子装置用于在多租户云提供商网络中实现身份和访问管理服务,所述身份和访问管理服务包括指令,所述指令在执行时致使所述身份和访问管理服务:接收请求对与云提供商网络的身份和访问管理服务相关联的多个账户进行角色可达性分析的输入,其中所述多个账户共同包括多个角色和多个策略,发起用于识别所述多个角色之间的角色可达性关系的分析引擎的执行,其中所述多个角色中的第一角色与第二角色之间的角色可达性关系指示允许用户经由承担所述第一角色和一个或多个角色承担步骤来承担所述第二角色,以及致使显示图形用户界面(gui),所述gui包括由所述分析引擎生成的至少一个角色可达性图的图形显示;以及第二一个或多个电子装置,所述第二一个或多个电子装置用于在所述多租户提供商网络中实现分析引擎,所述分析引擎包括指令,所述指令在执行时致使所述分析引擎:使用所述多个角色和所述多个策略的规范作为角色可达性程序的输入,所述角色可达性程序包括跨多个角色承担步骤对传递会话标记的状态的建模,以及生成表示所述角色可达性关系的至少一个角色可达性图,其中角色可达性图的每个节点表示所述多个角色中的相应角色,并且其中所述角色可达性图的第一节点与第二节点之间的边缘指示允许相应的第一角色承担所述多个角色中的相应第二角色。12.如权利要求11所述的系统,其中所述分析引擎还包括指令,所述指令在执行时使所述分析引擎通过针对所述多个角色中的每对角色确定是否存在角色承担步骤的集合来识别所述多个角色之间的所述角色可达性关系,其中所述对中的第二角色能够由所述对中的第一角色经由所述角色承担步骤的集合来承担,其中所述角色可达性图表示一个或多个传递闭包图,所述一个或多个传递闭包图表示所述角色可达性关系。13.如权利要求11或12中任一项所述的系统,其中所述分析引擎的执行涉及分析所述多个角色中的角色对,并且其中所述身份和访问管理服务还包括指令,所述指令在执行时使所述身份和访问管理服务跨多个并发执行的计算资源来分布对所述角色对的所述分析。14.如权利要求11至13中任一项所述的系统,其中所述第一角色与云提供商网络的第一账户相关联,并且所述第二角色与所述云提供商网络的第二账户相关联,并且其中所述gui包括所述第一角色和所述第二角色与不同账户相关联的指示。15.如权利要求11至14中任一项所述的系统,其中所述第二角色与指定被允许承担所述第一角色的一个或多个主体的信任策略相关联,其中所述第一角色进一步与指定授予所
述第一角色的权限的身份策略相关联,并且其中用作所述分析引擎的输入的所述数据进一步包括所述信任策略和所述身份策略的表示。
技术总结
描述了用于使用组合推理技术相对于云提供商网络的用户账户和角色的集合执行角色可达性分析的技术。基于委派角色的资源管理通常是一种用于控制对云提供商网络和其他分布式系统中的资源的访问的方法。例如,许多云提供商网络使用这种方法实现身份和访问管理子系统,其中“角色”的概念用于指定可由人员、软件或(递归地)由其他角色访问哪些资源。提供了所述角色可达性分析的抽象,所述抽象可用作模型检查应用程序的输入,以推理此类角色可达性问题(例如,组织的哪些角色可从其他角色达到)。组织的哪些角色可从其他角色达到)。组织的哪些角色可从其他角色达到)。
技术研发人员:J
受保护的技术使用者:亚马逊技术股份有限公司
技术研发日:2021.09.08
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/