1、认证服务(AS)和TGS。AS和TGS一起处理受Kerberos 保护的Hadoop 集群的所有认证和访问请求。Kerberos 数据库存储主体和领域 信息。Kerberos Client任何一个需要通过KDC认证的机器(或模块)。比如客户端,需要 做Kerberos 认证的机器。,Kerberos 基础,Kerberos核心概念Principal用于验证一个用户或者一个 Service 的唯一标识,相当于一个账号,需要为其设置密码。当用户想要对Kerberos 支持的集群进行身份验证时,管理服务生成票据。该票据包 含用户名(通常与用户主体相同),服务主体,客户端的 IP 地址和时间戳等信息。
2、票据具有 一个可配置的最长生命周期和一个会话密钥。用户还可以在特定时间内对票据续期。Keytab 文件包含一个或多个 Principal 以及其密码的文件,可用于用户登录。一个包含一个或多 个Principal 及其密码的文件,可以代替输入密码进行验证。keytab 文件是一个安全文件,其中包含领域所有服务主体的密码。每个 Hadoop 服务 都要求在所有主机上放置一个 keytab 文件。当kerberos 需要更新服务 TGT 时,它会查找keytab 文件。,Kerberos 基础,Kerberos核心概念Realm(域)由KDC 以及多个Kerberos Client 组成的网络,即认
3、证的域。域是认证用户的基本管理域,用于建立管理服务器对用户,主机和服务进行身份验证的 边界。每个hadoop 用户被分配到一个特定的域。通常用大写字母指定一个域,例如YINZHENGJIE.COM。可以有多个 KDC,因此在单个网络中可以有多个域。主体是指定域的一部分用户,宿主或服务。用户主体和服务主体通常是比较常见的。UPN 表示普 通用户。SPN是运行Hadoop 服务或后台进程所必须的登陆名,包括 HDFS 和YARN 等Hadoop 服务。KDC Admin AccountKDC中拥有管理权限的用户(例如添加,修改,删除 Principal)。即KDC 管理员帐户,有权添加其他Prin
4、cipal,Kerberos 基础,Kerberos 核心概念Authentication Sever(简称AS,即认证服务)用于初始化认证,并生成Ticket Granting Ticket(TGT)。一旦用户成功地 向AS进行了身份验证,则AS向安全集群中的其他服务认证和客户端授予TGT。这些票据是用于客户端向服务器进行身份验证,有一定时效的加密信息。然后,主体使用TGT来请求认证和访问Hadoop服务。Ticket Granting Server(TGS)票据验证服务器,验证客户端传递的TGT,然后给客户端服务授予票据,以 便它们可以访问hadoop服务。服务票据使验证后的主体能够使用集
5、群中的服务。在TGT的基础上生成Service Ticket。一般情况下AS和TGS都在KDC的 Server上。,Kerberos 基础,Kerberos核心思想,基于秘钥的共识,有且只有中心服务器知道所有的用户和服 务的秘钥信息,如果你信任中心服务器,那么你就可以信任中心 服务器给出的认证结果。不光验证的用户真实性,实际上也验证了后台服务的真实性,所以他的身份认证是双向认证,后台服务同样是通过用户,密码 的形式登记到系统中的,避免恶意伪装的钓鱼服务骗取用户信息 的可能性。,Kerberos 认证流程,Kerberos 的优点,较高的性能虽然我们一再地说 Kerberos 是一个涉及到 3方
6、的认证过程:Client、Server、KDC。但是 一旦Client 获得用过访问某个 Server 的Ticket,该Server 就能根据这个Ticket 实现对Client 的 验证,而无须KDC 的再次参与。和传统的基于 Windows NT.0 的每个完全依赖 Trusted ThirdParty 的NTLM 比较,具有较大的性能提升。实现了双向验证传统的NTLM认证基于这样一个前提:Client 访问的远程的Service是可信的、无需对于进行验证,所 以NTLM不曾提供双向验证的功能。这显然有点理想主义,为此Kerberos 弥补了这个不足:Client在访 问Server的资
7、源之前,可以要求对Server的身份执行认证。对Delegation 的支持Impersonation和Delegation是一个分布式环境中两个重要的功能。Impersonation允许Server 在本 地使用Logon 的Account执行某些操作,Delegation需用Server将logon的Account带入到另过一个Context 执行相应的操作。NTLM仅对Impersonation提供支持,而Kerberos通过一种双向的、可传递 的(Mutual、Transitive)信任模式实现了对Delegation的支持。互操作性,Sentry 基础,为什么用Sentry?,Had
8、oop系统中没有统一的授权管理系统认证安全(如Kerberos)解决谁可以访问集群,而授权安全是 用来解决可以访问集群的人能做什么样的事情Apache Sentry为Hadoop环境提供统一的授权方式,管理员 可以准确指定用户在Hadoop系统中可以执行的操作Sentry基于角色的访问系统使管理员能够在细粒度级别控制用 户访问。为了在集群中设置细粒度授权,必须对数据进行分类,并 指定需要访问特定数据集的用户及所需的访问级别,Sentry 基础,什么是Sentry?,Apache Sentry 是Cloudera公司发布的一个Hadoop开源组件,提供了细粒度级、基于角色的授权以及多租户的管理模
9、式可以与Apache Hive、Hive Metastore/HCatalog、Apache Solr、Impala和HDFS良好结合Sentry被设计作为Hadoop组件的可插拔授权引擎。它允许用户 定义授权规则,来验证用户或应用对Hadoop资源的访问请求。Sentry是高度模块化的,可以支持Hadoop中各种数据模型的授 权,Sentry 基础,Sentry基本概念Authentication验证凭证以可靠地鉴别一个用户Authorization限制一个用户对给定资源的存取权限User通过底层认证系统来识别的个体Group一组User,由认证系统管理,Sentry 基础,Sentry基本
10、概念Privilege一条指令或规则,以允许对某对象的存取Role一组Privilege,或一个包含多条存取规则的模版Authorization models定义了受授权规则约束的对象和允许操作的粒度如在SQL模型中,对象可以是数据库或表,操作可以是 SELECT、INSERT、CREATE。在Search 模型中,对象可以是索引、配置、集合、文档,操作可以是query和update。,Sentry 架构图,Sentry 功能特性安全授权细粒度访问控制 基于角色的管理 多租户管理统一平台,Sentry 的授权控制过程,建立用户时,为其分配一个组(通过操作系统或LDAP);创建Sentry的角色;将一个或多个细粒度的权限赋给角色;将一个或多个角色赋给组。,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1