1. はじめに

皆さんこんにちは。

前回は「ユーザー作成」「グループへの追加」「ユーザー削除」についてご説明しました。
その続きとして、今回はAzure Databricksの「グループ作成」「グループに対するワークスペースの割り当て」「グループに対する権限割り当て」について説明していきます。

第1回:「ユーザー作成」「グループへの追加」「ユーザー削除」をしてみる
第2回:「グループ作成」「グループに対するワークスペースの割り当て」「グループに対する権限割り当て」をしてみる(今回)

以前、Databricksはグループ管理のために「Workspace-local groups」という概念を提供していました。しかし、「Workspace-local groups」を使用すると、「複数のワークスペースにグループを割り当てられない」や「Unity Catalogでデータアクセス権を付与できない」という制約がありました。
これらの制約を克服するために、Databricksは新しいグループ管理の「アカウントグループ」を提供しました。Databricks では、ワークスペースローカル グループをアカウント グループに変更して、Unity Catalog を使用した一元化されたワークスペースの割り当てとデータ アクセス管理を利用することが推奨されています。

参考URL:グループの管理 – Azure Databricks | Microsoft Learn

今回は、「アカウントグループ」の使用方法について説明していきます。

この手順の前提条件

当手順を実施する際の前提条件は以下の通りです。

  • 作業用Azure AD(Databricks)アカウントに下記権限が付与されていること
    • Databricksロール「Account Admin」
  • Azure Databricks でアカウント グループを管理するには、グループに対するグループ マネージャー ロール (パブリック プレビュー) が必要です。「Account Admin」や「Workspace Admins」の権限ではなく、「Group Manager」の権限しか持っていない場合、グループを管理するには「アカウント アクセス制御 API」を使用する必要があります。

2.Azure Databricks で「グループ作成」「グループに対するワークスペースの割り当て」「グループに対する権限割り当て」を行う

2-1.グループ作成

① マネージドアカウントにアクセスします。

② サイドバーから ユーザアイコン をクリックし、展開された画面から 「グループ」 → 「グループを追加」 をクリックします。

③「グループ名」 にグループ名を入力 → 「保存」をクリックします。

④ 作成したグループの詳細に画面が切り替わります。

⑤「メンバーを追加」 をクリックします。

⑥ 任意のユーザを選択 → 「追加」 をクリックします。

以上で、グループ作成が完了です。

2-2.グループに対するワークスペースの割り当て

① マネージドアカウントにアクセスします。

② サイドバーから ワークスペースアイコン をクリックし、展開された画面から割り当てる ワークスペース名 を選択します。

③「権限」をクリックし、展開された画面で「権限を追加」をクリックします。

④ ワークスペースに追加するグループを選択します。「権限」は、グループの用途に応じてAdmin又はUserを指定します。
※Adminはユーザ、グループ、ワークスペースを構成できる権限、Userはワークスペースにアクセスができる権限になります。

以上で、グループに対するワークスペースの割り当ては完了です。

2-3.グループに対する権限割り当て

■カタログへの権限割り当て

以下、この手順で付与できる権限です。
カタログで付与した権限はスキーマにも継承されます。

権限 説明
USE CATALOG カタログオブジェクト以下のオブジェクトにアクセスするための必須権限です
BROWSE オブジェクトのメタデータを読み取る機能を提供します
USE SCHEMA スキーマオブジェクト以下のオブジェクトにアクセスするための必須権限です
SELECT オブジェクトに読み取り権限を付与
MODIFY オブジェクトからデータを追加、削除、修正する権限
EXECUTE 関数またはモデルを使用できます
CREATE SHEMA カタログでのスキーマ作成権限を付与
CREATE TABLE テーブル作成権限を付与
APPLY TAG オブジェクトにタグを適用する機能を提供
CREATE FUNCTION スキーマでの関数の作成権限を付与
READ VOLUME
REFRESH
WRITE VOLUME
CREATE MATERIALIZED VIEW
CREATE MODEL
CREATE MODEL VERSION
CREATE VOLUME
ALL PRIVILEGES MANAGE権限、EXTERNAL USE SCHEMA権限を除くすべての権限を付与
MANAGE 権限の管理、削除、名前の変更など、オブジェクトの所有権のような機能を提供します
EXTERNAL USE SCHEMA 外部エンジンからオブジェクトにアクセスする機能を提供します

「MANAGE」と「EXTERNAL USE SCHEMA」は、ALL PRIVILEGES に含まれない権限です。

(ここから実際の手順です)

まず、ワークスペースにアクセスします。

① サイドバーから カタログイコン をクリックし、展開された画面で 「カタログ」→「権限」→「付与」 をクリックします。

② 権限を割り当てたいグループを選択し、割り当てる権限 をクリックして、「付与」をクリックします。

以上で、カタログへの権限割り当ては完了です。

■外部ロケーションの権限割り当て

以下、この手順で付与できる権限です。

権限 説明
BROWSE オブジェクトのメタデータを読み取る機能を提供する
CREATE EXTERNAL TABLE 外部ロケーションを使用してテーブル作成権限を付与
CREATE EXTERNAL VOLUME 外部ロケーションを使用してボリューム作成権限を付与
CREATE FOREIGN SECURABLE 外部カタログにあるロケーションが使用可能になります
CREATE MANAGED STORAGE メタストア、カタログ、またはスキーマでストレージルートとして場所を使用できるようにします
READ FILES ファイルの読み取り権限を付与
WRITE FILES ファイルの書き込み権限を付与
ALL PRIVILEGES MANAGE権限を除くすべての権限を付与
MANAGE 権限の管理、削除、名前の変更など、オブジェクトの所有権のような機能を提供します

