Solrの検索アプリケーションのためのKerberosのセキュリティとSentryの認可

Published on 22 September 2014 in Enterprise / Search / Security - 4 minutes read - Last modified on 04 February 2020

このブログの記事では、Hueの検索アプリケーションでKerberosとSentryの使用方法を詳しく説明しています 。Kerberosのみを使用したい場合は、Sentryについての段落をスキップして下さい。

 

Kerberos はHadoopクラスタでユーザーを認証することができます。例えば、ジョブを投入している、ファイルを一覧している、あるいは検索を実行しているのが本当にユーザー「bob」であり、「Joe」でないことを保証します。次のステップは、ユーザーが何にアクセスできるかの設定で、これは認可と呼ばれます。Sentryは、Solrのコレクション/インデックスにあるデータを、誰が参照、クエリ、追加することができるかを定義する、セキュアな方法です。これは、Kerberosでアクションを実行するユーザ名を保証するようにすることのみが可能です。

 

Hueにはインストールする準備ができているコレクションとサンプルのセット​​が付属しています。しかし、Kerberosでは、これはワンクリックよりも少し多くの作業が必要です。

まず、あなたはSentryの設定がされているKerberos化されたクラスタ (とHueのSolr検索)を持っていることを確認して下さい。

それからコレクションを作成します。適切なSolrの環境変数がある場合、コマンドはそのまま動作するはずです。

cd $HUE_HOME/apps/search/examples/bin

./create_collections.sh

 

その後、コレクションが表示されるはずです:

solrctl instancedir --list
jobs_demo
log_analytics_demo
twitter_demo
yelp_demo

 

次のステップは、Solrのコアを作成することです。シンプルに保つために、私たちは1つのコレクションを使用してtwitterのデモを行います。コアを作成する際に、

sudo -u systest solrctl collection --create twitter_demo -s 1

Sentryを使用している場合、あなたはおそらく、このエラーを最初にご覧になるでしょう:

Error: A call to SolrCloud WEB APIs failed: HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Negotiate
Set-Cookie: hadoop.auth=; Version=1; Path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 997
Date: Thu, 11 Sep 2014 16:32:17 GMT</pre>
<pre>HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Negotiate YGwGCSqGSIb3EgECAgIAb10wW6ADAgEFoQMCAQ+iTzBNoAMCARCiRgRE62zOpPwr+KLoFKdUX2I6FtbN0DyxSA5a8n4BSZRJMTf413TEXzJbVh3/G7jWiMasIIzeETrd0Bv8suBsuKS/HdqG068=
Set-Cookie: hadoop.auth="[email protected]&t=kerberos&e=1410489137684&s=qAkcQr4ZPBkn5Ewg/Ugz/CqgLkU="; Version=1; Path=/; Expires=Fri, 12-Sep-2014 02:32:17 GMT; HttpOnly
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 11 Sep 2014 16:32:17 GMT

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">
401</int>
<int name="QTime">
18</int>
</lst>
<lst name="error">
<str name="msg">
org.apache.sentry.binding.solr.authz.SentrySolrAuthorizationException: User systest does not have privileges for admin</str>
<int name="code">
401</int>
</lst>

 

これは、デフォルトでは「systest」ユーザーがコアを作成する権限を持っていないためです。「systestの」は「admin」のUnix / LDAPグループに属しており、「admin」という名前の権限が含まれるSentryグループを作成する必要があります。私たちの「systest」ユーザーは、この役割を含むグループに属している必要があります。

 

これには更新を行う必要があります:

/user/solr/sentry/sentry-provider.ini

 

これに似たもので更新します:

[groups]
admin = eng_role
analyst = read_only_role

[roles]
eng_role = collection = twitter_demo, collection = admin
read_only_role = collection = twitter_demo -> action = query
update_only_role = collection = twitter_demo -> action = update

 

「systest」はLDAPの「admin」グループに属しています。 「admin」は「admin」権限を持つ「eng_role」の役割が割り当てられています。通常のアナリストのユーザーは、Sentryの「read_only」の役割とTwitterの収集のための「query」の許可を含む、LDAPの「analyst」グループに属しています。これが利用可能なの権限の一覧です。

 

備考

今度のHue3.7には、sentry-provider.iniを忘れることができ、Web UIからこれらを設定できる新しいSentryアプリがあります。また、SolrのSentryのサポートのAPIが利用可能になるとすぐに、私たちはHueに統合しています。

 

次は、コアを作成し、いくつかのデータをアップロードするための時間です。Kerberosで動作させるようにするためにpost.shコマンドを更新します。

以下の「curl 」を置き換えます:

curl --negotiate -u: foo:bar

 

URLに実際のホスト名を使用してください:

URL=http://hue-c5-sentry.ent.cloudera.com:8983/solr

 

テストを行う簡単な方法は、インデキシングコマンドを実行することです:

sudo -u systest curl --negotiate -u: foo:bar http://hue-c5-sentry.ent.cloudera.com:8983/twitter_demo/update --data-binary @../collections/solr_configs_twitter_demo/index_data.csv -H 'Content-type:text/csv'

 

これです!そのデータのコレクションは、SolrとHueに表示されます。そのグループに応じて、ユーザーはコレクションを変更することはできる、またはすることができません。

hue-collections

 

これであなたの企業、組織では、きめの細かいセキュリティを備えた検索アプリケーションの探索機能を活用することができます!次のバージョンでは、フィールドレベルでのセキュリティと、それを構成するための素晴らしいUIが搭載されるでしょう(もうsentry-provider.iniは不要です :)。

 

いつものように、コメントとフィードバックはhue-user メーリングリストや@gethueまでお気軽に!


comments powered by Disqus

More recent stories

10 June 2021
Hue4.10(新しいSQLエディタコンポーネント、REST API、小さなファイルのインポート、Slackアプリなど)がリリースされました!
Read More
29 May 2021
Sqlスクラッチパッドコンポーネントとパブリック REST API を使用して、5 分で独自の SQL エディター (BYOE) を構築する
Read More
26 May 2021
改善されたHueのImporter -- ファイルの選択、方言の選択、テーブルの作成
Read More