一种数据访问控制方法及相关系统
文献发布时间:2023-07-05 06:30:04
技术领域
本申请涉及数据安全技术领域,尤其涉及一种数据访问方法、系统以及计算机集群、计算机可读存储介质、计算机程序产品。
背景技术
随着计算机技术的不断发展,许多业务逐渐由线下模式迁移到线上模式。其中,将业务由线下模式迁移到线上模式,需要耗费计算资源、存储资源。如果自行构建计算中心,不仅需要花费大量的硬件成本以及运维成本,而且计算中心的资源不是时刻运行并且不能被共享,导致了巨大浪费。基于此,一种主流的方式是按需租用资源。个人、企业或机构等用户可以根据业务需求,向服务提供商(例如是云服务提供商、智能计算服务提供商)请求租用计算资源、存储资源。
服务提供商所提供的计算资源、存储资源通常是由中心化部署的算力中心(也称作计算中心、数据中心)提供。用户通常需要将数据上传至中心化的算力中心进行计算或存储,然而,算力中心通常为多个用户提供服务,如此增加了数据被窃取的风险。
如何提供一种数据访问控制方法,以保护数据安全成为业界重点关注的问题。
发明内容
本申请提供了一种数据访问控制方法,该方法将进行访问控制的数据存储在数据保护单元,数据访问控制系统通过对应用请求的目标数据进行动态实时授权,并将授权的权力赋予目标数据的所有者,使得目标数据的所有者对目标数据的访问进行控制,在不具备目标数据的所有者的授权时,即使是管理员也无法访问目标数据,保障了数据安全。本申请还提供了上述方法对应的系统、计算设备集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种数据访问控制方法。该方法可以由数据访问控制系统执行。所述数据访问控制系统包括数据保护单元。所述数据保护单元对数据的所有者和/或所述数据的授权实体提供访问权限。
具体地,数据访问控制系统接收应用的数据访问请求,该数据访问请求用于请求访问所述数据保护单元中存储的目标数据,然后数据访问控制系统根据数据访问请求,向目标数据的所有者发送授权请求,当接收到目标数据的所有者的授权响应时,向应用发送加密的目标数据。
其中,数据访问控制系统将进行访问控制的数据存储在数据保护单元,数据保护单元具备防御操作系统级攻击的能力,并且支持授权校验,可以防止任何租户未经授权即从数据保护单元读取数据或写入数据。在该方案中,数据访问控制系统通过对应用请求的目标数据进行动态实时授权,并将授权的权力赋予目标数据的所有者,使得目标数据的所有者对目标数据的访问进行控制,在不具备目标数据的所有者的授权时,即使是管理员(例如是服务提供商)也无法访问目标数据,保障了数据安全。
在一些可能的实现方式中,在接收到所述目标数据的所有者的授权响应后,数据访问控制系统还可以对所述目标数据的所有者进行身份校验,以确定发送该授权响应的租户是否具备对应权限,例如是否为真实的目标数据所有者。当身份校验通过时,则数据访问控制系统可以向所述应用发送加密的所述目标数据。
该方法中,数据访问控制系统通过在返回加密的目标数据之前,对目标数据的所有者进行身份校验,防止其他用户冒充该目标数据的所有者进行授权,如此保障了目标数据的安全性。
在一些可能的实现方式中,数据访问控制系统可以根据所述授权请求,向所述目标数据的所有者呈现授权界面。所述授权界面包括所述应用的标识和所述目标数据的标识。如此,目标数据的所有者的可以根据应用的标识和目标数据的标识,确定哪一或哪些应用在请求目标数据,并为此确定是否进行授权。当目标数据的所有者确定授权时,目标数据的所有者(如租户)的客户端可以根据所述目标数据的所有者对所述目标数据的授权操作生成授权响应。
该方法中,授权的权力被赋予给目标数据的所有者,使得目标数据的所有者对目标数据的访问进行控制,在不具备目标数据的所有者的授权时,即使是管理员(例如是服务提供商)也无法访问目标数据,保障了数据安全。
在一些可能的实现方式中,数据访问控制系统还可以接收所述目标数据的所有者通过安全通道传输的认证凭据,根据所述认证凭据对所述目标数据的所有者进行身份认证。当身份认证通过时,数据访问控制系统根据所述授权请求,向所述目标数据的所有者呈现授权界面。
其中,数据访问控制系统可以向目标数据的所有者发送授权界面对应的代码,目标数据的所有者的客户端可以加载上述授权界面对应的代码,以向目标数据的所有者呈现授权界面。
该方法中,数据访问控制系统在呈现授权界面之前,基于目标数据的所有者的认证凭据进行身份认证,避免了一些非法分子通过冒充目标数据的所有者,导致目标数据泄露或被篡改的风险。而且,身份凭证无需与应用绑定,进一步保障了安全性,缩小了攻击范围。
在一些可能的实现方式中,在向所述目标数据的所有者发送授权请求之前,数据访问控制系统还可以对所述应用进行合法性校验。例如数据访问控制系统可以基于应用的证书等信息对应用进行合法性校验,避免非法应用请求目标数据。
在一些可能的实现方式中,所述数据保护单元为加密机或可信执行环境。无论是加密机还是可执行环境,均具备防御操作系统级攻击的能力,并且支持授权校验,可以防止任何租户未经授权即读取数据或写入数据。如此可以提供数据访问控制,保障了目标数据的安全性。
在一些可能的实现方式中,所述目标数据包括机密数据或者用于加密所述机密数据的加密密钥。也即该方法不仅可以用于对机密数据本身,例如神经网络模型的结构、权重等进行访问控制,还可以对用于加密所述机密数据的加密密钥进行控制,如此保障了机密数据的安全性。
第二方面,本申请提供了一种数据访问控制系统。所述数据访问控制系统包括数据保护单元,所述数据保护单元对数据的所有者和/或所述数据的授权实体提供访问权限;
所述数据保护单元,用于接收应用的数据访问请求,所述数据访问请求用于请求访问所述数据保护单元中存储的目标数据,根据所述数据访问请求,向所述目标数据的所有者发送授权请求,当接收到所述目标数据的所有者的授权响应时,向所述应用发送加密的所述目标数据。
在一些可能的实现方式中,所述数据保护单元还用于:
对所述目标数据的所有者进行身份校验;
所述数据保护单元具体用于:
当身份校验通过时,向所述应用发送加密的所述目标数据。
在一些可能的实现方式中,所述数据保护单元还用于:
根据所述授权请求,向所述目标数据的所有者呈现授权界面,所述授权界面包括所述应用的标识和所述目标数据的标识;
所述目标数据的所有者的授权响应根据所述目标数据的所有者对所述目标数据的授权操作生成。
在一些可能的实现方式中,所述系统还包括:
身份认证单元,用于接收所述目标数据的所有者通过安全通道传输的认证凭据,根据所述认证凭据对所述目标数据的所有者进行身份认证;
所述数据保护单元具体用于:
当身份认证通过时,根据所述授权请求,向所述目标数据的所有者呈现授权界面。
在一些可能的实现方式中,所述系统还包括:
管理平台,用于在向所述目标数据的所有者发送授权请求之前,对所述应用进行合法性校验。
在一些可能的实现方式中,所述数据保护单元为加密机或可信执行环境。
在一些可能的实现方式中,所述目标数据包括机密数据或者用于加密所述机密数据的加密密钥。
第三方面,本申请提供一种计算设备集群,所述计算设备集群包括至少一台计算设备。至少一台计算设备包括至少一个处理器和至少一个存储器。所述处理器、所述存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算设备或计算设备集群执行如第一方面或者第一方面的任一种实现方式所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算设备或计算设备集群执行上述第一方面或者第一方面的任一种实现方式所述的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算设备或计算设备集群执行上述第一方面或者第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种数据访问控制系统的架构示意图;
图2为本申请实施例提供的一种目标数据的注册方法的流程图;
图3为本申请实施例提供的一种数据访问控制方法的交互流程图;
图4为本申请实施例提供的一种授权界面的界面示意图;
图5为本申请实施例提供的一种计算设备集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
算力中心,也称作计算中心,是指多台计算机形成的、用于提供计算或存储资源的计算机集群。算力中心可以包括云计算中心、智能算力中心等不同类型。云计算中心是将分散的计算机进行虚拟化,从而实现按需调度资源的计算机集群。智能算力中心是以人工智能(artificial intelligence,AI)芯片为基础构建的、用于实现模型训练和/或模型推理等AI能力的计算机集群。
算力中心通常可以将资源以出租的方式提供给用户使用。租用资源的用户(例如个人用户、企业用户等)也可以称为租户。为了实现业务的运行,租户通常需要将数据上传至算力中心进行计算。例如,在进行模型训练时,租户可以将训练数据和AI模型上传至算力中心,以便于在算力中心通过上述训练数据对AI模型进行训练。
为了保障算力中心的数据安全,采用数据加密对数据进行保护是一种较为常见的方式。数据加密具体是指利用加密密钥对数据进行加密保护。然而,数据加密实质上是一种转移风险的措施,具体是将对数据进行保护的风险转移到对加密密钥的保护。算力中心可以通过密钥管理系统(key management system,KMS)对加密密钥进行保护。
用户的应用(application,APP)可以绑定访问密钥。该访问密钥包括访问密钥标识(access key ID,AK)和密码访问密钥(secret access key,SK)两部分,因此也可以表示为AK/SK。APP在执行运算时可以根据用户的认证凭据如AK/SK,向KMS申请获取加密密钥。假冒的APP因不具备用户的AK/SK,KMS可以拒绝假冒的APP的申请,由此保障认证凭据的安全性。
然而,上述方法进一步将保护加密密钥的风险转移到保护用户的认证凭据。由于未提供对认证凭据进行保护的方案,一旦认证凭据被窃取,数据也有较高的概率被窃取。而且,上述方案将用户的认证凭据暴露给APP,增加了认证凭据被窃取的风险。用户的认证凭据被窃取后,除了可以窃取到加密密钥,还可能具备其他权限,从而导致攻击范围进一步增大。
有鉴于此,本申请实施例提供了一种数据访问控制方法。该方法可以由数据访问控制系统执行。所述数据访问控制系统包括数据保护单元。所述数据保护单元对数据的所有者和/或所述数据的授权实体提供访问权限。
具体地,数据访问控制系统接收应用的数据访问请求,该数据访问请求用于请求访问所述数据保护单元中存储的目标数据,然后数据访问控制系统根据数据访问请求,向目标数据的所有者发送授权请求,当接收到目标数据的所有者的授权响应时,向应用发送加密的目标数据。
其中,数据访问控制系统将进行访问控制的数据存储在数据保护单元,数据保护单元具备防御操作系统级攻击的能力,并且支持授权校验,可以防止任何租户未经授权即从数据保护单元读取数据或写入数据。在该方案中,数据访问控制系统通过对应用请求的目标数据进行动态实时授权,并将授权的权力赋予目标数据的所有者,使得目标数据的所有者对目标数据的访问进行控制,在不具备目标数据的所有者的授权时,即使是管理员(例如是服务提供商)也无法访问目标数据,保障了数据安全。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例的系统架构进行介绍。
参见图1所示的数据访问控制系统的架构图,图1以智能算力中心100中的数据访问控制进行示例说明。如图1所示,智能算力中心100包括数据访问控制系统10和工作节点20。其中,工作节点20采用AI芯片,以更好地支持模型训练或模型推理。数据访问控制系统10和工作节点20建立有通信连接。为了保障数据安全,数据访问控制系统10和工作节点20之间的通信连接可以是安全通道。
具体地,工作节点20中部署有训练/推理应用22(为了便于描述,本实施例中有些情况下也简称为应用22),应用22可以挂载训练数据集密文和预训练模型密文,并向数据访问控制系统10发送数据访问请求,以用于请求数据访问控制系统10的数据保护单元12中存储的目标数据。在本实施例中,目标数据可以是加密训练数据集和预训练模型所采用的加密密钥。
数据访问控制系统10根据该数据访问请求,向目标数据的所有者发送授权请求。当接收到目标数据的所有者的授权响应时,向应用22发送加密的目标数据。其中,加密的目标数据可以是采用信封加密方式对加密密钥进行加密后的数据。应用22可以从加密的目标数据中解密出目标数据,从而获得加密密钥,然后利用该加密密钥对训练数据集密文和预训练模型密文进行解密,获得训练数据明文和模型明文。应用22加载上述模型明文和训练数据明文,可以对预训练模型进行再训练。当训练完成时,应用22可以利用训练好的模型进行推理。
在图1的示例中,数据访问控制系统10还包括身份认证单元14和管理平台16。其中,管理平台16可以在接收到应用22发送的数据访问请求时,对应用22进行合法性验证。当验证通过时,管理平台16将应用22的数据访问请求转发给数据保护单元12。其中,数据保护单元12也可以称作AI-VAULT。数据保护单元12可以构造授权请求,并将授权请求发送至目标数据的所有者。该目标数据的所有者具体为智能算力中心100的租户。目标数据的所有者可以根据授权请求,向身份认证单元14发起身份认证。例如,目标数据的所有者可以将身份凭证发送至身份认证单元14,身份认证单元14通过身份凭证对目标数据的所有者进行身份认证,然后返回认证结果。当认证结果表征身份认证通过时,可以向目标数据的所有者呈现授权界面。当目标数据的所有者通过该授权界面触发授权操作时,目标数据的所有者对应的客户端可以通过该授权操作生成授权响应,并向数据保护单元12发送授权响应。数据保护单元12可以将目标数据加密后返回至管理平台16,管理平台16将加密的目标数据转发至应用22。
为了实现数据访问控制,目标数据的所有者可以先将目标数据注册到数据访问控制系统10的数据保护单元12。下面先结合附图,对数据注册过程进行介绍。
参见图2所述的目标数据的注册方法的流程图,该方法包括:
S202:数据访问控制系统10接收租户的数据注册请求。
数据注册请求中包括目标数据。该目标数据可以是机密数据或者用于加密机密数据的加密密钥。其中,机密数据可以是被标识为机密的、安全要求较高的数据。例如,针对AI业务,机密数据可以包括AI模型和训练数据中的一种或多种。又例如,针对非AI业务,机密数据可以包括业务逻辑、业绩数据等中的一种或多种。
为了确保数据安全,数据访问控制系统10可以通过安全通道接收租户的数据注册请求。具体地,租户的客户端(例如是浏览器等web客户端)与数据访问控制系统10的数据安全单元12之间可以建立基于安全套接层(secure socket layer,SSL)的安全通道,从而保障数据注册请求的安全性。租户的客户端与数据访问控制系统10的数据安全单元12之间也可以建立基于传输层安全性协定(Transport Layer Security,TLS)的安全通道。如此,数据访问控制系统10的数据安全单元12可以通过上述安全通道接收来自于租户的数据注册请求。
S204:数据访问控制系统10根据数据注册请求,对租户进行身份认证。当身份认证通过时,执行S206;否则,结束注册流程。
具体地,数据访问控制系统10中的数据保护单元12(也即AI-VAULT)可以在接收到数据注册请求时,联合身份认证单元14对租户进行身份认证。其中,身份认证单元14可以是可信身份和访问管理(Identity and Access Management,IAM)组件,可信IAM为算力中心的基础组件。
其中,可信IAM可以接收租户的认证凭据,该认证凭据例如可以是AK/SK,然后基于该认证凭据对租户进行身份认证,以确定租户身份真实性。具体地,可信IAM接收到租户的AK/SK,可以使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与数据注册请求中包括的认证字符串进行比对。如果认证字符串相同,则IAM确认当前租户为真实用户,并非假冒用户;如果认证字符串不同,则IAM可以返回错误码。
S206:数据访问控制系统10校验租户的注册权限。当校验通过时,执行S208;否则结束注册流程。
具体地,数据访问控制系统10的管理员可以设置允许注册到可信AI-VAULT的租户,以及删除被允许的用户。例如,租户购买相应的增值服务后,管理员可以将租户的标识添加至许可列表,租户购买的增值服务到期后,管理元可以将租户的标识移除许可列表。
基于此,数据访问控制系统10(例如是可信AI-VAULT)可以将当前租户的标识与许可列表中的标识进行匹配。若当前租户的标识在许可列表中命中,则表明当前租户具有注册权限,针对租户的注册权限校验通过。若当前租户的标识在许可列表中未命中,则表明当前租户不具有注册权限,针对租户的注册权限校验不通过。
需要说明的是,执行本申请实施例的目标数据的注册方法也可以不执行上述S204或S206。例如,该访问控制服务为非增值服务时,数据访问控制系统10可以为每个真实用户提供注册权限,因而无需执行对注册权限校验的步骤,也即数据访问控制系统10可以不执行上述S206。
S208:数据访问控制系统10注册目标数据。
数据访问控制系统10可以存储数据注册请求中的目标数据至可信AI-VAULT的数据库,从而实现目标数据的注册。进一步地,数据访问控制系统10还可以生成该目标数据的访问策略。例如,该访问策略可以是允许目标数据的所有者(例如为发送数据注册请求的组合)具有访问和授权的权限。
在一些可能的实现方式中,租户还可以在数据注册请求中携带授权用户的标识。相应地,访问策略还可以是允许目标数据的所有者以及授权用户具有访问和授权的权限。当然,访问策略也可以是允许目标数据的所有者以及授权用户具有访问权限,允许目标数据的所有者具有授权的权限。
在该实施例中,租户将目标数据注册到数据访问控制系统10的数据保护单元12,例如是可信AI-VAULT中,该可信AI-VAULT控制所有对目标数据的访问,仅有目标数据的所有者或者授权实体(例如是授权用户)可以访问上述目标数据,保障了目标数据的安全性。
在完成目标数据的注册后,数据访问控制系统10可以对目标数据进行访问控制。下面将从交互的角度,对本申请实施例的数据访问控制方法进行详细说明。
参见图3所示的数据访问控制方法的交互流程图,该方法包括:
S302:应用22向数据访问控制系统10发送数据访问请求。
应用22可以是目标数据的所有者(例如是注册目标数据的租户)或者其他租户部署的应用。在一些实施例中,应用22可以是AI应用,例如是训练/推理应用。在另一些实施例中,应用22也可以是非AI应用,例如是数据库应用等等。
以智能算力中心的应用场景为例,应用22可以是注册目标数据的租户使用kubernetes平台部署的训练/推理应用,或者其他租户使用kubernetes平台部署的训练/推理应用。为了实现模型训练或推理,应用22可以向数据访问控制系统10发送数据访问请求,以获得数据访问控制系统10的数据保护单元12中存储的目标数据。在该示例中,目标数据可以是加密训练数据集、预训练模型等机密数据所使用的加密密钥。
需要说明的是,在本申请实施例其他可能的实现方式中,目标数据也可以是机密数据本身。其中,机密数据可以是被标识为机密、对安全需求较高的数据。例如,AI应用对应的机密数据可以是训练数据集、预训练模型等中的至少一种,非AI应用对应的机密数据可以是业务逻辑、业绩数据等中的一种或多种。
S304:数据访问控制系统10中的管理平台16校验应用22的合法性。校验通过,则执行S306。
管理平台16是算力中心的基础组件之一,用于对部署在该算力中心的应用进行管理。目前,广泛应用的管理平台包括kubernetes。kubernetes可以通过数据注册请求中的令牌token,校验应用22的合法性。具体地,kubernetes包括api server,api server可以本地计算token,然后将本地计算的token与数据访问请求中的token进行比较,以校验数据访问请求的token,从而实现校验应用22的合法性。
当管理平台16确定应用22为合法的应用时,管理平台16可以执行S306,以执行后续流程。当管理平台16确定应用22为不合法的应用时,管理平台16可以结束当前流程。需要说明的是,在一些实施例中,管理平台16也可以不执行上述S304,例如算力中心部署的应用均为合法应用,或者应用合法性校验的功能可以由数据保护单元12实现时,数据访问控制系统10也可以不包括上述管理平台16,无需管理平台执行上述S304。
S306:管理平台16转发数据访问请求至数据保护单元12。
管理平台16和数据保护单元12均为数据访问控制系统10中的可信实体,管理平台16和数据保护单元12彼此互信,因此,管理平台16可以将数据访问请求转发至数据保护单元12。其中,管理平台16和数据保护单元12之间建立有安全通道。管理平台16可以通过上述安全通道转发数据访问请求至数据保护单元12。
数据保护单元12为数据访问控制系统10的核心组件。该组件具备防御操作系统级攻击的能力,能够防止任何未授权用户访问该组件中存储的目标数据。进一步地,该组件还具备授权校验能力,能够对执行授权操作的租户的进行校验,确定其是否具有授权权限。在一些实施例中,数据保护单元12可以是可信执行环境(trusted execution environment,TEE),或者是加密机,本申请实施例对此不作限定。
S308:数据保护单元12根据数据访问请求,构造授权请求。
具体地,数据保护单元12可以根据数据访问请求中目标数据的标识以及应用22的标识,构造授权请求,授权请求用于请求获得授权,从而获得访问目标数据的权限。进一步地,数据保护单元12在构造授权请求时,还可以结合登录应用22的账号和/或账号所属的命名空间namespace。
在一些可能的实现方式中,数据保护单元12还可以在查询到用户为应用22授权的用户时,根据数据访问请求构造授权请求,如此避免非授权用户请求目标数据,保障目标数据的安全性。
S310:数据保护单元12向租户的客户端发送授权请求。
S312:租户的客户端根据授权请求,向身份认证单元14发送身份认证请求。
具体地,租户在接收到授权请求后,可以向数据访问控制系统10进行身份认证,以证明租户具有授权权限,租户的客户端可以返回授权界面,以便租户决定是否授权。其中,租户的客户端可以发送租户的认证凭据,例如是租户的AK/SK,身份认证单元14根据该AK/SK对租户进行身份认证,获得身份认证结果。
S314:身份认证单元14返回认证结果。当认证结果表征身份认证通过时,执行S316。
认证结果表征身份认证通过时,则该租户为目标数据的所有者,或者是目标数据的所有者的授权实体(授权用户),具有授权权限。如此可以执行S316,以便于对数据访问请求进行实时授权。
需要说明的是,上述S312至S314为本申请实施例的可选步骤,执行本申请实施例的方法也可以不执行上述S312至S314。例如,租户的客户端可以直接向租户呈现授权界面,以便租户觉得是否对该数据访问请求进行实时授权。
S316:客户端向租户呈现授权界面。
为了便于理解,下面结合授权界面的界面示意图进行示例说明。参见图4所示的授权界面的界面示意图,授权界面400包括目标数据的标识402和应用22的标识404,用于向租户展示哪一个应用请求什么目标数据。其中,目标数据的标识例如可以是目标数据的哈希值。在一些实施例中,目标数据的标识也可以是目标数据的名称(如文件名)。应用22的标识可以是应用的图标。在一些实施例中,应用22的标识也可以是应用22的名称。进一步地,授权界面400还可以包括登录应用22的账号(或者用户名)406和账号所属的命名空间408,以便于租户查看应用22的哪个用户请求目标数据。
其中,授权界面400还包括授权控件407和拒绝授权控件409。当租户触发授权控件407时,可以触发授权操作,当租户触发拒绝授权控件409时,可以触发拒绝授权操作。在一些实施例中,授权控件407和拒绝授权控件409可以集成在一个控件中,租户可以通过切换该控件至不同模式,从而触发授权或拒绝授权操作。
S318:客户端接收租户通过授权界面的授权操作,生成授权响应。
具体地,客户端可以在接收到租户的授权操作时,获取应用22的标识和目标数据的标识,根据应用22的标识和目标数据的标识生成授权响应。其中,客户端还可以根据登录应用22的账号(或用户名)生成授权响应。
需要说明的是,S316至S318为本申请实施例中生成授权响应的一种具体实现方式,在本申请实施例其他可能的实现方式中,也可以不通过授权界面,直接在后台生成授权响应。
S320:租户的客户端发送授权响应至数据保护单元12。
S322:数据保护单元12对租户进行身份校验,校验通过后执行S324。
其中,数据保护单元12可以基于租户的认证凭据对租户进行身份校验,以确定租户是否为真实租户(目标数据的所有者或授权实体),避免伪造租户对数据访问请求进行授权,导致目标数据的安全性降低。
S324:数据保护单元12对租户进行权限校验,校验通过后执行S326。
具体地,数据保护单元12可以通过比较发送该授权响应的租户的标识以及注册目标数据的租户的标识,从而确定租户是否为目标数据的所有者。当租户为目标数据的所有者,则该租户具有授权的权限,如此可以实现权限校验。
进一步的,当目标数据的所有者在注册目标数据时,还设置了目标数据的授权实体(例如是授权用户)时,数据保护单元12还可以比较发送该授权响应的租户的标识以及上述授权实体的标识,从而确定租户是否为目标数据的授权实体。其中,数据保护单元12可以在确定租户并非目标数据的所有者的情况下,确定租户是否为目标数据的授权实体。当租户为目标数据的授权实体时,则该租户具有授权权限,如此可以实现权限校验。
需要说明的是,上述S322至S324为本申请实施例的可选步骤,执行本申请实施例的数据访问控制方法可以不执行上述步骤,或者执行其中一个步骤。并且,执行上述两个步骤时也可以并行执行,或者是先执行权限校验,然后再执行身份校验。
S326:数据保护单元12向管理平台16返回加密的目标数据。
S328:管理平台16返回加密的目标数据。
具体地,数据保护单元12可以采用信封加密方式对目标数据进行加密,获得加密的目标数据,然后以管理平台16为中介,向应用22返回加密的目标数据。在一些实施例中,数据保护单元12也可以不经过管理平台16,直接向应用22返回加密的目标数据。
其中,管理平台16和应用22之间还可以建立安全通道,例如是基于SSL或TLS的安全通道。如此,管理平台16还可以通过上述安全通道向应用22返回加密的目标数据,从而保障目标数据的安全性。
图3所示实施例描述了本申请的数据访问控制方法的一种具体实现方式,在实际应用时,数据访问控制系统10也可以不执行上述S304、S306、S322、S324,租户的客户端也可以不执行上述S312、S314。此外,租户的客户端在生成授权响应时,也无需通过S316至S318实现,例如租户的客户端可以直接在后台确定数据访问请求是否符合授权的要求,当符合授权的要求时,生成授权响应。类似地,数据访问控制系统10在返回加密的目标数据时,也可以不执行S326、S328,而是直接向应用22返回加密的目标数据。
基于上述内容描述,本申请实施例提供了一种数据访问控制方法。在该方法中,对安全需求较高的机密数据或者用于加密上述机密数据的加密密钥等目标数据存储在数据访问控制系统10的数据保护单元12中。数据保护单元12具备防止任何用户未授权读取或写入目标数据的能力,保障了目标数据的存储安全。而且,数据保护单元12与身份认证单元14、管理平台16等可信实体组成一个最小信任集,在最小信任集的实体之间互信,并通过安全通道进行交互。通过该最小信任集中的实体交互,可以实现对应用22所请求的目标数据进行动态实时授权,而且授权的权力被赋予目标数据的所有者,包括管理员在内的任何用户在不具备授权时,均无法访问目标数据,避免了管理员泄露目标数据的风险,进一步保障了目标数据的安全性。
本申请实施例的数据访问控制方法可以应用于不同场景。在一些实施例中,数据访问控制方法可以应用于智能算力中心或者云计算中心的智能计算场景,以实现对训练数据集和AI模型的保护。在另一些实施例中,数据访问控制方法还可以应用于云边协同的场景。下面分别对不同应用场景进行说明。
在第一种应用场景中,智能算力中心或云计算中心以kubernetes为管理平台16,并基于加密机的KMS系统构建数据保护单元12,此外,智能算力中心或云计算中心还提供有身份认证单元14。上述数据保护单元12、身份认证单元14和管理平台16形成数据访问控制系统10。数据访问控制系统10中的上述三个实体为可信实体,实体之间彼此互信,形成最小信任集(也称作最小可信集、最小可信域)。最小信任集内的可信实体之间建立有安全通道,用于保障传输安全性。
具体地,租户在本地使用加密密钥对自己的训练数据集或AI模型进行加密,得到训练数据集密文或模型密文。然后租户通过算力中心的身份认证单元14如IAM进行身份认证后,将加密密钥通过安全通道注册到数据保护单元12,如AI-VAULT,并设定此加密密钥的访问策略,包括允许租户自己进行授权、使用此加密密钥执行解密、更新/删除此加密密钥等,或者授权其他租户使用此加密密钥执行解密。此外,租户还将加密后的数据例如是训练数据集密文、模型密文上传到智能算力中心。
当租户自己或其他租户使用管理平台16如kubernetes平台部署训练或推理应用时,此应用生成数据访问请求,以通过kubernetes平台的api server向AI-VAULT请求加密密钥。其中,api server将校验数据访问请求的token,确保该数据访问请求来自正确的账号,然后将数据访问请求转发给AI-VAULT。AI-VAULT确保数据访问请求来自api server,确认数据访问请求未被授权,将该数据访问请求转发给租户。租户收到该数据访问请求,然后重新提供认证凭据进行登陆,并查看数据访问请求的内容。租户的客户端可以根据数据访问请求的内容,向租户呈现授权界面,授权界面展示有上述账号下的哪个APP在请求租户的哪个目标数据,租户可以基于授权界面展示的信息执行授权或拒绝授权操作。当租户执行授权操作时,AI-VAULT将收到授权响应,AI-VAULT根据该授权响应,将加密密钥采用信封加密后,通过安全通道返回给应用。APP接收到信封加密的加密密钥后,从中解密出加密密钥,然后利用该加密密钥(对称加密机制中加密密钥和解密密钥相同)对训练数据集密文、模型密文进行解密,获得训练数据集明文、模型明文。如此,应用的训练或推理功能就可以正常运行了。
相对于将租户的AK/SK绑定到应用的方案,本申请实施例的数据访问控制方法不会对外暴露租户的认证凭据,保障了认证凭据的安全性,进而避免了认证凭据被泄露或窃取导致目标数据被泄露或窃取的风险,保障了目标数据的安全性。而且,租户可以在不向其他租户提供认证凭据的情况下,对自身的目标数据进行实时授权,以将目标数据灵活地授权给其他租户使用,一方面满足了业务需求,另一方面保障了目标数据的安全性。
在第二种应用场景中,云计算中心与边缘环境中的边缘节点建立有安全通道。当边缘节点上部署的应用需要云计算中心中存储的目标数据时,该应用可以向数据访问控制系统10发送数据访问请求,以用于请求目标数据。其中,目标数据可以存储在云计算中心中数据访问控制系统10的数据保护单元12中,该数据保护单元12具体可以通过可信执行环境构建。
其中,用户可以在试用AI模型时,通过应用向数据访问控制系统10发送数据访问请求。在该示例中,应用请求的目标数据可以是模型密文,数据访问控制系统10通过本申请实施例的方法对模型密文进行授权,以将模型密文从云计算中心传递到边缘节点。然后部署在边缘节点上的应用对模型密文进行解密,可以实现加载相应的模型,并进行推理。
当用户试用完成后,还可以通过购买的方式获取长期授权。具体地,目标数据的所有者可以将目标数据注册到边缘节点的可信区域,如边缘节点的TEE,从而实现长期授权。.
该方法可以为目标数据的所有者提供中心化的授权机制,不仅实现了目标数据的保护,同时实现了灵活的授权,帮助目标数据的所有者快速实现资产周转。
上文结合图1至图4对本申请实施例数据访问控制方法进行了详细介绍,下面将结合附图对本申请实施例提供的数据访问控制系统进行介绍。
参见图1所示的数据访问控制系统10的结构示意图,该数据访问控制系统10包括数据保护单元12,所述数据保护单元12对数据的所有者和/或所述数据的授权实体提供访问权限。
所述数据保护单元12,用于接收应用的数据访问请求,所述数据访问请求用于请求访问所述数据保护单元中存储的目标数据,根据所述数据访问请求,向所述目标数据的所有者发送授权请求,当接收到所述目标数据的所有者的授权响应时,向所述应用发送加密的所述目标数据。
在一些可能的实现方式中,所述数据保护单元12还用于:
对所述目标数据的所有者进行身份校验;
所述数据保护单元12具体用于:
当身份校验通过时,向所述应用发送加密的所述目标数据。
在一些可能的实现方式中,所述数据保护单元12还用于:
根据所述授权请求,向所述目标数据的所有者呈现授权界面,所述授权界面包括所述应用的标识和所述目标数据的标识;
所述目标数据的所有者的授权响应根据所述目标数据的所有者对所述目标数据的授权操作生成。
在一些可能的实现方式中,所述数据访问控制系统10还包括:
身份认证单元14,用于接收所述目标数据的所有者通过安全通道传输的认证凭据,根据所述认证凭据对所述目标数据的所有者进行身份认证;
所述数据保护单元12具体用于:
当身份认证通过时,根据所述授权请求,向所述目标数据的所有者呈现授权界面。
在一些可能的实现方式中,所述数据访问控制系统10还包括:
管理平台16,用于在向所述目标数据的所有者发送授权请求之前,对所述应用进行合法性校验。
在一些可能的实现方式中,所述数据保护单元12为加密机或可信执行环境。
在一些可能的实现方式中,所述目标数据包括机密数据或者用于加密所述机密数据的加密密钥。
根据本申请实施例的数据访问控制系统10可对应于执行本申请实施例中描述的方法,并且数据访问控制系统10的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供一种计算设备集群。该计算设备集群包括至少一台计算设备,该计算设备例如可以是服务器。该计算设备集群具体用于实现如图1所示实施例中数据访问控制系统10的功能。
图5提供了一种计算设备集群的结构示意图,如图5所示,计算设备集群50包括多台计算设备500,计算设备500包括总线501、处理器502、通信接口503和存储器504。处理器502、存储器504和通信接口503之间通过总线501通信。
总线501可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器502可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口503用于与外部通信。例如,通信接口503用于接收应用的数据访问请求,向目标数据的所有者发送授权请求,接收到目标数据的所有者的授权响应时,向应用发送加密的目标数据等等。
存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器504还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器504中存储有计算机可读指令,处理器502执行该计算机可读指令,以使得计算设备集群50执行前述数据访问控制方法(或实现前述数据访问控制系统10的功能)。
具体地,在实现图1所示系统的实施例的情况下,且图1中所描述的数据访问控制系统10的模块或单元(如身份认证单元14、管理平台16)的功能为通过软件实现的情况下,执行图1中各模块或单元的功能所需的软件或程序代码可以存储在计算设备集群50中的至少一个存储器504中。至少一个处理器502执行存储器504中存储的程序代码,以使得计算设备集群50执行前述数据访问控制方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备或计算设备集群执行上述数据访问控制方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算设备或数据中心进行传输。所述计算机程序产品可以为一个软件安装包,在需要使用前述数据访问控制方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备或计算设备集群上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
- 一种数据库访问控制方法、系统及相关设备
- 一种数据库访问控制方法、系统及相关设备