flume ng hdfs安全性

1aaf6o9v  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

我是hadoop和flume ng的新手,我需要一些帮助。我不明白hdfs安全性是如何实现的。
以下是flume用户指南中的配置行: # properties of hdfs-Cluster1-sink agent_foo.sinks.hdfs-Cluster1-sink.type = hdfs agent_foo.sinks.hdfs-Cluster1-sink.hdfs.path = hdfs://namenode/flume/webdata 这是否意味着任何知道我的hdfs路径的人都可以将任何数据写入我的hdfs?

iugsix8n

iugsix8n1#

这个问题是很久以前提出来的,但是我将尝试为其他处理flume和hdfs安全性的开发人员回答这个问题。
flume的hdfs接收器只需要将数据持久化的端点。如果这样一个端点是否安全,则完全取决于hadoop,而不是flume。
hadoop生态系统有几种实现安全性的工具和系统,但我们将重点讨论这些本地元素,并讨论身份验证和授权方法。
身份验证是基于kerberos的,与任何其他身份验证机制一样,它是确定某人或某物实际上是谁或它声明的内容的过程。因此,通过使用auth,仅仅知道hdfs用户名是不够的,但是您必须通过先前对kerberos进行身份验证并获得一个票证来证明您拥有这样的用户。认证可以是基于pasword或基于keytab的;您可以将keytab视为包含身份验证密钥的“证书文件”。
授权可以在文件系统上实现,通过决定哪些权限在hdfs中拥有任何文件夹或文件。因此,如果某个文件只有600个权限,那么只有它的所有者才能读写它。可以使用其他授权机制,如hadoop acl。
也就是说,如果您查看一下FlumeFlume,就会发现kerberos有几个参数:
kerberosprincipal–用于访问安全hdfs的kerberos用户主体
kerberoskeytab–用于访问安全hdfs的kerberos密钥表
在kerberos术语中,主体是kerberos可以向其分配票证的唯一标识。因此,对于hdfs中每个启用的用户,您将需要在kerberos中注册一个主体。如前所述,keytab是某个主体拥有的身份验证密钥的容器。
因此,如果您想保护您的hdfs,那么安装kerberos,为每个启用的用户创建主体和键表,并正确配置hdfs接收器。另外,在hdfs中适当地更改权限。

相关问题