テーブル Access Control を有効にする Enable Table Access Control

注意

アクセス制御にはAzure Databricks Premium プランが必要です。Access control requires the Azure Databricks Premium Plan.

テーブルアクセスコントロールを使用すると、Azure Databricks ビューベースのアクセス制御モデルを使用して、データへのアクセスをプログラムで許可および取り消すことができます。Table access control lets you programmatically grant and revoke access to your data using the Azure Databricks view-based access control model.

テーブルアクセス制御を設定するには、次の操作を行う必要があります。To set up table access control, you must:

このトピックでは、テーブルアクセス制御を有効にして適用する方法について説明します。This topic describes how to enable and enforce table access control.

テーブルアクセス制御を有効にした後にデータオブジェクトに対する権限を設定する方法については、「データオブジェクトに対する権限の設定」を参照してください。For information about how to set permissions on a data object once table access control is enabled, see Set Permissions on a Data Object.

手順 1: クラスターのテーブルアクセス制御を有効にするStep 1: Enable table access control for a cluster

テーブルアクセス制御は、次の2つのバージョンで使用できます。Table access control is available in two versions:

  • SQL のみのテーブルアクセス制御: 次の操作を行います。SQL-only table access control, which:
    • は一般公開されています。Is generally available.
    • クラスターユーザーを SQL コマンドに制限します。Restricts cluster users to SQL commands. ユーザーは SparkSQL API に制限されているため、 Python、、R、RDD api、または DBUtils などのクラウドストレージから直接データを読み取るクライアントを使用することはできませんUsers are restricted to the SparkSQL API, and therefore cannot use Python, Scala, R, RDD APIs, or clients that directly read the data from cloud storage, such as DBUtils.
    • クラスターが3.1 以上 Databricks Runtime 実行されている必要があります。Requires that clusters run Databricks Runtime 3.1 or above.
  • Python と SQL table access control (Beta):Python and SQL table access control (Beta), which:
    • はベータ版です。Is in Beta.
    • ユーザーが SQL、Python、および PySpark コマンドを実行できるようにします。Allows users to run SQL, Python, and PySpark commands. ユーザーは SparkSQL API とデータフレーム API に制限されているため、 DBUtils などのクラウドストレージから直接データを読み取る、スケール a、R、RDD api、またはクライアントを使用することはできません。Users are restricted to the SparkSQL API and DataFrame API, and therefore cannot use Scala, R, RDD APIs, or clients that directly read the data from cloud storage, such as DBUtils.
    • クラスターが3.5 以上 Databricks Runtime 実行されている必要があります。Requires that clusters run Databricks Runtime 3.5 or above.

SQL のみのテーブルアクセス制御SQL-only table access control

このバージョンのテーブルアクセスコントロールは、クラスター上のユーザーを SQL コマンドのみに制限します。This version of table access control restricts users on the cluster to SQL commands only.

クラスターで SQL のみのテーブルアクセス制御を有効にし、そのクラスターが SQL コマンドのみを使用するように制限するには、クラスターのSpark confで次のフラグを設定します。To enable SQL-only table access control on a cluster and restrict that cluster to use only SQL commands, set the following flag in the cluster’s Spark conf:

spark.databricks.acl.sqlOnly true

Python と SQL table access control ( ベータ) Python and SQL table access control (Beta)

このバージョンのテーブルアクセスコントロールでは、データフレーム API と SQL を使用する Python コマンドをユーザーが実行できます。This version of table access control lets users run Python commands that use the DataFrame API as well as SQL. クラスターで有効になっている場合、そのクラスターまたはプールのユーザーは次のようになります。When it is enabled on a cluster, users on that cluster or pool:

  • Spark SQL API またはデータフレーム API を使用してのみ Spark にアクセスできます。Can access Spark only via the Spark SQL API or DataFrame API. どちらの場合も、テーブルおよびビューへのアクセスは、Azure Databricksビューベースのアクセス制御モデルに従って、管理者によって制限されます。In both cases, access to tables and views is restricted by administrators according to the Azure Databricks View-based access control model.
  • DBFS 経由で、またはクラウドプロバイダーのメタデータサービスから資格情報を読み取ることによって、クラウド内のデータへの直接アクセスを取得できません。Cannot acquire direct access to data in the cloud via DBFS or by reading credentials from the cloud provider’s metadata service.
  • では、低い特権のユーザーがファイルシステムの機密部分にアクセスしたり、80および443以外のポートへのネットワーク接続を作成したりすることが禁止されているため、クラスターノードでコマンドを実行する必要があります。Must run their commands on cluster nodes as a low-privilege user forbidden from accessing sensitive parts of the filesystem or creating network connections to ports other than 80 and 443. 組み込みの Spark 関数だけが、80および443以外のポートでネットワーク接続を作成できます。Only built-in Spark functions will be able to create network connections on ports other than 80 and 443. 引き続き、 pyspark jdbc コネクタを使用して外部データベースからデータを読み取ることができます。You should still be able to read data from external databases through pyspark jdbc connector.

これらの制限を回避しようとすると、例外が発生して失敗します。Attempts to get around these restrictions will fail with an exception. これらの制限は、ユーザーがクラスターを介して特権のないデータにアクセスできないようにするために設けられています。These restrictions are in place so that your users can never access unprivileged data through the cluster.

Python と SQL table のアクセス制御のためにクラスターを有効にするには、2つの手順を実行します。There are two steps to enabling a cluster for Python and SQL table access control.

アカウントレベルでテーブルアクセス制御を有効にするEnable table access control at the account level

  1. 管理コンソールにログインします。Log in to the Admin Console.
  2. [Access Control] タブにアクセスします。Go to the Access Control tab.
  3. クラスター Access Controlが有効になっていることを確認します。Ensure that Cluster Access Control is enabled. クラスターアクセス制御が既に有効になっていない場合、テーブルアクセス制御を有効にすることはできません。You cannot enable table access control without having cluster access control already enabled.
  4. テーブル Access Controlの横にある 有効 ボタンをクリックします。Next to Table Access Control, click the Enable button.

テーブルアクセス制御が有効になっているクラスターを作成する Create a cluster enabled for table access control

注意

このチェックボックスは、高い同時実行クラスターに対してのみ使用できます。The checkbox is available only for high concurrency clusters.

クラスターを作成するときに、[テーブルのアクセス制御を有効にする] と [Python と SQL コマンドのみを許可する] オプションをクリックします。When you create a cluster, click the Enable table access control and only allow Python and SQL commands option.

no-代替テキスト no-alternative-text

REST API を使用してクラスターを作成するには、「テーブルアクセス制御の有効化の例」を参照してください。To create the cluster using the REST API, see Enable table access control example.

手順 2: テーブルアクセス制御を適用するStep 2: Enforce table access control

ユーザーが必要なデータのみにアクセスできるようにするには、テーブルアクセス制御が有効になっているクラスターにユーザーを制限する必要があります。To ensure that your users access only the data that you want them to, you must restrict your users to clusters with table access control enabled. 特に、次のことを確認する必要があります。In particular, you should ensure that:

  • ユーザーにはクラスターを作成するアクセス許可がありません。Users do not have permission to create clusters. テーブルアクセス制御なしでクラスターを作成すると、そのクラスターのデータにアクセスできます。If they create a cluster without table access control, they can access any data from that cluster.

    no-代替テキスト no-alternative-text

  • ユーザーは、テーブルアクセス制御が有効になっていないクラスターに対して、権限をアタッチすることはできません。Users do not have Can Attach To permission for any cluster that is not enabled for table access control.

詳細については、「 Cluster Access Control 」を参照してください。See Cluster Access Control for more information.

データオブジェクトに対する権限を設定できるようになりました。Now you can Set Permissions on a Data Object.