Workspace object access control — Databricks Documentation [2021/1/26時点]の翻訳です。
Databricksクイックスタートガイドのコンテンツです。
注意 アクセスコントロールはPremium Plan以上で利用可能です。
ワークスペースアクセスコントロールを有効化しない限り、デフォルトで全てのユーザは、フォルダ、ノートブック、エクスペリメント、モデルを含むワークスペースのオブジェクトを作成、変更することができます。ワークスペースオブジェクトのアクセスコントロールによって、個々の権限がユーザの能力を規定することができます。本記事では、個々の権限及びどのようにワークスペースオブジェクトのアクセスコントロールを設定するのかを説明します。
ワークスペースオブジェクトのアクセスコントロールを利用するためには、DatabricksのAdministratorがワークスペースで機能を有効化する必要があります。ワークスペースオブジェクトのアクセスコントロールの有効化を参照ください。
本記事では以下を説明します:
- フォルダのアクセス権
- ノートブックのアクセス権
- ノートブック、フォルダのアクセス権設定
- MLflowエクスペリメントのアクセス権
- MLflowエクスペリメントのアクセス権設定
- MLflowモデルのアクセス権
- ライブラリとジョブのアクセスコントロール
フォルダのアクセス権
フォルダに対しては、5つのレベルのアクセス権を設定できます:No Permissions(アクセス権なし)、Read(読み取り)、Run(実行)、Edit(編集)、Manage(管理)です。下のテーブルに、それぞれのアクセス権で何ができるのかを示します。
できること | No Permissions | Read | Run | Edit | Manage |
---|---|---|---|---|---|
フォルダ内のアイテム一覧を表示 | x | x | x | x | x |
フォルダ内のアイテムを参照 | x | x | x | x | |
アイテムのコピー及びエクスポート | x | x | x | x | |
アイテムの作成、インポート、削除 | x | ||||
アイテムのリネーム、移動 | x | ||||
アクセス権の変更 | x |
フォルダ内のノートブックとエクスペリメントはフォルダのアクセス権を継承します。例えば、フォルダにおいてRunの権限を持つユーザーは、フォルダ内のノートブックに対してもRunのアクセス権を持ちます。
デフォルトのフォルダアクセス権
-
ワークスペースオブジェクトのアクセスコントロールに関わらず、以下のアクセス権が存在します:
- 全てのユーザーは、Workspace > Sharedフォルダにあるアイテムに対してManage権限を持ちます。ノートブックをSharedフォルダに移動することで、Manage権限を許可することになります。
- 全てのユーザーは、自身が作成したオブジェクトに対してManage権限を持ちます。
-
ワークスペースオブジェクトのアクセスコントロールが無効になっている場合、以下のアクセス権が存在します:
- 全てのユーザーはWorkspaceフォルダ内の全てのアイテムに対してEdit権限を持ちます。
-
ワークスペースオブジェクトのアクセスコントロールが有効になった場合、以下のアクセス権が存在します:
-
Workspaceフォルダ
- 管理者のみがWorkpsaceフォルダ内にアイテムを作成できます。
- Workspaceフォルダに既にあるアイテムに関してはManage権限を持つことになります。例えば、WorkspaceフォルダにDocumentsとTempフォルダが存在した場合、全てのユーザーはそれらのフォルダに対するManage権限を持ち続けることになります。
- Workspaceフォルダに作成されたアイテムに対してはアクセス権がありません。
- ユーザーのアクセス権はフォルダに対して設定されるので、フォルダにアクセス権を設定した後においては、ユーザーは、作成されたアイテムであろうが、移動してきたアイテムであろうが全て同じアクセス権を持つことになります。
- ユーザーのホームディレクトリに対しては、当該ユーザーはManage権限をもち、他のユーザーはアクセス権がありません。
-
Workspaceフォルダ
ノートブックのアクセス権
ノートブックに対しては、5つのレベルのアクセス権を設定できます。:No Permissions(アクセス権なし)、Read(読み取り)、Run(実行)、Edit(編集)、Manage(管理)です。下のテーブルに、それぞれのアクセス権で何ができるのかを示します。
できること | No Permissions | Read | Run | Edit | Manage |
---|---|---|---|---|---|
セルの参照 | x | x | x | x | |
コメント | x | x | x | x | |
%runあるいはノートブックワークフローによる実行 | x | x | x | x | |
ノートブックのアタッチ、デタッチ | x | x | x | ||
コマンドの実行 | x | x | x | ||
セルの編集 | x | x | |||
アクセス権の変更 | x |
ノートブック、フォルダのアクセス権設定
注意 本章ではUIによるアクセス権管理方法を説明します。Permissions APIによる管理も可能です。
-
Permissionsダイアログを開きます
-
ユーザーあるいはグループにアクセス権を設定するためには、Add Users and Groupsドロップダウンでユーザー、グループを選択し、アクセス権を選択後Addをクリックします。
ユーザー、グループのアクセス権を変更する場合には、permissionドロップダウンから権限を選択します。
MLflowエクスペリメントのアクセス権
MLflowエクスペリメントに対しては4つのレベルのアクセス権を設定できます:No Permissions(アクセス権なし)、Read(読み取り)、Edit(編集)、Manage(管理)です。下のテーブルに、それぞれのアクセス権で何ができるのかを示します。
できること | No Permissions | Read | Edit | Manage |
---|---|---|---|---|
Run情報の参照、検索、Runの比較 | x | x | x | |
Runアーティファクトの参照、一覧、ダウンロード | x | x | x | |
Runの作成、削除、リストア | x | x | ||
Runパラメータ、メトリクス、タグのロギング | x | x | ||
Runアーティファクトのロギング | x | x | ||
エクスペリメントのタグの編集 | x | x | ||
Runとエクスペリメントの削除 | x | |||
アクセス権の設定 | x |
注意
- エクスペリメントに対するアクセス権は、MLflowで管理されるDBFSに格納されたアーティファクトにのみ適用されます。詳細は、MLflowアーティファクトのアクセス権を参照ください。
- エクスペリメントの作成、削除、リストアを行うためには、エクスペリメントを格納するフォルダのEdit、Manage権限が必要となります。
- エクスペリメントに対してRun権限を指定することはできますが、これはEdit権限と等価となります。
MLflowエクスペリメントのアクセス権設定
- ExperimentのドロップダウンPermissionsダイアログを開きます。
- Permissionを設定します。全てのユーザーはall usersグループに所属しています。Administratorはadminsグループに属しており、全てのアイテムに対するManage権限を持っています。ユーザー、グループに対してpermissionを設定するためには、Add Users and Groupsドロップダウンからユーザー、グループを選択し、permissionを選択したあとAddをクリックします:
Permissionを変更するには、新たなpermissionをドロップダウンから選択します。
- Save Changesをクリックして保存するか、Cancelをクリックして変更を取り消します。
MLflowアーティファクトのアクセス権
個々のMLflowエクスペリメントはMLflow Runとしてロギングされるアーティファクトを格納するArtifact Locationを有しています。MLflow 1.11以降、デフォルトでアーティファクトはDatabricks File System (DBFS)にあるMLflow管理のサブディレクトリに格納されます。MLflowエクスペリメントに対するアクセス権は、dbfs:/databricks/mlflow-tracking
のプレフィクスを持つArtifact Locationに格納されたアーティファクトにも適用されます。アーティファクトをロギングあるいはダウンロードするためには、関連づけられているMLflowエクスペリメントに対して適切なアクセス権を持つ必要があります。
注意
MLflowモデルのアクセス権
MLflowモデルレジストリに登録されたMLflowモデルに対しては、6つのレベルのアクセス権を設定できます:No Permissions(アクセス権なし)、Read(読み取り)、Edit(編集)、Manage Staging Versions(ステージングバージョンの管理)、Manage Production Versions(プロダクションバージョンの管理)、Manage(管理)です。以下のテーブルに権限ごとにできることを示します。
| できること| No Permissions | Read | Edit | Manage Staging Versions | Manage Production Versions | Manage |
|:--|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|モデルの作成 |x |x |x |x |x |x |
|モデル詳細、バージョン、ステージ変更リクエスト、アクティビティ、アーティファクトダウンロードURIの表示 | | x |x |x |x |x |
|モデルバージョンステージ変更依頼 | | x | x | x | x | x |
|新バージョンのモデルの追加 | | | x | x | x | x |
|モデルの記述更新 | | | x | x | x | x |
|モデルのステージング状態の変更 | | | | x(None/Archived/Stagingのみ) | x | x |
|モデルのステージング状態変更リクエストの承認・却下 | | | | x(None/Archived/Stagingのみ) | x| x |
|モデルのステージング状態変更リクエストのキャンセル(注意) | | | | | | x |
|アクセス権の変更 | | | | | | x |
|モデル名の変更 | | | | | | x |
|モデル及びバージョンの削除 | | | | | | x |
リクエストのキャンセル
- ステージング状態変更リクエストをした本人は、リクエストをキャンセルできます。
デフォルトのMLflowモデルのアクセス権
-
ワークスペースオブジェクトのアクセスコントロールに関わらず、以下のアクセス権が存在します:
- 全てのユーザーは新たにレジストリにモデルを作成する権限を持ちます。
- 全てのAdministratorは、全てのモデルに対してManage権限を持ちます。
-
ワークスペースオブジェクトのアクセスコントロールが無効になっている場合、以下のアクセス権が存在します:
- 全てのユーザーは全てのモデルに対してManage権限を持ちます。
-
ワークスペースオブジェクトのアクセスコントロールが有効になった場合、以下のアクセス権が存在します:
- 全てのユーザーは、自身が作成したモデルに対してManage権限を持ちます。
- Administratorではないユーザーは、自身が作成していないモデルに対しては権限を持ちません(No Permissions)。
MLflowモデルのアクセス権設定
全てのユーザーはall users
グループに属します。Administratorは、全てのオブジェクトに対してManage権限を持つadmins
グループに属します。
注意 本章ではUIによるアクセス権管理方法を説明します。Permissions APIによる管理も可能です。
- サイドバーのアイコンをクリックします。
- モデル名をクリックします。
- モデル名の右のをクリックしPermissionsを選択します。
-
Select User or Groupドロップダウンからユーザー、グループを選択します。
- Permissionを選択します。ユーザー、グループのpermissionを変更するには、新たなpermissionをドロップダウンから選択します。
- Addをクリックします。
- Saveをクリックして保存するか、Cancelをクリックして変更を取り消します。
MLflowモデルのアーティファクトのアクセス権
個々のMLflowモデルバージョンのモデルファイルは、dbfs:/databricks/model-registry/
のプレフィクスを持つMLflow管理のサブディレクトリに格納されます。
モデルバージョンファイルの正確な位置を取得するためには、モデルに対するRead権限を持っている必要があります。REST APIのエンドポイント/api/2.0/mlflow/model-versions/get-download-uri
を用いることができます。URIを取得した後で、DBFS APIを用いてファイルをダウンロードすることができます。
MLflowクライアント(Python/Java/R)を用いることで、mlflow.<flavor>.load_model()
のようにワークフローをラッピングした便利なメソッドを使用して、モデルをダウンロード、ロードすることができます。
注意
dbutilsや%fs
では、MLflow管理のサブディレクトリにアクセスできません。
ライブラリとジョブのアクセスコントロール
全てのユーザーはライブラリを参照できます。ライブラリをクラスターにアタッチできるユーザーを制御するためには、Cluster access controlを参照ください。誰がジョブを実行できるか、ジョブ実行結果を参照できるのかを制御するにはJobs access controlを参照ください。