游侠标签权限在Atlas中似乎无效

时间:2019-08-26 23:52:56

标签: apache-ranger apache-atlas

出现问题,在Ranger中设置的策略标签似乎在Atlas中无效。

大致遵循此处的教程(https://hortonworks.com/tutorial/tag-based-policies-with-apache-ranger-and-apache-atlas/section/2/#create-ranger-tag-based-policy),尝试为Atlas中创建的分类创建标记策略。

在Atlas中为hdfs_path实体创建分类 enter image description here 然后在Service Manager>基于标签的策略中为该Atlas PHI分类创建一个Ranger标签,该标签仅允许用户(而非atlas admin用户)执行某些atlas操作。 enter image description here 在服务管理器> Atlas策略中,我制作了使用该标记的Atlas服务 enter image description here 并禁用与允许公众访问Atlas相关的Ranger Atlas服务策略 enter image description here

但是以admin(不是Ranger标记中指定的用户)身份登录Atlas,我仍然可以搜索并找到已为其分配了PHI标记的Atlas实体,以及删除和(重新)添加标记,证明在Ranger审核日志中... enter image description here 我认为这不可能。我希望标签列中包含自定义标签,并且拒绝“管理员”访问。

以HDFS为例...

尽管Ranger标记仅指定用户hdfs,但我仍然可以以“ admin”用户身份访问HDFS位置。我注意到有关Ranger审核的几件事,如下所示 image.png

  1. “名称/类型”包括与资源相关联的Atlas分类
  2. 标签列为空

我将其解释为:1)护林员认识到该位置与某些Atlas标签相关联,并且2)它看不到任何允许或反对允许用户“管理员”访问该资源的标签。

任何具有Atlas + Ranger经验的人都可以让我知道我在这里犯错了吗?有任何调试建议吗?

1 个答案:

答案 0 :(得分:1)

所以首先在log4j设置中启用跟踪(log4j.properties)

TagSync:
  LogLevel: INFO

然后确保在通过 UI 在 atlas 中创建标签之后 theat 传播到名为 'public.x_tag'public 的 Ranger 数据库表 .x_tag_def。您将看到标签首先在 kafka 上结束,然后标签同步将其添加到 Ranger 的数据库中。启用跟踪后,日志将显示这一点,如果它不起作用,它将显示原因。

很可能是 ranger 中的服务名称不匹配,如果您说策略执行不起作用,并且您可能需要在 atlas 中指定正确的限定名称创建分类时

在创建标签的 Atlas 中: enter image description here 注意限定名

然后回到护林员

enter image description here

我注意到如果标签的限定名称与在 Ranger 中创建的服务的名称不匹配,则策略不会执行。不幸的是,它在任何文档中都没有,我不得不在日志中弄清楚