Hiveの承認メカニズム-ストレージベースの承認モデル



Hives Authorization Mechanism Storage Based Authorization Model



元の:

https://cwiki.apache.org/confluence/display/Hive/Storage+Based+Authorization+in+the+Metastore+Server



Hive Metastoreサービスのストレージベースの承認モデルは、以前のバージョンで導入された機能であるHive0.10で追加されました。 HCatalog

Metastoreサーバーのセキュリティの必要性

複数のクライアントがバックグラウンドデータ(MySQLなど)の同じメタデータにアクセスする場合、データベースの接続資格情報がhive-site.xml構成ファイルに表示されます。この時点で、基になるデータがHDFSアクセス制御によって保護されている場合でも、悪意のあるユーザーまたは無能なユーザーがメタデータに重大な損傷を与える可能性があります。



さらに、Hive Metastoreサービスがバックグラウンドデータのユーザーストアと永続性メタデータを持っているときにThriftとクライアント通信を使用する場合、クライアントで実行される認証と承認は、メタストア側のセキュリティを保証しません。したがって、メタデータのセキュリティを保護するために、Hiveは0.10でメタストアサービスに認証機能を追加します(を参照)。 HIVE-3705 )。

ストレージベースの承認

メタストアサービスのセキュリティがストレージベースの承認を使用するように構成されている場合、メタストアサービスは、承認ポリシーの実際のソースとして、さまざまなメタデータオブジェクトに対応するフォルダーのファイルシステム権限を使用します。ユーザーはメタストアでストレージベースの認証を使用することをお勧めします。

詳細については、Hcatalogのをご覧ください。 ストレージベースの承認ドキュメント



Hive 0.14以降、ストレージベースの承認はデータベースとテーブルの読み取り権限を承認します。 get_database APIを呼び出すには、データベースディレクトリへの読み取りアクセスが必要です。 get_table_ *およびget_partition_ *を呼び出してテーブル情報を取得し、テーブルを一覧表示するためのパーティション操作を行うには、テーブルディレクトリへの読み取りアクセスが必要です。この機能は、ストレージベースの認証でデフォルトで有効になっています。関連する構成については、以下のhive.security.metastore.authorization.auth.reads構成項目を参照してください。

メタストアのセキュリティ構成パラメーター

Hive Metastoreサービスのセキュリティ機能を使用するには、hive-site.xmlファイルで次のパラメーターを構成する必要があります。

* hive.metastore.pre.event.listeners

として設定され:

org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener

これにより、メタストア側のセキュリティ機能がオンになります。

* hive.security.metastore.authorization.manager

として設定され:

org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider

この構成アイテムは、メタストア側によって提供される承認モデルをハイブに通知するメタストアの承認マネージャーによって使用されます。この構成アイテムのデフォルト値はDefaultHiveMetastoreAuthorizationProviderであり、これはハイブである従来の承認モデル(ハイブの付与/取り消し)を使用します。

説明:StorageBasedAuthorizationProviderはHive 0.10.0で追加されましたが、Hive 0.12.0以降、またはクライアント側で実行されるメタストア側でのみ実行できます。

* hive.security.metastore.authenticator.manager

として設定され

org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator

この構成項目は、メタストアの認証マネージャーを設定するために使用されます。

* hive.security.metastore.authorization.auth.reads

構成オプションがtrueに設定されている場合、Hiveメタストア認証は読み取り権限もチェックします。デフォルト値はtrueで、Hive0.14.0で導入されました。

Hive-site.xmlの例:デフォルト設定

次の構成フラグメントは、hive-site.xmlのデフォルト構成であり、関連する構成情報を編集して、目的の認証モードを取得できます。

hive.security.metastore.authorization.manager org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider authorization manager class name to be used in the metastore for authorization. The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider. hive.security.metastore.authenticator.manager org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator authenticator manager class name to be used in the metastore for authentication. The user defined authenticator should implement interface org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider. hive.metastore.pre.event.listeners pre-event listener classes to be loaded on the metastore side to run code whenever databases, tables, and partitions are created, altered, or dropped. Set to org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener if metastore-side authorization is desired.