【问题标题】:No KeyProvider is configured, cannot access an encrypted file未配置 KeyProvider,无法访问加密文件
【发布时间】:2017-07-29 10:30:12
【问题描述】:

我在 HDFS 的加密区域中有数据。我可以使用 hive 用户读取数据,但是当我创建一个 hive 表并尝试通过直线查询它时,我得到了这个异常:

Error: java.io.IOException: java.io.IOException: No KeyProvider is configured, cannot access an encrypted file (state=,code=0)

有谁知道怎么回事?我正在使用 HDP 2.4。

【问题讨论】:

  • 您访问的表的位置在哪里?是在仓库吗?仓库在加密区内吗?您的 Hive 用户是否有权访问加密区域的密钥?
  • 我尝试创建一个表作为托管表和外部表。都没有奏效。 Hive 用户有权访问密钥。我已经在 ranger kms 中设置了所有可能的 hive 权限。我认为这不是问题,因为我可以使用 hdfs dfs 命令从 hive 用户的加密区域读取数据。

标签: hadoop encryption hive hdfs hortonworks-data-platform


【解决方案1】:

不完全确定这是否是问题(您似乎在几年前遇到过),但了解以下内容很重要:

Hive 数据存储在 HDFS 上

但是,HDFS 和 Hive 的安全策略可能不同。

事实上,建议您不要将仓库目录的 hdfs 级别权限授予任何人,而使用 ranger 仅将 SQL 级别的权限授予位于其中的数据库和表。

因此,您可能一直在将苹果与梨进行比较(尝试通过执行 hdfs 读取来验证访问权限,然后使用 beeline 执行通过不同安全策略的表读取)。

【讨论】:

    猜你喜欢
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2014-02-08
    相关资源
    最近更新 更多