メインコンテンツまでスキップ

クラスター (レガシー) で Hive metastore テーブルアクセスコントロールを有効にする

この記事では、クラスターの組み込み Hive metastore に対してテーブルアクセスコントロールを有効にする方法について説明します。

クラスターでテーブルアクセスコントロールを有効にした後Hive metastoreセキュリティ保護可能なオブジェクトに特権を設定する方法については、「Hive metastoreの特権とセキュリティ保護可能なオブジェクト (レガシー)」を参照してください。

注記

Hive metastore テーブルアクセスコントロールは、従来のデータガバナンス モデルです。 Databricks では、そのシンプルさとアカウント中心のガバナンス モデルのために、代わりに Unity Catalog を使用することをお勧めします。 Hive metastoreによって管理されているテーブルをUnity Catalogメタストアにアップグレードできます。

クラスターでのテーブルアクセスコントロールの有効化

テーブルアクセスコントロールには2つのバージョンがあります。

テーブルアクセスコントロールは 、Machine Learning Runtimeではサポートされていません。

important

テーブルアクセスコントロールがクラスターで有効になっている場合でも、 Databricks ワークスペース管理者はファイルレベルのデータにアクセスできます。

SQL のみのテーブルアクセスコントロール

このバージョンのテーブルアクセスコントロールでは、ユーザーは SQL コマンドのみに制限されています。

クラスターで SQLのみのテーブルアクセスコントロールを有効にし、そのクラスタリングで SQL コマンドのみを使用するように制限するには、クラスターの Spark confで次のフラグを設定します:

ini
spark.databricks.acl.sqlOnly true
注記

SQL のみのテーブルアクセスコントロールへのアクセスは、管理設定ページの テーブルアクセスコントロールを有効にする設定の影響を受けません。 この設定は、 Python と SQL テーブルアクセスコントロールのワークスペース全体の有効化のみを制御します。

Python と SQL のテーブルアクセスコントロール

このバージョンのテーブルアクセスコントロールを使用すると、ユーザーはデータフレームAPIとSQLを使用するPythonコマンドを実行できます。クラスターで有効になっている場合、そのクラスター上のユーザーは次の操作を行います。

  • Spark には、Spark SQL API または データフレーム API を使用してのみアクセスできます。 どちらの場合も、テーブルとビューへのアクセスは、 オブジェクトに付与できるDatabricksのHive metastore権限 に従って管理者によって制限されます。
  • クラスター ノードでコマンドを、ファイル システムの機密性の高い部分へのアクセスや 80 と 443 以外のポートへのネットワーク接続の作成が禁止されている低特権のユーザーとして実行する必要があります。
    • 組み込みの Spark 関数のみが、80 と 443 以外のポートでネットワーク接続を作成できます。
    • ワークスペース管理者ユーザーまたは ANY FILE 権限を持つユーザーのみが、 PySpark JDBC コネクタを介して外部データベースからデータを読み取ることができます。
    • Python プロセスが追加の送信ポートにアクセスできるようにする場合は、 Spark config spark.databricks.pyspark.iptable.outbound.whitelisted.ports をアクセスを許可するポートに設定できます。 サポートされている設定値の形式は [port[:port][,port[:port]]...]で、例: 21,22,9000:9999です。 ポートは有効な範囲内、つまり 0-65535内にある必要があります。

これらの制限を回避しようとする試みは、例外で失敗します。 これらの制限は、ユーザーがクラスターを通じて特権のないデータにアクセスできないようにするために設定されています。

ワークスペースのテーブルアクセスコントロールを有効にする

ユーザーが Python を構成してテーブルアクセスコントロール SQL する前に、 Databricks ワークスペース管理者は、 Databricks ワークスペースのテーブルアクセスコントロールを有効にし、テーブルアクセスコントロールが有効になっていないクラスターへのユーザーアクセスを拒否する必要があります。

  1. 設定ページに移動します。
  2. セキュリティ タブをクリックします。
  3. テーブルアクセスコントロール オプションをオンにします。

テーブルアクセスコントロールの強制

ユーザーが必要なデータのみにアクセスできるようにするには、テーブルアクセスコントロールを有効にしたクラスターにユーザーを制限する必要があります。 特に、次のことを確認する必要があります。

  • ユーザーには、クラスターを作成する権限がありません。 テーブルアクセスコントロールなしでクラスターを作成すると、そのクラスターから任意のデータにアクセスできます。
  • ユーザーには Can Attach To テーブルアクセスコントロールが有効になっていないクラスターに対する権限はありません。

詳細については、「 コンピュートの権限 」を参照してください。

テーブルアクセスコントロールに対応したクラスターを作成する

テーブルアクセスコントロールは、 Standard アクセスモードのクラスターでデフォルトによって有効になります。

REST APIを使用してクラスターを作成するには、「新しいクラスターの作成」を参照してください。

データオブジェクトに対する権限の設定

「Hive metastore特権とセキュリティ保護可能なオブジェクト (レガシ)」を参照してください。