CN111404923A - 容器集群访问权限的控制方法及系统 - Google Patents
容器集群访问权限的控制方法及系统 Download PDFInfo
- Publication number
- CN111404923A CN111404923A CN202010171726.7A CN202010171726A CN111404923A CN 111404923 A CN111404923 A CN 111404923A CN 202010171726 A CN202010171726 A CN 202010171726A CN 111404923 A CN111404923 A CN 111404923A
- Authority
- CN
- China
- Prior art keywords
- user
- resource
- list
- cluster
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种容器集群访问权限的控制方法及系统。其中,方法包括:密钥管理模块获取用户的用户信息和用户可访问服务接口的列表,每隔预定时间将用户信息和列表发送至认证模块,获取认证模块基于用户信息和列表生成的临时访问密钥,将临时访问密钥保存至用户的Kubernetes集群中,用户的Kubernetes集群处于用户的VPC网络环境中;在用户的Kubernetes集群接收到资源操作请求时,将临时访问密钥添加至资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;资源管理系统与用户的Kubernetes集群处于不同的VPC网络环境。本实施例中,处于用户的VPC网络环境的Kubernetes集群有访问权限,可根据该访问权限与资源管理系统交互,同时还可实现防止非法用户获取到用户的访问权限。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种容器集群访问权限的控制方法及一种容器集群访问权限的控制系统。
背景技术
云计算是一种按使用量付费的商业模式。这种模式为用户提供便捷、按需的网络访问和可配置的资源池(包括计算、存储及网络资源),用户部署在资源池上的应用系统能够根据需要获取计算力、存储空间和信息服务。
Kubernetes集群作为一种容器管理工具,包括主节点和分别与主节点通信连接的多个计算节点,其中,主节点用于管理和控制多个计算节点。
在云计算服务模式下,为了实现不同用户之间的隔离,用户创建的Kubernetes集群通常运行在用户的VPC(Virtual Private Cloud,虚拟私有云)网络环境内,而用户的VPC网络环境中的Kubernetes集群中的一些底层服务,例如Cloud Provider,需要与云计算服务提供商的其他内部系统(例如:资源管理系统OpenAPI)进行交互,以获取容器和/或计算节点所需资源。而云计算服务提供商的其他内部系统通常和用户的Kubernetes集群处于不同的VPC网络环境中。
且现有技术中,云计算服务提供商为了保护和控制资源,在每个用户VPC网络环境内的容器引擎向资源管理系统OpenAPI发送访问请求时,资源管理系统OpenAPI需要验证该用户的每个访问请求的权限。因为不同的用户都需要被资源管理系统OpenAPI验证身份,因此,有些不法用户如果在此环节设置非法流程将有可能盗取其他用户的密钥。
因此,如何能够实现处于用户VPC网络环境中的Kubernetes集群能够与处于不同VPC的资源管理系统OpenAPI交互的同时,实现防止一个不法用户获取到用户的访问权限成为亟待解决的技术问题。
发明内容
本发明的一个目的是提供一种用于控制容器集群访问权限的新技术方案。
根据本发明的第一方面,提供了一种容器集群访问权限的控制方法,包括:
密钥管理模块获取用户的用户信息和所述用户可访问服务接口的列表;
所述密钥管理模块每隔预定时间将所述用户信息和所述列表发送至认证模块;
所述密钥管理模块获取所述认证模块基于所述用户信息和列表生成的临时访问密钥;
所述密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于所述用户的虚拟私有云VPC网络环境中;
在所述用户的Kubernetes集群接收到资源操作请求时,将所述临时访问密钥添加至所述资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;其中,所述资源管理系统与所述用户的Kubernetes集群处于不同的虚拟私有云VPC网络环境。
在一个实施例中,所述密钥管理模块获取所述用户可访问服务接口的列表的步骤,包括:
所述密钥管理模块获取用户的用户信息,并向容器引擎控制模块输出与所述用户信息匹配的可访问服务接口的列表;其中,所述容器引擎控制模块中提供有用于输入确认指令的输入接口,所述确认指令表征所述用户授权所述用户的Kubernetes集群访问所述列表中的服务接口;以及,
在检测到所述容器引擎控制模块接收到所述输入接口输入所述确认指令的情况下,获取所述用户可访问服务接口的列表。
在一个实施例中,所述列表中包括的可访问服务接口为:主机服务接口、网络服务接口、存储服务接口中的任意一个。
在一个实施例中,所述密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群中,包括:
密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群的资源对象中。
在一个实施例中,所述资源对象为configmap或secrets。
在一个实施例中,所述方法还包括:
Kubernetes集群接收所述用户输入的资源操作命令,并根据接收到的所述资源操作命令,生成所述资源操作请求。
在一个实施例中,所述方法还包括:
在所述用户的Kubernetes集群满足扩缩容条件的情况下,所述用户的Kubernetes集群根据所述扩缩容条件对应的扩缩容策略生成所述资源操作请求。
在一个实施例中,所述将包含有临时访问密钥的资源操作请求发送至资源管理系统,包括:
所述用户的Kubernetes集群识别所述资源操作请求的所请求的资源类型;所述资源类型包括计算资源类、网络资源类、存储资源类;
将包含有临时访问密钥的资源操作请求发送至资源管理系统的与所述资源类型对应的服务接口。
根据本发明的第二方面,提供了一种容器集群访问权限的控制系统,包括:
密钥管理模块,用于获取用户的用户信息和所述用户可访问服务接口的列表;每隔预定时间将所述用户信息和列表发送至认证模块;获取所述认证模块基于所述用户信息和列表生成的临时访问密钥;将所述临时访问密钥保存至所述用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于所述用户的虚拟私有云VPC网络环境中;
所述用户的Kubernetes集群,用于在接收到资源操作请求时,将所述临时访问密钥添加至所述资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;其中,所述资源管理系统与所述用户的Kubernetes集群处于不同的虚拟私有云VPC网络环境。
在一个实施例中,所述密钥管理模块,具体用于:
提供用于输入确认指令的指令输入接口,其中,所述确认指令表征所述用户授权所述用户的Kubernetes集群访问所述列表中的服务接口;
所述密钥管理模块在接收到通过所述指令输入接口输入的所述确认指令的情况下,获取用户的用户信息和所述用户可访问服务接口的列表。
在本实施例中,密钥管理模块每隔预定时间将获取到的用户信息和列表发送至认证模块,以由认证模块基于用户信息和列表生成对应的临时访问密钥。密钥管理模块获取认证模块生成的临时访问密钥,并将临时访问密钥保存至用户的Kubernetes集群中。在用户的Kubernetes集群接收到资源操作请求时,Kubernetes集群将临时访问密钥添加至资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统。这样,由于Kubernetes向资源管理系统发送的资源操作请求中包含有资源管理系统认可的临时访问密钥,因此,处于用户VPC网络环境中的Kubernetes集群拥有访问权限,可根据该访问权限与处于不同VPC的资源管理系统交互。同时,由于临时访问密钥具有有效期,即临时访问密钥定期作废并更新,因此,即使不法用户获取了用户的临时访问密钥,获取到的临时访问密钥也会作废,这使得不法用户丧失访问权限,而无法对资源管理系统中属于用户的资源进行访问,这避免了不法用户获取到用户的有效的访问权限,提高了资源管理系统中用户资源的安全性。另外,由于临时访问密钥是基于用户的用户信息生成的,因此,用户只可访问资源管理系统中属于自己的资源,而无法访问资源管理系统中其他租户的资源,这保证了资源管理系统中其他用户的资源的安全性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明实施例提供的一种Kubernetes集群的结构示意图;
图2是本发明实施例提供的一种用于实现容器集群访问权限的控制方法的电子设备的硬件配置的框图;
图3是本发明实施例提供的一种容器集群访问权限的控制方法的流程图;
图4是本发明实施例提供的一种容器集群访问权限的控制系统的结构示意图;
图5是本发明实施例提供的另一种容器集群访问权限的控制系统的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
云计算是一种按使用量付费的商业模式。这种模式为用户提供便捷、按需的网络访问和可配置的资源池(包括计算、存储及网络资源),用户部署在资源池上的应用系统能够根据需要获取计算力、存储空间和信息服务。
Kubernetes集群作为一种容器管理工具,如图1所示,包括主节点和分别与主节点通信连接的多个计算节点,其中,计算节点是工作负载节点,主节点用于管理和控制多个计算节点。以及,每个计算节点中部署有多个容器组,每个容器组中封装有一个或多个用于承载应用的容器。
目前,在云计算服务模式下,为了实现不同用户之间的隔离,用户创建的Kubernetes集群通常运行在用户的VPC(Virtual Private Cloud,虚拟私有云)网络环境内。而用户的VPC网络环境中的Kubernetes集群中的一些底层服务,例如Cloud Provider,需要与云计算服务提供商的其他内部系统,例如资源管理系统OpenAPI进行交互,以获取容器和/或计算节点所需资源,从而以实现为计算节点或容器创建负载均衡、企业信息门户(EIP;Enterprise Information Portal)、弹性块存储(EBS;Elastic Block Store)云硬盘等、增删计算节点。而资源管理系统OpenAPI通常和用户的Kubernetes集群处于不同的VPC网络环境中。这也就是说,资源管理系统OpenAPI和Kubernetes集群是运行在相互隔离、独立的两个网络环境中。
另外,由于云计算服务提供商为了保护和控制资源,在每个用户VPC网络环境内的容器引擎向资源管理系统OpenAPI发送访问请求时,资源管理系统OpenAPI需要验证该用户的每个访问请求的权限。因为不同的用户都需要被资源管理系统OpenAPI验证身份,因此,有些不法用户如果在此环节设置非法流程将有可能盗取其他用户的密钥。
基于上述内容,本发明提供了一种容器集群访问权限的控制方法,以实现处于用户VPC网络环境中的Kubernetes集群能够与处于不同VPC的资源管理系统OpenAPI交互的同时,实现防止非法用户获取到用户的访问权限。
<硬件配置>
图2是可用于实现本发明任一实施例的容器集群访问权限的控制方法的电子设备的硬件配置的框图。
该电子设备1000为密钥管理模块或Kubernetes集群中的节点。该电子设备1000可以是物理机,也可以是虚拟机。
电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800,等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
尽管在图2中对电子设备1000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及存储器1200和处理器1100。
应用于本发明的实施例中,所述存储器1200用于存储指令,所述指令用于控制所述处理器1100执行本发明实施例提供的容器集群访问权限的控制方法。
在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例>
本实施例提供了一种容器集群访问权限的控制方法,图3所示,该方法包括如下S3100-S3500:
S3100、密钥管理模块获取用户的用户信息和用户可访问服务接口的列表。
在本实施例中,用户的用户信息通常为用户登录自己的Kubernetes集群时所需的账号和密码。列表为用户的Kubernetes集群可以访问资源管理系统上的服务接口的列表。其中,资源管理系统用于向Kubernetes集群提供资源。
在一个实施例中,上述的列表中包括的可访问服务接口为:主机服务接口、网络服务接口、存储服务接口。其中,主机服务接口通常称之为主机OpenAPI,网络服务接口通常称之为网络OpenAPI,存储服务接口通常称之为OpenAPI。在此基础上,资源管理系统向Kubernetes集群提供的资源包括:计算资源、网络资源、存储资源中。
在本实施例中,密钥管理模块提供有人机交互界面,其中,该人机交互界面被承载在用户的客户端,基于此,该客户端通常被称之为容器引擎控制台。在此基础上,用户可通过容器引擎控制台上输入用户信息。基于此,在用户通过容器引擎控制台输入用户信息后,密钥管理模块便可获取到用户信息。
在本实施例中,密钥管理模块通过下述两种方式获取上述的列表:
第一种方式:密钥管理模块在获取到用户信息后,根据用户信息查找到与该用户信息对应的可访问服务接口;将查找到的可访问服务接口组成的列表,直接作为获取到的列表。
第二种方式:获取列表的方式如下S3110和S3120:
S3110、密钥管理模块获取用户的用户信息,并向容器引擎控制模块输出与用户信息匹配的可访问服务接口的列表;其中,容器引擎控制模块中提供有用于输入确认指令的输入接口,确认指令表征用户授权用户的Kubernetes集群访问列表中的服务接口。
S3120、在检测到容器引擎控制模块接收到输入接口输入确认指令的情况下,获取用户可访问服务接口的列表。
在本实施例中,容器引擎控制模块即为上述的容器引擎控制台。密钥管理模块在获取到用户信息后,根据用户信息查找到与该用户信息对应的可访问服务接口;将查找到的可访问服务接口输出给容器引擎控制模块,以由容器引擎控制模块将该可访问服务接口展示给用户;容器引擎控制模块中提供有一个输入接口,该接口供用户输入确指令,在输入确认指令的情况下,说明用户授权自己的Kubernetes集群访问可访问服务接口列表中的服务接口,基于此,在密钥管理模块检测到容器引擎控制模块接收到用户在输入接口输入的确认指令的情况下,再获取列表。
其中,上述输入接口可以为一个表示“确定”的选择项,在用户选中该选择项时,表示用户输入一个确定指令。另外,容器引擎控制模块在接收到用户在输入接口输入的确认指令的情况下,容器引擎控制模块可告知密钥管理模块用户在输入接口输入确认指令,以实现密钥管理模块的检测。
在本实施例中,只有用户指示密钥管理模块获取列表,密钥管理模块才可成功获取到列表,进而密钥管理模块才可继续执行下述的S3200-S3500的步骤。这也就是说,只要用户在用户的指示下,Kubernetes集群才可访问资源管理系统。这提高了资源管理系统中用户资源的安全性。
S3200、密钥管理模块每隔预定时间将用户信息和列表发送至认证模块。
在本实施例中,预定时间对应的时间长度可根据经验来确定。在一个例子中,预定时间对应的时间长度可以为5min。
以及,认证模块可以为一个认证服务器,例如IAM(Identity andAccessManagement)认证服务器。
S3300、密钥管理模块获取认证模块基于用户信息和类别生成的临时访问密钥。
在本实施例中,认证模块在每一次接收到用户信息和列表时,基于接收到的用户信息和列表生成对应的密钥。由于密钥管理模块是每隔预定时间将用户信息和列表发送至认证模块的,这样,认证模块定周期接收到认证模块发送的用户信息和列表。因此,认证模块基于定周期接收到的用户信息和列表生成不同的访问密钥。这也就是说,认证模块生成的是具有有效期的临时访问密钥,该有效期为生成密钥的时刻到认证模块下一次接收用户信息和列表的时刻之间的时间段。
在一个例子中,临时访问密钥可以为一个临时AK/SK。
在一个实施例中,认证模块在生成最新的临时访问密钥后,可主动向密钥管理模块发送该最新生成的临时访问密钥。
在另一个实施例中,密钥管理模块可定期通过向认证模块发送获取请求,以获取认证模块最新生成的临时访问密钥。
需要说明的是,认证模块对资源管理系统的服务接口进行鉴权认证的服务,因此,认证模块可以获知服务接口所需的密钥。基于此,认证模块向Kubernetes集群发送的密钥即为服务接口所需的密钥。这样,当Kubernetes集群利用包含密钥的资源操作请求时,可成功访问资源管理系统。
在本实施例中,由于临时访问密钥的有效期,即临时访问定期作废并更新,因此,即使有恶意的非法用户获取到用户的临时访问密钥,也只可短期操作用户在资源管理系统中的资源。这也就是说,密钥管理模块通过获取临时访问密钥的方式,可提高用户在资源管理系统中的资源的安全性。
S3400、密钥管理模块将临时访问密钥保存至用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于用户的虚拟私有云VPC网络环境中。
在本实施例中,密钥管理模块每次获取到临时访问密钥后,将该临时访问密钥保存在Kubernetes集群中。其中保存的方式为,密钥管理模块向Kubernetes集群发送保存指令,以指示Kubernetes集群将最新的临时访问密钥保存起来。其中,该保存指令中包括密钥管理模块获取到的最新的临时访问密钥;
在一个实施例中,密钥管理模块可将最新的临时访问密钥保存在Kubernetes集群的指定的存储空间中。在另一个实施例中,密钥管理模块可将最新的临时访问密钥保存在Kubernetes集群的资源对象中。在一个是实施例中,资源对象可以为configmap或secrets。
S3500、在用户的Kubernetes集群接收到资源操作请求时,将临时访问密钥添加至资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统。
其中,资源管理系统与用户的Kubernetes集群处于不同的私有云VPC网络环境内。资源管理系统中包含有用户的资源,并包括主机服务接口、网络服务接口、存储服务接口。
在本实施例中,资源操作请求可以为删除、创建以及迁移容器或计算节点等请求。对应的,资源操作请求所请求的资源可以为计算资源、网络资源以及存储资源。
在本实施例中,在用户的Kubernetes集群接收到资源操作请求的情况下,从其中(例如,从指定的存储空间,或configmap或secrets)读取临时访问密钥,并将读取出的临时访问密钥添加在资源操作请求中,以发送至资源管理系统。
在本实施例中,用户的Kubernetes集群可在如下两种情况下接收到资源操作请求。其中:
第一种情况:在用户的Kubernetes集群满足扩缩容条件的情况下,用户的Kubernetes集群根据扩缩容策略生成资源操作请求。
在本实施例中,用户的Kubernetes集群中保存有扩缩容条件,以及对应的扩缩容策略。其中,扩缩容策略可反映出需要资源类型。
在一个例子中,扩缩容条件为:在计算节点的CPU利用率超过预设百分比(例如百分八十),对应的扩缩容策略可以为生成均衡该计算节点的负载的资源操作请求。可以理解的是,该资源操作请求需要的资源类型为计算资源。
第二种情况:用户的Kubernetes集群接收用户输入的资源操作密令,并根据接收到的资源操作命令,生成资源操作请求。
在本实施例中,用户在密钥管理模块提供的人机交互界面中输入资源操作命令,比如说指示用户的Kubernetes集群创建一新计算节点,人机交互界面在取到资源操作命令的情况下,告知密钥管理模块,以由密钥管理模块将资源操作命令转发用户的Kubernetes集群。用户的Kubernetes集群基于接收到的资源操作命令生成对应的资源操作请求。可以理解的是,该资源操作请求需要的资源类型为计算、网络以及存储资源。
在上述任一实施例的基础上,用户的Kubernetes集群将包含有临时访问密钥的资源操作请求发送至资源管理系统,可包括如下S3510和S3520:
S3510、用户的Kubernetes集群识别资源操作请求的所请求的资源类型;资源类型包括计算资源类、网络资源类、存储资源类。
在本实施例中,用户的Kubernetes集群解析资源操作类型,以确定该资源操作请求的所请求的资源类型。在一个实施例中,资源操作请求中包括由所请求的资源类型。在另一个实施例中,可根据语义分析的方式,确定资源操作请求所请求的资源类型。
需要说明的是,一个资源操作请求可请求一种资源类型,也可请求多种资源类型。
S3520、将包含有临时访问密钥的资源操作请求发送至资源管理系统的与所述资源类型对应的服务接口。
在本实施例中,资源管理系统中包括多个服务接口,通过每个服务接口可访问资源管理系统中对应类型的资源。例如,通过主机服务接口可访问资源管理系统中的计算资源。基于此,用户的Kubernetes集群将资源操作请求发送至与资源管理系统的与基于上述S3520确定出的资源类型对应的服务接口,可提高发送资源操作请求的靶向性,进而准确的向资源管理系统发送资源操作请求。
在本实施例中,密钥管理模块每隔预定时间将获取到的用户信息和列表发送至认证模块,以由认证模块基于用户信息和列表生成对应的临时访问密钥。密钥管理模块获取认证模块生成的临时访问密钥,并将临时访问密钥保存至用户的Kubernetes集群中。在用户的Kubernetes集群接收到资源操作请求时,Kubernetes集群将临时访问密钥添加至资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统。这样,由于Kubernetes向资源管理系统发送的资源操作请求中包含有资源管理系统认可的临时访问密钥,因此,处于用户VPC网络环境中的Kubernetes集群拥有访问权限,可根据该访问权限与处于不同VPC的资源管理系统交互。同时,由于临时访问密钥具有有效期,即临时访问密钥定期作废并更新,因此,即使不法用户获取了用户的临时访问密钥,获取到的临时访问密钥也会作废,这使得不法用户丧失访问权限,而无法对资源管理系统中属于用户的资源进行访问,这避免了不法用户获取到用户的有效的访问权限,提高了资源管理系统中用户资源的安全性。另外,由于临时访问密钥是基于用户的用户信息生成的,因此,用户只可访问资源管理系统中属于自己的资源,而无法访问资源管理系统中其他租户的资源,这保证了资源管理系统中其他用户的资源的安全性。
<例子>
基于上述方法实施例,本实施例提供一种容器集群访问权限的控制方法,包括如下S4100-S4700:
S4100、容器引擎控制模块接收用户输入的用户信息,并发送至密钥管理模块。
S4200、密钥管理模块在获取到用户信息后,根据用户信息查找到与该用户信息对应的可访问服务接口;将查找到的可访问服务接口组成的列表,直接作为获取到的列表。
S4300、密钥管理模块每隔预定时间将用户信息和列表发送至认证模块。
S4400、认证模块基于用户信息和列表生成的临时访问密钥,并发送至密钥管理模块。
S4500、密钥管理模块获取认证模块基于用户信息和列表生成的临时访问密钥。
S4600、密钥管理模块将临时访问密钥保存至用户的Kubernetes集群中。
S4700、用户的Kubernetes集群在接收到资源操作请求时,将临时访问密钥添加至资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统。资源管理系包括主机服务接口、网络服务接口、存储服务接口。
基于上述S4100-S4700,本实施提供的一种容器集群访问权限的系统还可如图4所示。其中,图4以容器引擎控制模块为容器引擎控制台、认证模块以IAM认证服务器、临时访问密钥为临时AK/SK进行示出的。
<系统实施例>
如图5所示,本实施例提供了一种容器集群访问权限的控制系统50,该容器集群访问权限的控制系统50中包括密钥管理模块51和用户的Kubernetes集群52。其中:
密钥管理模块51,用于获取用户的用户信息和所述用户可访问服务接口的列表;每隔预定时间将所述用户信息和列表发送至认证模块;获取所述认证模块基于所述用户信息和列表生成的临时访问密钥;将所述临时访问密钥保存至所述用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于所述用户的虚拟私有云VPC网络环境中;
用户的Kubernetes集群52,用于在接收到资源操作请求时,将所述临时访问密钥添加至所述资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;其中,所述资源管理系统与所述用户的Kubernetes集群处于不同的虚拟私有云VPC网络环境。
在一个实施例中,所述密钥管理模块51,具体用于:
提供用于输入确认指令的指令输入接口,其中,所述确认指令表征所述用户授权所述用户的Kubernetes集群访问所述列表中的服务接口;
所述密钥管理模块51在接收到通过所述指令输入接口输入的所述确认指令的情况下,获取用户的用户信息和所述用户可访问服务接口的列表。
在一个实施例中,所述列表中包括的可访问服务接口为:主机服务接口、网络服务接口、存储服务接口中的任意一个。
在一个实施例中,所述密钥管理模块51,具体用于:
将所述临时访问密钥保存至所述用户的Kubernetes集群的资源对象中。
在一个实施例中,所述资源对象为configmap或secrets。
在一个实施例中,用户的Kubernetes集群52,还用于接收所述用户输入的资源操作命令,并根据接收到的所述资源操作命令,生成所述资源操作请求。
在一个实施例中,用户的Kubernetes集群52,还用于在所述用户的Kubernetes集群满足扩缩容条件的情况下,所述用户的Kubernetes集群根据所述扩缩容条件对应的扩缩容策略生成所述资源操作请求。
需要说明的是,容器集群访问权限的控制系统50中的密钥管理模块51和用户的Kubernetes集群52的具有实现可参照上述方法实施例,这里不再赘述。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种容器集群访问权限的控制方法,其特征在于,包括:
密钥管理模块获取用户的用户信息和所述用户可访问服务接口的列表;
所述密钥管理模块每隔预定时间将所述用户信息和所述列表发送至认证模块;
所述密钥管理模块获取所述认证模块基于所述用户信息和列表生成的临时访问密钥;
所述密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于所述用户的虚拟私有云VPC网络环境中;
在所述用户的Kubernetes集群接收到资源操作请求时,将所述临时访问密钥添加至所述资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;其中,所述资源管理系统与所述用户的Kubernetes集群处于不同的虚拟私有云VPC网络环境。
2.根据权利要求1所述的方法,其特征在于,所述密钥管理模块获取所述用户可访问服务接口的列表的步骤,包括:
所述密钥管理模块获取用户的用户信息,并向容器引擎控制模块输出与所述用户信息匹配的可访问服务接口的列表;其中,所述容器引擎控制模块中提供有用于输入确认指令的输入接口,所述确认指令表征所述用户授权所述用户的Kubernetes集群访问所述列表中的服务接口;以及,
在检测到所述容器引擎控制模块接收到所述输入接口输入所述确认指令的情况下,获取所述用户可访问服务接口的列表。
3.根据权利要求1所述的方法,其特征在于,所述列表中包括的可访问服务接口为:主机服务接口、网络服务接口、存储服务接口中的任意一个。
4.根据权利要求1所述的方法,其特征在于,所述密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群中,包括:
密钥管理模块将所述临时访问密钥保存至所述用户的Kubernetes集群的资源对象中。
5.根据权利要求4所述的方法,其特征在于,所述资源对象为configmap或secrets。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
Kubernetes集群接收所述用户输入的资源操作命令,并根据接收到的所述资源操作命令,生成所述资源操作请求。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述用户的Kubernetes集群满足扩缩容条件的情况下,所述用户的Kubernetes集群根据所述扩缩容条件对应的扩缩容策略生成所述资源操作请求。
8.根据权利要求1所述的方法,其特征在于,所述将包含有临时访问密钥的资源操作请求发送至资源管理系统,包括:
所述用户的Kubernetes集群识别所述资源操作请求的所请求的资源类型;所述资源类型包括计算资源类、网络资源类、存储资源类;
将包含有临时访问密钥的资源操作请求发送至资源管理系统的与所述资源类型对应的服务接口。
9.一种容器集群访问权限的控制系统,其特征在于,包括:
密钥管理模块,用于获取用户的用户信息和所述用户可访问服务接口的列表;每隔预定时间将所述用户信息和列表发送至认证模块;获取所述认证模块基于所述用户信息和列表生成的临时访问密钥;将所述临时访问密钥保存至所述用户的Kubernetes集群中,其中,所述用户的Kubernetes集群处于所述用户的虚拟私有云VPC网络环境中;
所述用户的Kubernetes集群,用于在接收到资源操作请求时,将所述临时访问密钥添加至所述资源操作请求中,并将包含有临时访问密钥的资源操作请求发送至资源管理系统;其中,所述资源管理系统与所述用户的Kubernetes集群处于不同的虚拟私有云VPC网络环境。
10.根据权利要求9所述的系统,其特征在于,所述密钥管理模块,具体用于:
提供用于输入确认指令的指令输入接口,其中,所述确认指令表征所述用户授权所述用户的Kubernetes集群访问所述列表中的服务接口;
所述密钥管理模块在接收到通过所述指令输入接口输入的所述确认指令的情况下,获取用户的用户信息和所述用户可访问服务接口的列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010171726.7A CN111404923B (zh) | 2020-03-12 | 2020-03-12 | 容器集群访问权限的控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010171726.7A CN111404923B (zh) | 2020-03-12 | 2020-03-12 | 容器集群访问权限的控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404923A true CN111404923A (zh) | 2020-07-10 |
CN111404923B CN111404923B (zh) | 2022-07-19 |
Family
ID=71430703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010171726.7A Active CN111404923B (zh) | 2020-03-12 | 2020-03-12 | 容器集群访问权限的控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404923B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112165381A (zh) * | 2020-08-18 | 2021-01-01 | 远景智能国际私人投资有限公司 | 密钥管理系统和方法 |
CN112187725A (zh) * | 2020-09-03 | 2021-01-05 | 北京金山云网络技术有限公司 | 云计算资源的访问方法、装置、业务线服务和网关 |
CN112187671A (zh) * | 2020-11-05 | 2021-01-05 | 北京金山云网络技术有限公司 | 一种网络接入方法及其相关设备 |
CN112783654A (zh) * | 2021-01-28 | 2021-05-11 | 上海浪潮云计算服务有限公司 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
CN113312429A (zh) * | 2021-06-22 | 2021-08-27 | 工银科技有限公司 | 区块链中的智能合约管理系统、方法、介质和产品 |
CN113434257A (zh) * | 2021-07-07 | 2021-09-24 | 曙光信息产业(北京)有限公司 | 一种Docker的操作方法、装置、服务器和存储介质 |
CN113852596A (zh) * | 2021-07-29 | 2021-12-28 | 浪潮软件科技有限公司 | 基于Kubernetes的应用认证代理方法及系统 |
CN114564466A (zh) * | 2022-03-15 | 2022-05-31 | 上海维特曼信息科技有限责任公司 | 一种管理数据库的数据库管理系统、方法 |
CN114666108A (zh) * | 2022-03-10 | 2022-06-24 | 明阳产业技术研究院(沈阳)有限公司 | 基于自定义资源的身份认证方法、装置、设备及介质 |
CN114826964A (zh) * | 2022-04-11 | 2022-07-29 | 京东科技信息技术有限公司 | 一种资源监控方法、装置和系统 |
CN115834705A (zh) * | 2022-11-09 | 2023-03-21 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
JP2023094177A (ja) * | 2021-12-23 | 2023-07-05 | 株式会社日立製作所 | 情報処理システム、情報処理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325221A1 (en) * | 2013-03-15 | 2014-10-30 | Cox Communications, Inc. | Network token authentication scheme |
CN105554004A (zh) * | 2015-12-24 | 2016-05-04 | 北京轻元科技有限公司 | 一种混合云计算环境中容器服务的认证系统和方法 |
US20170063393A1 (en) * | 2015-08-28 | 2017-03-02 | UniVaultage LLC | Apparatus and method for cryptographic operations using enhanced knowledge factor credentials |
CN107634951A (zh) * | 2017-09-22 | 2018-01-26 | 携程旅游网络技术(上海)有限公司 | Docker容器安全管理方法、系统、设备及存储介质 |
US20180227297A1 (en) * | 2017-02-08 | 2018-08-09 | Mucteba Celik | Enterprise key and password management system |
CN109587101A (zh) * | 2017-09-29 | 2019-04-05 | 腾讯科技(深圳)有限公司 | 一种数字证书管理方法、装置及存储介质 |
-
2020
- 2020-03-12 CN CN202010171726.7A patent/CN111404923B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325221A1 (en) * | 2013-03-15 | 2014-10-30 | Cox Communications, Inc. | Network token authentication scheme |
US20170063393A1 (en) * | 2015-08-28 | 2017-03-02 | UniVaultage LLC | Apparatus and method for cryptographic operations using enhanced knowledge factor credentials |
CN105554004A (zh) * | 2015-12-24 | 2016-05-04 | 北京轻元科技有限公司 | 一种混合云计算环境中容器服务的认证系统和方法 |
US20180227297A1 (en) * | 2017-02-08 | 2018-08-09 | Mucteba Celik | Enterprise key and password management system |
CN107634951A (zh) * | 2017-09-22 | 2018-01-26 | 携程旅游网络技术(上海)有限公司 | Docker容器安全管理方法、系统、设备及存储介质 |
CN109587101A (zh) * | 2017-09-29 | 2019-04-05 | 腾讯科技(深圳)有限公司 | 一种数字证书管理方法、装置及存储介质 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112165381A (zh) * | 2020-08-18 | 2021-01-01 | 远景智能国际私人投资有限公司 | 密钥管理系统和方法 |
CN112165381B (zh) * | 2020-08-18 | 2023-12-05 | 远景智能国际私人投资有限公司 | 密钥管理系统和方法 |
CN112187725A (zh) * | 2020-09-03 | 2021-01-05 | 北京金山云网络技术有限公司 | 云计算资源的访问方法、装置、业务线服务和网关 |
CN112187671A (zh) * | 2020-11-05 | 2021-01-05 | 北京金山云网络技术有限公司 | 一种网络接入方法及其相关设备 |
CN112187671B (zh) * | 2020-11-05 | 2024-03-12 | 北京金山云网络技术有限公司 | 一种网络接入方法及其相关设备 |
CN112783654A (zh) * | 2021-01-28 | 2021-05-11 | 上海浪潮云计算服务有限公司 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
CN112783654B (zh) * | 2021-01-28 | 2024-04-19 | 上海浪潮云计算服务有限公司 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
CN113312429B (zh) * | 2021-06-22 | 2023-01-17 | 工银科技有限公司 | 区块链中的智能合约管理系统、方法、介质和产品 |
CN113312429A (zh) * | 2021-06-22 | 2021-08-27 | 工银科技有限公司 | 区块链中的智能合约管理系统、方法、介质和产品 |
CN113434257A (zh) * | 2021-07-07 | 2021-09-24 | 曙光信息产业(北京)有限公司 | 一种Docker的操作方法、装置、服务器和存储介质 |
CN113852596B (zh) * | 2021-07-29 | 2023-07-11 | 浪潮软件科技有限公司 | 基于Kubernetes的应用认证代理方法及系统 |
CN113852596A (zh) * | 2021-07-29 | 2021-12-28 | 浪潮软件科技有限公司 | 基于Kubernetes的应用认证代理方法及系统 |
JP2023094177A (ja) * | 2021-12-23 | 2023-07-05 | 株式会社日立製作所 | 情報処理システム、情報処理方法 |
JP7412405B2 (ja) | 2021-12-23 | 2024-01-12 | 株式会社日立製作所 | 情報処理システム、情報処理方法 |
CN114666108A (zh) * | 2022-03-10 | 2022-06-24 | 明阳产业技术研究院(沈阳)有限公司 | 基于自定义资源的身份认证方法、装置、设备及介质 |
CN114564466A (zh) * | 2022-03-15 | 2022-05-31 | 上海维特曼信息科技有限责任公司 | 一种管理数据库的数据库管理系统、方法 |
CN114826964A (zh) * | 2022-04-11 | 2022-07-29 | 京东科技信息技术有限公司 | 一种资源监控方法、装置和系统 |
CN114826964B (zh) * | 2022-04-11 | 2024-04-05 | 京东科技信息技术有限公司 | 一种资源监控方法、装置和系统 |
CN115834705A (zh) * | 2022-11-09 | 2023-03-21 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
CN115834705B (zh) * | 2022-11-09 | 2024-05-24 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111404923B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111404923B (zh) | 容器集群访问权限的控制方法及系统 | |
CN108632284B (zh) | 基于区块链的用户数据授权方法、介质、装置和计算设备 | |
CN109074274B (zh) | 用于虚拟浏览器集成的计算装置、方法和计算机可读媒体 | |
US10360402B2 (en) | Intercepting sensitive data using hashed candidates | |
CN107222485B (zh) | 一种授权方法以及相关设备 | |
JP6204986B2 (ja) | 同期通信におけるサーバー証明書エラーへの安全な対処 | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
CN110445769B (zh) | 业务系统的访问方法及装置 | |
CN113347206A (zh) | 一种网络访问方法和装置 | |
CN110197075B (zh) | 资源访问方法、装置、计算设备以及存储介质 | |
CN113239377B (zh) | 权限控制方法、装置、设备以及存储介质 | |
US11005847B2 (en) | Method, apparatus and computer program product for executing an application in clouds | |
US9659189B2 (en) | Systems and methods of safeguarding user information while interacting with online service providers | |
CN113557509A (zh) | 将安全客户机的安全密钥绑定到硬件安全模块 | |
US11063922B2 (en) | Virtual content repository | |
CN111031037A (zh) | 用于对象存储服务的鉴权方法、装置及电子设备 | |
CN114500054A (zh) | 服务访问方法、服务访问装置、电子设备以及存储介质 | |
CN111400743B (zh) | 基于区块链网络的事务处理方法、装置、电子设备和介质 | |
CN109635558B (zh) | 访问控制方法、装置和系统 | |
WO2023174127A1 (zh) | 基于云的fpga管理控制系统、方法及电子设备 | |
US11620147B2 (en) | Metadata service provisioning in a cloud environment | |
KR102368208B1 (ko) | 보안 기능을 지원하는 파일 시스템 및 공통적 파일 액세스 인터페이스에 기초한 파일 유출 방지 | |
CN112966286B (zh) | 用户登录的方法、系统、设备和计算机可读介质 | |
US11580210B2 (en) | Password authentication | |
KR20130124885A (ko) | 인증되지 않는 액세스를 방지하기 위해 클라우드 데이터에 보안을 제공하는 전자 장치 및 이의 보안 제공 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |