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

RBACロールを切り替える

Databricks で役割ベースのアクセス制御(RBAC)を使用して役割を想定する方法はいくつかあります。ロールの権限は、そのロールとして実行されるリクエストまたはコンピュート操作に適用されます。スコープはメソッドによって異なります。ワークスペースでロールを切り替えるとブラウザセッションが変更され、Databricks CLIプロファイルの認証やグループコンピュートへの接続を行うと、そのプロファイルやコンピュートセッションに影響します。

要件​

ロールを引き受けるには、そのロールに対する「Assume(引き受け)」権限が必要です。「Assume(引き受け)」権限は、直接受け取ることも、「Assume(引き受け)」権限を付与されたグループを通じて受け取ることも、そのロールを実装するグループのメンバーシップを通じて受け取ることもできます。ロールは、必要なアクセス権限と共にワークスペースに割り当てる必要があります。ワークスペースアクセスの構成を参照してください。

重要

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

ワークスペースのロールスイッチャー​

役割スイッチャー を使用して、ワークスペース全体で役割を引き受けます。すべてのアクセス、権限、所有権、およびアクションは、セッション期間中、その役割として行われます。

  1. Databricks ワークスペースの、上部バーの右上隅にあるワークスペース名をクリックします。
  2. 現在のワークスペース (メニューの最上部の項目) にカーソルを合わせると、ロールスイッチャーサブメニューが表示されます。
  3. サブメニューで、引き受けたいロールをクリックします。

UIが再読み込みされ、ワークスペース名の下に表示されるIDが選択したロールに変更されます。

ユーザーIDに戻るには、同じサブメニューを開いてユーザー名を選択します。ワークスペースに割り当てられていないためにロールを引き受けてワークスペースに入った場合、ユーザー名は選択できません。ワークスペースに入るためにロールを引き受けなければならない場合を参照してください。

注記

ロールスイッチャーのサブメニューが表示されない場合は、ワークスペースに割り当てられたグループのメンバーであること、またはワークスペースに割り当てられたグループに対する「引き受け」権限が付与されていることを確認してください。「グループのアクセス権限を管理する」を参照してください。

ワークスペースに入るためにロールを引き受ける必要がある場合​

直接またはグループメンバーシップを通じてワークスペースに割り当てられていないが、ワークスペースに割り当てられているグループに対するAssume権限を持っている場合、ワークスペースに入るためにロールを引き受ける必要があります。これはワークスペース設定ではなく独自のワークスペース割り当てに依存するため、同じワークスペースに割り当てられている他のユーザーは引き続き自分のアカウントでログインします。

セットアップ手順とロールエントリエクスペリエンスについては、「チュートリアル: ワークスペースアクセスにロールを想定するユーザーを要求する」を参照してください。

ワークスペースのURLに、グループのIDに設定されたaid(引き受けID)クエリーパラメーターを追加することで、直接ロールを引き受けることができます: aid=<group-id>。そのURLを開くと、通常どおりユーザーIDとして認証され、自動的にロールが引き受けられるため、ロールスイッチャーを使用する必要はありません。

たとえば、すでにロールとして機能しているワークスペースを開くには:

Text
https://<workspace-url>/?o=<workspace-id>&aid=<group-id>

これは、特定のロールに直接移動するLinkをブックマークまたは共有する場合に便利です。Databricksでは、ワークスペース内を移動する際にaidパラメーターが保持されるため、セッション中はそのロールのままになります。別のワークスペースに切り替えると、それはクリアされます。このロールはアカウントグループであり、使用する各ワークスペースに割り当てる必要があります。

グループのIDを取得するには、アカウントグループAPIを使用します。ロールを切り替えたり、Linkを開いた後にユーザーIDに戻るには、ロールスイッチャーを使用します。

グループに割り当てられた専用コンピュート​

グループに割り当てられた専用コンピュートリソースに接続すると、コンピュートに割り当てられたプリンシパルを使用する操作は、そのグループの権限を使用します。先にワークスペース UI でロールを切り替える必要はありません。

ワークスペースで Unity Catalog が有効になっている必要があり、コンピュートで Databricks Runtime 15.4 以降を使用する必要があります。グループには、コンピュートで使用されるノートブックやその他のリソースへのアクセス権も必要です。%run など、ノートブック環境によって処理される操作は、グループの権限ではなく、ユーザーの権限を使用します。設定と制限については、専用コンピュート・グループ・アクセスを参照してください。

Databricks CLI​

Databricks CLI で OAuth ユーザーマシン間 (U2M) 認証を使用すると、Web ブラウザが開き、認証フローが完了します。1つ以上のロールに対して Assume 権限を持っている場合は、ブラウザで、自分のユーザー ID として認証するか、それらのロールのいずれかとして認証するかを選択します。ワークスペースに割り当てられていない場合は、自分の ID として認証することはできず、ロールを選択する必要があります。ワークスペースに入るためにロールを割り当てる必要がある場合を参照してください。起動する前にDatabricks CLIをインストールしてください。Databricks CLI をインストールまたは更新するを参照してください。ログインフローを起動するには、次を実行します。

Bash
databricks auth login --host <workspace-url> --profile <profile-name>

ログインフローを完了すると、Databricks CLIは構成プロファイルを保存し、そのプロファイルの短命なOAuthトークンを管理します。このプロファイルを使用するコマンドは、選択したロールとして実行されます。ワークスペースUIでロールを切り替えても、このプロファイルのIDは変更されません。例えば:

Bash
databricks warehouses list --profile <profile-name>

Databricks CLI認証の詳細については、「Databricks CLIの認証」を参照してください。

API (OAuthアクセストークン)​

ワークスペースレベルのOAuthアクセストークンを生成して、ロールとしてAPI呼び出しを行うことができます。トークンのOAuthスコープによって呼び出し可能なAPIが制限され、ロールの権限によってリソースへのアクセスが決定されます。

ロールスコープのトークンを生成するには、Databricks CLIで説明されているように databricks auth login をランし、ウェブブラウザーでロールを選択します。プロファイルのアクセストークンを取得します:

Bash
databricks auth token --profile <profile-name>

レスポンスのaccess_tokenを、APIリクエストのAuthorization: Bearerヘッダーで使用してください。他のアプリケーションにコピーされたトークンは自動的に更新されません。databricks auth tokenを参照してください。

手動U2Mフローの場合は、ワークスペース認可URLにassume_group=<group-id>を追加します。ワークスペースレベルの認可コードの生成を参照してください。

Databricks Service Principalを使用する非対話型プロセスの場合、マシン間(M2M)ワークスペーストークン要求に assume_group=<group-id> を含めます。Databricks Service Principalとロールの両方をワークスペースに割り当てる必要があります。アカウントレベルのトークン要求はロールの引き受けをサポートしていません。「ロールの引き受け」および「チュートリアル: RBAC を使用した AI エージェントのアクセス範囲設定」を参照してください。

サードパーティの BI ツール​

OAuth(TableauやPower BIなど)をサポートするサードパーティのBIツールは、ロールとして承認できます。承認後、その接続を通じて送信されるクエリーは、ロールの権限を使用します。ロールには、選択したコンピュートを使用し、クエリー対象のデータにアクセスする権限が必要です。ツールのサポートされている認証およびコンピュート構成に従ってください。Databricks ODBC/JDBCドライバーを参照してください。

ロールとして動作する場合に BI ツールやドライバーに影響を与える既知の問題については、「既知の問題」を参照してください。

ロールを引き受ける際に何が変わりますか​

ワークスペースロールスイッチャーを使用する場合:

  • ノートブックおよびクエリー : ロールとしてランされます。ロールの権限は、そのロールとして実行される対話型クエリーおよび Unity Catalog 操作を管理します。
  • ジョブ :ロールとして実行中にジョブを作成すると、ジョブの ラン 設定はロールになります。最初に想定せずに、ジョブの ラン をグループに設定することもできます。ランをグループに設定を参照してください。
  • ワークスペースアセット : ロールは、作成したアセット(ノートブック、SQLクエリー、SQL Warehouse、ジョブ)を所有します。
  • 監査 Logs : イベントを開始したID (identity_metadata.run_by) と認証に使用したID (identity_metadata.run_as) を区別します。インタラクティブなリクエストの場合、これらはそれぞれユーザーIDとロールを識別します。ジョブワークロードは、ジョブサービスのアプリケーションDatabricksサービスプリンシパルをrun_byとして記録します。監査属性の確認 を参照してください。

ジョブの実行では、構成済みの「ラン」アイデンティティが使用されます。クエリータスクは、SQLアセットの共有設定に依存する場合もあり、専用コンピュートは割り当てられたプリンシパルを使用できます。「ラン」をグループに設定するを参照してください。

ロールとして動作する場合にサポートされていないか、部分的にのみサポートされている機能については、役割ベースのアクセス制御 (RBAC) の制限を参照してください。

その他のリソース​