参考以下资料,及《OReilly.Architecting.Modern.Data.Platforms》
https://www.cnblogs.com/wn1m/p/10700466.html
https://www.jianshu.com/p/fc2d2dbd510b
https://help.aliyun.com/document_detail/89886.html?spm=a2c4g.11186623.4.1.37a6b019HkcGLQ
kerberos是一个网络通信身份认证,包含user和service的认证。
principal分为两种类型:user、service
对于user,一般有三部分组成,例如zhangsan/admin@alibaba.com 名称/角色@域名,可以不要角色直接是zhangsan@alibaba.com
service,如yarn/master2.didot.com@sabon.com


(从上面这个图来看acl定义的范围不限于一个服务,比如将yarn拆成了两个权限控制,所以不能说简单说kerberos就是只能控制到service这一层,而service内部还可继续拆分更细的service。)
在KDC上我们需要编辑acl(Access Control List)文件来设置权限,该acl文件的默认路径是 /var/kerberos/krb5kdc/kadm5.acl(也可以在文件kdc.conf中修改)。Kerberos的kadmind daemon会使用该文件来管理对Kerberos database的访问权限。对于那些可能会对pincipal产生影响的操作,acl文件也能控制哪些principal能操作哪些其他pricipals。
https://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/kadm5_acl.html?highlight=acl
EXAMPLE
Here is an example of a kadm5.acl file:
*/admin@ATHENA.MIT.EDU * # line 1
joeadmin@ATHENA.MIT.EDU ADMCIL # line 2
joeadmin/*@ATHENA.MIT.EDU i */root@ATHENA.MIT.EDU # line 3
*/root@ATHENA.MIT.EDU ci *1@ATHENA.MIT.EDU # line 4
*/root@ATHENA.MIT.EDU l * # line 5
sms@ATHENA.MIT.EDU x * -maxlife 9h -postdateable # line 6
目前来看kerberos是用来做user和service或者service和service之间权限认证的,就是说 A用户是否有权限访问某个服务,或者服务A是否有权限访问服务B,同时这个权限用ticket表示,这个ticket有时间限制。而这个用户在kerberos中用principal表示,有自己个格式要求,如上文所示。我们对于这个用户的创建管理可以用LDAP来实现,所以经常看到的是kerberos+LDAP实现鉴权服务。
我们对大数据的安全需求似乎更应该叫多租户需求,因为我的需求更像是哪些人具有使用什么服务的权限。
kerberos+LDAP的网络认证服务应用访问广泛,不仅仅在大数据中,是一种粗粒度、应用范围广的网络用户、服务鉴权协议。
而ranger和sentry是大数据中一个权限组件,是细粒度的权限服务,他们也可以和kerberos集成。
本文深入探讨了Kerberos认证机制,包括其在网络通信身份认证中的作用,principal的类型及其构成,以及如何通过编辑acl文件来设置权限。此外,还讨论了Kerberos与LDAP的集成,以及在大数据安全中的应用。
1356

被折叠的 条评论
为什么被折叠?



