クラスター (レガシ) で Hive metastore テーブルアクセスコントロールを有効にする
この記事では、クラスターの組み込み Hive metastore に対してテーブルアクセスコントロールを有効にする方法について説明します。
クラスターでテーブルアクセスコントロールを有効にした後Hive metastoreセキュリティ保護可能なオブジェクトに特権を設定する方法については、「特権とセキュリティ保護可能なオブジェクト (レガシ)」Hive metastoreを参照してください。
Hive metastore テーブルアクセスコントロールは、従来のデータガバナンス モデルです。 Databricks では、そのシンプルさとアカウント中心のガバナンス モデルのために、代わりに Unity Catalog を使用することをお勧めします。 Hive metastoreによって管理されているテーブルをUnity Catalogメタストアにアップグレードできます。
Enable テーブルアクセスコントロール for a clustering
テーブルアクセスコントロールには2つのバージョンがあります。
- SQL-only テーブルアクセスコントロールは、ユーザーをSQLコマンドに制限します。
- Python and SQL テーブルアクセスコントロールを使用すると、ユーザーは SQL、Python、および PySpark コマンドを実行できます。
テーブルアクセスコントロールは 、Machine Learning Runtimeではサポートされていません。
テーブルアクセスコントロールがクラスターで有効になっている場合でも、 Databricks ワークスペース管理者はファイルレベルのデータにアクセスできます。
SQL only テーブルアクセスコントロール
このバージョンのテーブルアクセスコントロールでは、ユーザーは SQL コマンドのみに制限されています。
クラスターで SQL-only テーブルアクセスコントロールを有効にし、そのクラスターで SQL コマンドのみを使用するように制限するには、次のように設定します。 クラスターの Spark conf の次のフラグ:
spark.databricks.acl.sqlOnly true
SQL のみのテーブルアクセスコントロールへのアクセスは、管理設定ページの [テーブルアクセスコントロールを有効にする ] 設定の影響を受けません。 この設定は、 Python と SQL テーブルアクセスコントロールのワークスペース全体の有効化のみを制御します。
Python and SQL テーブルアクセスコントロール
このバージョンのテーブルアクセスコントロールを使用すると、ユーザーはPython と を使用する コマンドを実行できます。DataFrameAPISQLいつ クラスターで有効になっている場合、そのクラスターのユーザーは次の操作を行います。
- Spark には、Spark SQL API または DataFrame API を使用してのみアクセスできます。 どちらの場合も、テーブルとビューへのアクセスは、 オブジェクトに付与できるDatabricksHive 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 ワークスペースのテーブルアクセスコントロールを有効にし、テーブルアクセスコントロールが有効になっていないクラスターへのユーザーアクセスを拒否する必要があります。
- 設定ページに移動します。
- [セキュリティ ] タブをクリックします。
- テーブルアクセスコントロール オプションをオンにします。
Enforce テーブルアクセスコントロール
ユーザーが必要なデータのみにアクセスできるようにするには、テーブルアクセスコントロールを有効にしたクラスターにユーザーを制限する必要があります。 特に、次のことを確認する必要があります。
- ユーザーには、クラスターを作成する権限がありません。 テーブルアクセスコントロールなしでクラスターを作成すると、そのクラスターから任意のデータにアクセスできます。
- ユーザーには Can Attach To テーブルアクセスコントロールが有効になっていないクラスターに対する権限はありません。
詳細については、「 コンピュート permissions 」を参照してください。
テーブルアクセスコントロールに対応したクラスターを作成する
テーブルアクセスコントロールは、 Standard アクセスモードのクラスターでデフォルトによって有効になります。
REST APIを使用してクラスターを作成するには、「新しいクラスターの作成」を参照してください。