了解sentry-provider.ini文件语法

时间:2016-09-23 13:32:04

标签: apache-sentry

岗哨-provider.ini

[groups]
# Assigns each Hadoop group to its set of roles
engineer = engineer_role
ops = ops_role
dev_ops = engineer_role, ops_role
hbase_admin = hbase_admin_role

[roles]
# The following grants all access to source_code.
# "collection = source_code" can also be used as syntactic
# sugar for "collection = source_code->action=*"
engineer_role = collection = source_code->action=*

# The following imply more restricted access.
ops_role = collection = hive_logs->action=Query
dev_ops_role = collection = hbase_logs->action=Query

#give hbase_admin_role the ability to create/delete/modify the hbase_logs collection
#as well as to update the config for the hbase_logs collection, called hbase_logs_config.
hbase_admin_role = collection=admin->action=*, collection=hbase_logs->action=*, config=hbase_logs_config->action=*

我不明白这里使用的语法是什么,它的含义是什么? 这些群体和角色价值来自哪里? 为什么一行中有两个=符号?

谢谢!

1 个答案:

答案 0 :(得分:1)

Sentry依赖于底层身份验证框架来可靠地识别请求用户,即Kerberos或LDAP。这会告诉您用户所属的群组

Sentry配置然后定义角色。这是一个间接级别,允许您跨多个组共享/重用特权集。

可以将组分配给角色,从而为这些组中的用户提供与角色关联的权限。

权限是在(通常)Hive表或Solr集合上定义的。这可以在几个级别完成(在Hive的情况下服务器,数据库和/或表,或在Solr的情况下收集)。

以下一行:

engineer_role = collection = source_code->action=*

应解释为:工程师角色具有一个权限,即:对于“source_code”集合,允许所有操作。

与群组信息放在一起时:

 [groups]
 engineer = engineer_role
 [roles]
 engineer_role = collection = source_code->action=*

这意味着“工程师”组中的任何用户(由您的身份验证框架确定)都属于“engineer_role”角色,因此可以对Solr中的“source_code”集合执行任何操作。

Cloudera文档(CDH 5.8)中有更详细的例子: