メインコンテンツまでスキップ

チュートリアル: ワークスペースアクセスにロールを想定するようにユーザーに要求する

役割ベースのアクセス制御 (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: ロールを作成する​

このチュートリアルでは、ロールとして機能する空のアカウントグループを作成します。

  1. アカウント管理者として、アカウントコンソールにログインします。
  2. サイドバーで、[ ユーザー管理 ] をクリックします。
  3. [ グループ ] タブで、[ グループの追加 ] をクリックします。
  4. role-trial-researcher を入力してください。メンバーを追加しないでください。
  5. 確認 をクリックします。
  6. グループを、 ワークスペースアクセス と Databricks SQLアクセス を持つtrialsに割り当てます。ワークスペースにグループを割り当てるを参照してください。

このグループは空のままにします。ワークスペースに割り当てられたグループのメンバーは、ワークスペースの割り当てを継承し、自分自身としてログインできます。次のステップでは、メンバーシップの代わりに、研究者にAssume権限を付与します。

このロールは、 ワークスペースアクセス および Databricks SQLアクセス を持つtrialsに割り当てられるため、研究者はそのロールとしてアクションを実行しながら、SQLエディターとコアワークスペース機能を使用できます。各権限で許可される内容については、 「アクセス権限」を参照してください。データ権限とSQLウェアハウス権限は、ステップ3で個別に設定します。

ステップ2: 研究者にロールを引き受ける権限を付与する​

trial-researchersにAssume権限を付与します。ワークスペース管理設定を使用する場合、role-trial-researcherに対する管理権限が必要です。

  1. アカウント管理者として、アカウントコンソールの [ ユーザー管理 ] を開きます。
  2. グループ tabで、role-trial-researcher をクリックします。
  3. アクセス許可 tabをクリックし、 アクセス許可の付与 をクリックします。
  4. trial-researchersを検索して選択し、 Assume を選択して、 Save をクリックします。

研究者は現在、自分のユーザーIDとしてロールの権限を継承することなく、Assume権限を持っています。

ステップ3: ロールに試用データへのアクセス権を付与する​

カタログ所有者、またはtrial_dataに対するMANAGEを持つユーザーとして、ノートブックまたはSQLエディターでこのステートメントをランします:

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へのロールアクセスを付与します。

  1. ワークスペースのサイドバーで、[ SQL ウェアハウス ] をクリックします。
  2. Warehouseの横にある ケバブメニューアイコン。 ケバブメニューをクリックし、 権限 をクリックします。
  3. Can use で role-trial-researcher を追加します。

ロールは、親グループから権限を継承します。defaultでは、ワークスペースの users システムグループおよびアカウントの account users システムグループに付与された権限を継承します。共有付与を変更すると、それを継承する他のユーザーやロールに影響します。ロール権限の適用方法をご覧ください。

ステップ 4:研究者としてワークスペースに入る​

ある研究者が自分のサインインを使用してこれらのステップを完了します:

  1. trials ワークスペースを開き、ログインします。そこで想定できる役割が role-trial-researcher だけである場合は、その役割で自動的に入ります。
  2. 複数のロールを引き受けることができる場合は、 このワークスペースにアクセスするにはロールを引き受ける必要があります ページの ロールの引き受け ドロップダウンメニューから role-trial-researcher を選択し、 続行 をクリックします。メニューには、 trials で引き受けることができるロールがリストされています。
  3. role-trial-researcher がトップバーのワークスペース名の下に表示されていることを確認します。

ステップ 5: 結果を検証する​

同じ研究者がこれらのチェックを続行します。

  1. 上部バーのワークスペース名をクリックし、現在のワークスペースにカーソルを合わせてロールスイッチャーを開きます。ユーザーIDが使用できないため、切り替えることができません。trialsで引き受ける権限を持つ別のロールに切り替えることができます。

  2. SQLエディターを開き、ステップ3で付与されたSQL warehouseを選択して、次を実行します:

    SQL
    SELECT * 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をインストールし、自分のサインインと名前付きプロファイルを使用してログインします。

Bash
databricks auth login --host <workspace-url> --profile trial-researcher

リサーチャーはブラウザーで Authorize as.. の下の role-trial-researcher を選択し、 Continue をクリックします。それ以降のコマンドで --profile trial-researcher を使用します。Databricks CLIを参照してください。

クリーンアップ​

ロール、データ権限、Warehouseアクセスを構成した管理者は、このチュートリアルで作成した付与と割り当てを削除します。

  1. チュートリアルのAssume権限の付与とロールのワークスペース割り当てを削除します。他のワークロードで使用されている権限付与または割り当ては保持します。
  2. このチュートリアル用に作成されたロールのtrial_dataおよびwarehouseの権限を削除します。ロールを削除する前に、そのロールが所有するアセットを確認します。

次のステップ​