チュートリアル: ワークスペースアクセスにロールを想定するようにユーザーに要求する
役割ベースのアクセス制御 (RBAC) を使用して、選択したユーザーが Databricks ワークスペースにアクセスする際に特定のロールを想定するように要求します。ワークスペースセッションはロールの権限を使用するため、アクセスは特定のプロジェクトまたはタスクに限定されます。同じワークスペースに割り当てられている他のユーザーは、引き続き自身のユーザーIDとしてアクセスできます。
シナリオ
trial-researchersのメンバーは、trialsワークスペースで臨床試験に取り組んでいます。彼らは、他のプロジェクトへのアクセス権を付与するグループにも属しています。ユーザーのIDは、それらのグループおよびグループの親グループから権限を継承します。
role-trial-researcher に trial_data カタログへのアクセス権を持つ trial-researchers を作成し、それを引き受ける権限を付与します。ロールをワークスペースに割り当てます。次に、研究者はロールとしてワークスペースに入ります。ロールの権限は、そのセッションのユーザーID権限を置き換えます。一般的な入室動作については、「ワークスペースに入室するためにロールを引き受ける必要がある場合」を参照してください。
前提条件
- RBAC を有効にした Unity Catalog 対応ワークスペース。RBAC を有効にするを参照してください。
- ロールの作成、Assume 権限の付与、およびワークスペース割り当ての管理を行うためのアカウント管理者またはワークスペース管理者権限。「グループを管理できるユーザー」を参照してください。
- ロールが読み取る必要があるカタログの所有権、または
MANAGE。 - ワークスペース管理者権限、または例で使用するSQLウェアハウスの「Can manage」権限。
- 研究者を含むアカウントグループ、クエリー対象の既存テーブル、およびSQLウェアハウス。このチュートリアルでは、
trial-researchers、trial_data.research.observations、およびtrialsワークスペースを使用します。全体を通して、独自の名前に置き換えてください。 trial-researchers内のユーザーはDatabricksアカウントに存在しますが、直接または入れ子になったグループを含むグループメンバーシップを通じてtrialsワークスペースに割り当てられていません。trial-researchersの研究者とtrialsに割り当てられたままの別のユーザーは、両方とも独自のサインインを使用してアクセスを検証できます。- そのロールの下での研究者の活動を検証するために
system.access.auditにアクセスできる監査リーダー。「監査属性の検証」を参照してください。
研究者がすでにワークスペースにアクセスできる場合は、ダイレクトユーザー割り当てとグループ割り当てを削除する手順を参照してください。グループの割り当てを削除すると、そのグループの他のメンバーにも影響します。
ステップ 1: ロールを作成する
このチュートリアルでは、ロールとして機能する空のアカウントグループを作成します。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ] タブで、[ グループの追加 ] をクリックします。
role-trial-researcherを入力してください。メンバーを追加しないでください。- 確認 をクリックします。
- グループを、 ワークスペースアクセス と Databricks SQLアクセス を持つ
trialsに割り当てます。ワークスペースにグループを割り当てるを参照してください。
- ワークスペース管理者として、
trialsワークスペースにログインします。 - 上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [ グループ ] の横にある [ 管理 ] をクリックします。
- [ グループを追加 ]をクリックし、[ 新規追加 ]をクリックします。
role-trial-researcherを入力し、 ワークスペースアクセス と Databricks SQLアクセス を選択します。- 追加 をクリックします。メンバーを追加しないでください。
ワークスペース管理設定からグループを作成すると、そのグループがtrialsにも割り当てられ、そのグループに対する「管理」権限が付与されます。
このグループは空のままにします。ワークスペースに割り当てられたグループのメンバーは、ワークスペースの割り当てを継承し、自分自身としてログインできます。次のステップでは、メンバーシップの代わりに、研究者にAssume権限を付与します。
このロールは、 ワークスペースアクセス および Databricks SQLアクセス を持つtrialsに割り当てられるため、研究者はそのロールとしてアクションを実行しながら、SQLエディターとコアワークスペース機能を使用できます。各権限で許可される内容については、 「アクセス権限」を参照してください。データ権限とSQLウェアハウス権限は、ステップ3で個別に設定します。
ステップ2: 研究者にロールを引き受ける権限を付与する
trial-researchersにAssume権限を付与します。ワークスペース管理設定を使用する場合、role-trial-researcherに対する管理権限が必要です。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールの [ ユーザー管理 ] を開きます。
- グループ tabで、
role-trial-researcherをクリックします。 - アクセス許可 tabをクリックし、 アクセス許可の付与 をクリックします。
trial-researchersを検索して選択し、 Assume を選択して、 Save をクリックします。
- ワークスペース管理者は、
trialsで [設定] > [ IDとアクセス] を開きます。 - [グループ] の横にある [管理] をクリックし、
role-trial-researcherを選択します。 - アクセス許可 tabをクリックし、 アクセス許可の付与 をクリックします。
trial-researchersを検索して選択し、 Assume を選択して、 Save をクリックします。
研究者は現在、自分のユーザーIDとしてロールの権限を継承することなく、Assume権限を持っています。
ステップ3: ロールに試用データへのアクセス権を付与する
カタログ所有者、またはtrial_dataに対するMANAGEを持つユーザーとして、ノートブックまたはSQLエディターでこのステートメントをランします:
GRANT USE CATALOG, USE SCHEMA, SELECT ON CATALOG trial_data TO `role-trial-researcher`;
これらのカタログレベルの許可により、ロールは trial_data 内の現在および将来のすべてのテーブルとビューを読み取ることができます。制限されたアクセス権にする場合は、カタログレベルの許可を trial_data の USE CATALOG、必要なスキーマの USE SCHEMA、および特定のテーブルの SELECT に置き換えます。「権限の継承」を参照してください。
ワークスペース管理者またはSQLウェアハウスに対する「管理可能」権限を持つユーザーとして、warehouseへのロールアクセスを付与します。
- ワークスペースのサイドバーで、[ SQL ウェアハウス ] をクリックします。
- Warehouseの横にある
ケバブメニューをクリックし、 権限 をクリックします。
- Can use で
role-trial-researcherを追加します。
ロールは、親グループから権限を継承します。defaultでは、ワークスペースの users システムグループおよびアカウントの account users システムグループに付与された権限を継承します。共有付与を変更すると、それを継承する他のユーザーやロールに影響します。ロール権限の適用方法をご覧ください。
ステップ 4:研究者としてワークスペースに入る
ある研究者が自分のサインインを使用してこれらのステップを完了します:
trialsワークスペースを開き、ログインします。そこで想定できる役割がrole-trial-researcherだけである場合は、その役割で自動的に入ります。- 複数のロールを引き受けることができる場合は、 このワークスペースにアクセスするにはロールを引き受ける必要があります ページの ロールの引き受け ドロップダウンメニューから
role-trial-researcherを選択し、 続行 をクリックします。メニューには、trialsで引き受けることができるロールがリストされています。 role-trial-researcherがトップバーのワークスペース名の下に表示されていることを確認します。
ステップ 5: 結果を検証する
同じ研究者がこれらのチェックを続行します。
-
上部バーのワークスペース名をクリックし、現在のワークスペースにカーソルを合わせてロールスイッチャーを開きます。ユーザーIDが使用できないため、切り替えることができません。
trialsで引き受ける権限を持つ別のロールに切り替えることができます。 -
SQLエディターを開き、ステップ3で付与されたSQL warehouseを選択して、次を実行します:
SQLSELECT * FROM trial_data.research.observations LIMIT 10;クエリーは、ロールの権限を使用して成功します。
trialsに割り当てられたままの別のユーザーが自分のアカウントを使ってサインインし、自分のユーザーIDとして入れることを確認します。
監査リーダーはsystem.access.auditで研究者のクエリーイベントを検査します: identity_metadata.run_asは承認ロールを識別し、run_byはリクエストを開始した研究者を識別します。対応するrun_as_display_nameおよびrun_by_display_nameフィールドには、人間が読み取れる名前が含まれています。監査データは1日を通して更新されるため、最近のイベントがすぐに表示されないことがあります。
オプション: プログラムでワークスペースにアクセスする
ワークスペースの割り当てがない研究者は、Databricks CLI で認証する際にもロールを引き受ける必要があります。参加している研究者は、「Databricks CLIのインストールまたはアップデート」の説明に従ってDatabricks CLIをインストールし、自分のサインインと名前付きプロファイルを使用してログインします。
databricks auth login --host <workspace-url> --profile trial-researcher
リサーチャーはブラウザーで Authorize as.. の下の role-trial-researcher を選択し、 Continue をクリックします。それ以降のコマンドで --profile trial-researcher を使用します。Databricks CLIを参照してください。
クリーンアップ
ロール、データ権限、Warehouseアクセスを構成した管理者は、このチュートリアルで作成した付与と割り当てを削除します。
- チュートリアルのAssume権限の付与とロールのワークスペース割り当てを削除します。他のワークロードで使用されている権限付与または割り当ては保持します。
- このチュートリアル用に作成されたロールの
trial_dataおよびwarehouseの権限を削除します。ロールを削除する前に、そのロールが所有するアセットを確認します。
次のステップ
-
- チュートリアル: RBAC を使用したモデルの排他的アクセス
- ユーザーが自分自身としてワークスペースに入ることができる場合を含め、意図的なロールの引き受けを要求することで、プロジェクト、クライアント、またはユースケースごとのデータを分離します。
-
- RBAC ロールの切り替え
- ワークスペース UI、Databricks CLI、その他のサポートされている方法を使用してロールを引き受けます。
-
- ロールベースのアクセス制御 (RBAC) の制限
- ロールとして実行するときに、サポートされていない機能や動作が異なる機能を確認します。