「MANAGE」は ALL PRIVILEGES に含まれない権限です。

(ここから実際の手順です)
まず、ワークスペースにアクセスします。
① サイドバーからカタログアイコン をクリックし、展開された画面で 「外部データ」をクリックします。

② 権限を割り当てたい外部ロケーションを選択します。

③ 展開された画面で「付与」をクリックします。

④ 権限を割り当てたいグループを選択し、割り当てる権限 をクリック → 「付与」をクリックします。

以上で、外部ロケーションの権限割り当ては完了です。

■汎用クラスターへの権限割り当て

この手順で付与できる権限は以下の通りです

権限 説明
Can Manage(管理可能) ・コンピューティングへのノートブックのアタッチ
・Spark ジョブの表示
・コンピューティング メトリックの表示
・コンピューティングの終了
・コンピューティングの起動と再起動
・ドライバー ログの表示
・コンピューティングの編集
・コンピューティングへのライブラリのアタッチ
・コンピューティングのサイズ変更
・アクセス許
Can Restart(再起動可能) ・コンピューティングへのノートブックのアタッチ
・Spark ジョブの表示
・コンピューティング メトリックの表示
・コンピューティングの終了
・コンピューティングの起動と再起動
Can Attach to(アタッチ可能) ・コンピューティングへのノートブックのアタッチ
・Spark ジョブの表示
・コンピューティング メトリックの表示
No Permissions(アクセス許可なし) なし

参考URL:クラスターへのアクセス制御 – Azure Databricks | Microsoft Learn

Azure Databricksでは、「汎用クラスター」と「jobクラスター」の二種類のクラスタが存在します。

  • 汎用クラスター
    ノートブックを用いて複数ユーザーとコラボレーションしながらデータ分析を使う用途です。
    ※今回の手順ではこの汎用クラスターに権限設定をしていきます
  • jobクラスター
    ジョブ実行の度に作成され、実行が完了すると停止するクラスタです。
    ※汎用クラスターをジョブに指定する事も可能ですが、ジョブ実行時に毎回新規作成・停止するjobクラスターを指定する事が推奨されています

 

(ここから実際の手順です)

まず、こちらの手順でワークスペースにアクセスします。

Azure Databricksポータル画面で、サイドバーを展開します。

①「クラスター」をクリックし、表示された画面で、権限を割り当てるクラスターを選択します。

② 表示された画面から 「その他」→「権限」をクリックします。

③ 「Add users, groups, and service principals:」の下の空白枠をクリックし、権限を割り当てたいユーザ、グループ、またはサービスプリンシパルを選択します。

④ 選んだユーザ、グループ、またはサービスプリンシパルの右の権限枠をクリックし、「管理可能」「再起動が可能」「アタッチ可」から割り当てる権限を選択します。

⑤ 設定した内容がリストに入ったことが確認出来たら下部の「Save」をクリックします。

以上で、クラスタへの権限付与が完了です。

 

■SQL Warehouseに対する権限割り当て

この手順で付与できる権限は以下の通りです

尚、SQL Warehouse の所有者は、SQL Warehouse を作成した際から管理者の権限を持ちます。

権限 説明
Can Manage (管理可能) • ウェアハウスを起動する
• ウェアハウスの詳細を表示する
• ウェアハウス クエリの表示
• クエリを実行する
• [ウェアハウスの監視] タブを表示する
• ウェアハウスを停止する
• ウェアハウスを削除する
• ウェアハウスを編集する
• アクセス許可の変更
Can Monitor (モニタリング可) • ウェアハウスを起動する
• ウェアハウスの詳細を表示する
• ウェアハウス クエリの表示
• クエリを実行する
• [ウェアハウスの監視] タブを表示する
Can Use (利用可能) • ウェアハウスを起動する
• ウェアハウスの詳細を表示する
• クエリを実行する

参考URL:SQL warehouse access control – Azure Databricks | Microsoft Learn

 

(ここから実際の手順です)

まず、こちらの手順でワークスペースにアクセスします。

Azure Databricksポータル画面で、サイドバーを展開します。

① サイドバーから 「SQLウェアハウス」 をクリックします。

② 権限を割り当てるSQL Warehouse名の右にある、3点リーダー → 「権限」をクリックします。

③ 一覧に出ているユーザーの権限を変えるときは赤枠部分から 「利用可能」 、 「モニタリング可」 または 「管理可能」のいずれかを選択します。

④ 一覧に出ていないユーザーに権限を付ける場合は、赤枠をクリックし、任意のユーザーを選択します。

⑤ ユーザーの権限を付与し 「追加」をクリックします。

以上で、SQL Warehouseへの権限付与が完了です。

4. まとめ

本記事ではAzure Databricksで「グループ作成」「グループに対するワークスペースの割り当て」「グループに対する権限割り当て」について説明しました。

これらの手順を組み合わせる事で、細かな権限管理が可能となります。

 

本連載では、
第1回:「ユーザー作成」「グループへの追加」「ユーザー削除」をしてみる
第2回:「グループ作成」「グループに対するワークスペースの割り当て」「グループに対する権限割り当て」をしてみる(今回)
についてご説明しました。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

双日テックイノベーションでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

Azure Databricks連載記事のまとめはこちら
お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

尾島健介