使用apache atlas和ranger管理hadoop访问的工具。
cobra-policytool的Python项目详细描述
COBRA政策工具
cobra policytool是一个简化 apache ranger和标签 在apache atlas中。这些工具 管理Hadoop环境中的访问策略。cobra policytool使之变得简单 将配置文件直接按比例应用到Atlas和Ranger。
优点是:
- 配置可以版本控制
- 可以对更改进行审查、审核和跟踪
- 与现有的CI/CD集成
cobra policytool也为atlas和ranger添加了功能。 cobra policytool可以管理具有行级筛选策略的 基于标记的apache配置单元。游侠需要一个 每个表的行级策略,但是使用cobra policytool可以 每个标签有一条规则。然后这个规则被cobra policytool扩展 在每个有标签的表格前设置一条规则。
最常见的情况是希望具有相同的访问权限配置单元表和相应的 hdfs上的文件和目录。cobra policytool可以自动转换策略 将配置单元表设置为HDF的策略。
这样可以简化维护并减少出错的风险。
要使用该工具,您需要在 您正在使用的环境。对于Atlas,您必须能够阅读和创建 以及能够从资源中添加和删除它们。为了游骑兵 很遗憾,您必须是管理员。
cobra policytool是等幂的,这意味着您可以像 如果您愿意,如果on未更改输入,则结果不会更改。
介绍了如何在 中
关于如何在svenska spel中使用cobra policytool的演示 被发现 幻灯片。 以及YouTube
目标
- 使管理内部的访问策略和元数据变得容易 使用apache atlas和apache ranger的apache hadoop环境。
- 提供从配置文件应用策略的简单方法,可以 受版本控制。
- 配置文件应易于生成,例如从中心 元数据管理系统。
非目标
- 在hadoop环境中处理安全性。我们依靠 ApacheAtlas、AtlasRanger和Hadoop生态系统中的其他工具。
贡献
我们欢迎捐款。为了让我们能够接受他们, 请查看我们的贡献者指南
许可证
这个项目是按照规定的条款作为开源发布的 在许可证中
支持的功能
资源标记
- 将元数据文件中的表和列标记同步到Atlas。
- 使hdfs上配置单元对应目录之间的标记保持同步(使用option--hdfs)
- 审核以显示元数据和Atlas之间的差异。
- 新的标签定义在同步时自动添加到Atlas。
- 详细输出以提供所做的更改。
- 使用kerberos票证进行身份验证。
创建策略
- 将策略从元数据文件同步到Ranger。
- 展开基于标记的行筛选规则以配置单元基于行的筛选。
要求
- Atlas、Ranger和Hive已安装并运行。
- kerberos在hadoop集群上打开,包括atlas和ranger。你的 客户端还需要一个有效的kerberos票证。
- 巨蟒2.7. 我们HAVe在MS Windows、MacOS和Linux上成功地使用了它。
安装
pip安装cobra policytool
cli的用法
要获得最新的帮助,请了解如何使用该工具:
COBRA策略--帮助
对于policytool与atlas服务器对话的任何用途,kerberos票据必须 可用。
创建一个与您的环境匹配的配置文件,请参见docs/configfile.md。
将标记元数据信息同步到Atlas
policytool接受根据 将数据规范与元数据同步 存储在名为Atlas的Hadoop中。要执行此运行:
$ cobra-policy tags_to_atlas --srcdir src/main/tags/ --environment utv
有一个选项--verbose
可以从cobra policytool获得更多的输出,描述
表和列已更改。注意!如果运行同一个cobra policytool命令两次
在所有更改发生后的第二次,您将不会得到任何更改
第一轮。
sync ranger策略以类似的方式工作,尽管它需要 提供项目名称。项目名称是项目的名称 你在里面工作。它用于查找Ranger和 能够将游侠规则分为多个项目。
$ cobra-policy rules_to_ranger --srcdir src/main/tags/ --environment dev --project-name dimension_out
API的使用
该包还可以用作python库。下面是一个简短的例子 使用Atlas客户端类。
from requests_kerberos import HTTPKerberosAuth
import policytool.atlas
c = policytool.atlas.Client(
'http://atlas.test.my.org:21000/api/atlas',
auth=HTTPKerberosAuth())
c.known_tags()
c.get_tables("hadoop_out_utv")
有关详细信息,请阅读python文档中的代码,并查看命令行 客户端已实现。
其他文档
除此文档外,还有更多的文档在文档目录中。你可以 还可以找到a待办事项列表包括未来的计划。
我们建议阅读公约文件 indata文档开始之前。
2018 AB Svenskaspel版权所有
根据apache许可证2.0版(以下简称"许可证")授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按"原样"分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。