Ranger 标签权限在 Atlas 中似乎没有生效
Ranger tag permissions appear to not take effect in 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 实体创建了分类
然后在 Service Manager > Tag Based Policies 中为该 Atlas PHI 分类创建了一个 ranger 标签,该标签只允许用户而非 atlas 管理员用户执行某些 atlas 操作
在 Service Manager > atlas Policies 中,我制作了一个使用该标签的 Atlas 服务
并禁用与允许 public 访问 Atlas 相关的 Ranger Atlas 服务策略
但以管理员身份登录 Atlas(不是 Ranger 标签中指定的用户),我仍然可以搜索并找到分配有 PHI 标签的 atlas 实体,以及删除和(重新)添加标签,在 Ranger 审计日志中证明......
我认为这不应该是可能的。我希望标签列中包含自定义标签,并且 "admin" 的访问被拒绝。
以 HDFS 为例...
尽管 Ranger 标签只指定用户 hdfs,我仍然可以作为用户 "admin" 访问 HDFS 位置。我注意到下面显示的有关 Ranger 审核的几件事
- "Name/Type" 包括与资源关联的图集分类
- 标签列为空
我将其解释为 1) Ranger 识别出该位置与某些 Atlas 标签相关联,并且 2) 它没有看到任何支持或反对允许用户 "admin" 访问该资源的标签。
任何有更多 Atlas+Ranger 经验的人都可以告诉我我在这里犯了什么错误吗?有什么调试建议吗?
所以首先在log4j设置中启用跟踪(log4j.properties)
TagSync:
LogLevel: INFO
然后确保在通过 UI 在 atlas 中创建标签后将其传播到名为 的 Ranger 数据库 table ]'public.x_tag'或public.x_tag_def。您会看到标签首先在 kafka 上结束,然后标签同步将其添加到 ranger 的数据库中。启用跟踪后,日志将显示此信息,如果它不起作用,它将显示原因。
可能是 Ranger 中的服务名称不匹配 如果您说策略执行不起作用并且您可能需要 指定正确的合格创建分类时在图集中的名称
在 Atlas 中创建标签:
注意限定名
然后回到游侠
我注意到,如果标签的限定名称与在 ranger 中创建的服务的限定名称不匹配,则策略不会强制执行。不幸的是,它在任何文档中都找不到,我不得不在日志中弄清楚
在 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 实体创建了分类
但以管理员身份登录 Atlas(不是 Ranger 标签中指定的用户),我仍然可以搜索并找到分配有 PHI 标签的 atlas 实体,以及删除和(重新)添加标签,在 Ranger 审计日志中证明......
以 HDFS 为例...
尽管 Ranger 标签只指定用户 hdfs,我仍然可以作为用户 "admin" 访问 HDFS 位置。我注意到下面显示的有关 Ranger 审核的几件事
- "Name/Type" 包括与资源关联的图集分类
- 标签列为空
我将其解释为 1) Ranger 识别出该位置与某些 Atlas 标签相关联,并且 2) 它没有看到任何支持或反对允许用户 "admin" 访问该资源的标签。
任何有更多 Atlas+Ranger 经验的人都可以告诉我我在这里犯了什么错误吗?有什么调试建议吗?
所以首先在log4j设置中启用跟踪(log4j.properties)
TagSync:
LogLevel: INFO
然后确保在通过 UI 在 atlas 中创建标签后将其传播到名为 的 Ranger 数据库 table ]'public.x_tag'或public.x_tag_def。您会看到标签首先在 kafka 上结束,然后标签同步将其添加到 ranger 的数据库中。启用跟踪后,日志将显示此信息,如果它不起作用,它将显示原因。
可能是 Ranger 中的服务名称不匹配 如果您说策略执行不起作用并且您可能需要 指定正确的合格创建分类时在图集中的名称
在 Atlas 中创建标签:
然后回到游侠
我注意到,如果标签的限定名称与在 ranger 中创建的服务的限定名称不匹配,则策略不会强制执行。不幸的是,它在任何文档中都找不到,我不得不在日志中弄清楚