2016-09-23 3 views
0

歩哨-provider.ini理解歩哨-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つの行に=記号が2つあるのはなぜですか?

ありがとうございます!

答えて

1

セントリは、要求ユーザー(KerberosまたはLDAPなど)を確実に識別するための基礎となる認証フレームワークに依存します。これは、グループがどのユーザーに属しているかを示します。

次に、Sentry設定でロールが定義されています。これは間接的なレベルであり、複数のグループにわたって権限のセットを共有/再利用できます。

グループをロールに割り当てて、そのグループ内のユーザーにロールに関連付けられた権限を与えることができます。

特権は、(通常)ハイブテーブルまたはSolrコレクションで定義されています。これはいくつかのレベル(Hiveの場合はサーバ、データベース、テーブル、Solrの場合はコレクション)で行うことができます。

だから、次の行:

engineer_role = collection = source_code->action=* 

が意味するように解釈されるべきである:「source_codeが」コレクションのために、すべてのアクションを許可する:エンジニアの役割は、1つの特権を持っています。

グループ情報と一緒に入れた場合:

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

これは、(あなたの認証フレームワークによって決定される)「エンジニア」、グループ内のすべてのユーザーが「engineer_role」役割に属することを意味し、したがって、いずれかを実行することができますSolrの "source_code"コレクションに対するアクション。

Clouderaのドキュメント(CDH 5.8)でより詳細な例があります。