我已经在windows中使用kerberos实现了hadoop安全性。我读过这个文档,每个节点应该有不同的主体名称。例如,像nn/full.qualified.domain这样的namenode主体。name@realm.tld,数据节点主体,如dn/full.qualified.domain。name@realm.tld
我的问题是,为什么我们不能对所有节点使用相同的主体,我已经测试过了,它也工作得很好。那么为什么我们要为每个节点使用不同的主体呢。有什么具体的原因吗?如果我们使用不同的主体,那么集群将更安全?或者每个服务都有用户角色,比如hdfs、yarn、mapred?
我只想知道他们为什么这样用。
谢谢,
1条答案
按热度按时间8qgya5xd1#
我不知道确切的原因;但是对于个人用户的必要性在下面的场景中是可行的;
当每个服务启动时,在启用acl时,有些服务可能需要额外的权限来执行某些操作;
例如:jobhistoryserver应该有权限写namenode服务通信/状态的日志;
同样在核心,hadoop本身有“hdfs”、“mapred”作为个人用户;因此,最好有单独的服务用户;