Guardian实现集群互信与安全审计

Guardian是一款大数据集群安全保护平台,提供完整的安全解决方案,全面覆盖集群用户认证、服务授权、配额管理以及安全审计。它采用多种安全协议与框架协议,提供身份认证、权限控制、配额管理等功能,保证Transwarp Data Hub平台大数据的安全和高效。

随着TDH的迭代升级,Guardian同时也在不断开发并引入大量新的安全功能,以实现全方面的数据保护和易用的安全操作。以下是Guardian在新版本5.1中新增的几个重要功能和模块:

实现完善的Guardian服务审计日志。

支持多个Guardian服务之间添加互信机制。

Guardian数据自动定期备份功能。

为Slipstream提供权限插件和权限管理页面。

提供通用的Kerberos SASL框架。

提供通用的SPNEGO认证框架。

其中集群互信和审计日志服务是两个较为关键的功能,是Guardian在功能与操作方面的升级完善,我们将在本文中详细介绍。

互信管理

Guardian通过Kerberos协议进行用户认证,集群开启Kerberos保护后只能对该集群所在域(Realm)的用户进行认证,而不能认证来自其他域的用户,因此其他域的用户便不能访问该域的服务。

这种方式隔离了跨域的认证,一定程度上提高了系统的安全性,但是如果一旦用户需要访问另一集群中的服务,会因为Kerberos的这种隔离机制而无法实现。为了应对这种情况,Kerberos协议提供了Cross-Realm Authentication(跨域认证)的概念,管理员在完成了必需的安全配置之后,可以允许一个Realm认证另一个Realm中的用户,由此而实现跨域的服务访问。

Guardian从5.1开始将支持跨域认证,并将该功能称为互信管理(Trust Relation)。

两个域A和B之间的互信关系共分为三种:

A INCOMMING B:表示B信任A,即允许A的用户访问B的服务。

A OUTGOING B:表示A信任B,即允许B的用户访问A的服务。

TWO_WAY:如果A TWO_WAY B,则表示AB互相信任,A与B之间可以互相访问。

INCOMMING和OUTGOING之间的关系是对称的,也就是说如果A INCOMMING B,同时意味着B OUTGOING A。

以TDH域和HDT域两个Realm为例,从TDH域的角度出发,source domain为TDH域,target domain为HDT域。

如果和HDT域之间存在INCOMMING的信任关系,那么HDT域可以认证TDH域中的用户,TDH域中的用户可以访问HDT域中的服务,即TDH域被HDT域信任;

如果同HDT域之间存在OUTGOING的信任关系,则代表TDH域可以认证HDT域中的用户,并允许HDT域中的授权用户访问TDH域中的服务,即TDH域信任HDT域;

如果和HDT域存在TWO_WAY的信任关系,则两个Realm中的用户均可在另一个Realm中得到认证,因此授权用户均可访问另一个Realm中的服务,即双向信任。

注意,只有Realm名称不同的两个集群才可配置互信关系。所以在安装集群时,尽量在命名上进行区分。

互信机制将会使基于Kerberos的身份认证的灵活度大大提升。

审计功能

Guardian在5.1中开发出针对Guardian Server的审计功能,记录每位用户在Guardian服务器上的每次操作,以便后续分析内容检索关键信息,从而排查问题。

目前Guardian提供基于日志的审计,所有的审计日志将记录在特定的Guardian审计日志目录下。包括管理员和普通用户在内的所有用户都可以浏览审计记录,但是只有管理员有修改内容的权限。

系统日志蕴含信息,Guardian提供日志审计功能就是为了让管理员充分的利用日志内容了解系统的运行状况、安全状况,进行故障检测,发现异常访问和行为。同时,Guardian审计采用统一结构的组织日志内容,使得信息更容易检索和分析。

审计操作类型

审计字段解析

下面是一段Guardian审计日志的示例,我们可以组合各个字段中的内容分析出该记录传达出的信息。

field:操作类别。PERMISSION表示该操作的权限相关。

requestClass:操作类别下的子类别,比如PERMISSION类别下包含GrantPermRequest,RevokePermRequest等。这里的GrantPermRequest表示是关于授权的操作申请。

user:执行该操作的用户。这里显示是名为hive的用户发起的操作。

serverIp:响应请求的Guardian Server。

clientIp:发出请求的IP。

level:操作的所属类型,这里的UPDATE代表改操作属于更新操作。

operation:操作的具体内容。示例部分的内容显示是向admin用户赋予slipstream1中某张表的SELECT权限。

statusCode:Rest API所返回的状态码,200代表成功。

errorCode:操作结果,操作成功为0,操作失败为所抛出的异常编码。对于权限检查操作,0表示具有权限,1表示没有权限。

因此这段日志记录了hive用户向admin用户授予对于slipstream1中某张表的SELECT操作,并且操作成功。

结语

经过5.1的升级,Guardian目前不仅可以在统一的平台上提供数据安全服务,细粒度的访问控制,同时还可以能够提供跨域认证,基于日志的安全审计,以及更全面的安全管控范围。既提高了可用性,同时还有效提升了安全管理水平。使合法用户自由的访问授权服务,而对于非正常的行为与现象及时甄别处理。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180212A04JOT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券