Azure Databricksでロールを引き受けるには、いくつかの方法があります。 いずれの場合も、ユーザー ID のアクセス許可はセッションまたは接続の期間中はロールのアクセス許可に置き換えられ、すべてのアクションはロールに起因します。
ロールを引き受けるには、そのロールに対する Assume 権限を、直接またはバッキング グループのメンバーとして持っている必要があります。 「グループのアクセス許可の管理」を参照してください。
Important
ワークスペースに割り当てられたすべてのグループは、ワークスペースの users システム グループからアクセス許可を継承します。これには、すべてのワークスペース ユーザーが含まれます。 ロールとして機能している間も、ロールに直接付与されているものに加えて、カタログ、Unity カタログ オブジェクト、ワークスペースアセット、コンピューティングがすべてのワークスペース ユーザーと共有されます。 ロールに表示される内容を制限するには、ワークスペース内の users システム グループのアクセス許可を減らします。
ワークスペース内のロール切り替え
ロール スイッチャーを使用して、ワークスペース全体でロールを引き受ける。 セッションの期間中、すべてのアクセス許可、権限、所有権、操作は、そのロールの設定に従います。
- Azure Databricks ワークスペースで、右上隅にあるワークスペース名をクリックします。
- 現在のワークスペース (メニューの上部の項目) にカーソルを合わせると、ロール スイッチャーサブメニューが表示されます。
- サブメニューで、想定するロールをクリックします。
UI が再読み込みされ、ワークスペース名の下に表示される ID が選択したロールに変わります。
ユーザー ID に戻すには、同じサブメニューを開き、ユーザー名を選択します。
Note
ロール スイッチャー サブメニューが表示されない場合は、ワークスペースに割り当てられているグループのメンバーであるか、ワークスペースに割り当てられているグループに対する [想定] アクセス許可が付与されていることを確認します。 「グループのアクセス許可の管理」を参照してください。
ワークスペース URL (ディープ リンク)
aid (想定 ID) クエリ パラメーターセットをグループの ID(aid=<group-id>) に追加することで、ワークスペース URL から直接ロールを引き受けることができます。 その URL を開くと、通常どおりユーザー ID として認証され、ロールが自動的に引き受けられます。そのため、ロール スイッチャーを使用する必要はありません。
たとえば、既にロールとして機能しているワークスペースを開くには、次のようにします。
https://<workspace-url>/?o=<workspace-id>&aid=<group-id>
これは、ロールに直接移動するリンクをブックマークまたは共有する場合に便利です。 Azure Databricks は、ワークスペース内を移動しても aid パラメーターを保持するので、セッション中はそのロールのままでいられます。 ロールはワークスペース固有であるため、別のワークスペースに切り替えるとクリアされます。
グループの ID を検索するには、「グループの 管理」を参照してください。 リンクを開いた後でロールを切り替えたり、ユーザー ID に戻ったりするには、 ロール スイッチャーを使用します。
グループに割り当てられた専用コンピューティング
グループに割り当てられた専用のコンピューティング リソースに接続すると、そのコンピューティングに対するすべての操作に対するそのグループのアクセス許可のスコープが自動的に下がります。 これは、コンピューティング セッションの期間中、グループをロールとして想定することと同じであり、ノートブック、クエリ、およびコンピューティングで実行されるその他のワークロードに適用されます。 他の方法とは異なり、最初にワークスペース UI でロールを切り替える必要はありません。コンピュートに接続すると、そのグループのスコープが適用されます。
グループの専用コンピューティングの設定の詳細については、「 専用コンピューティング グループ アクセス」を参照してください。
CLI
CLI を使用して Azure Databricks ワークスペースに対して認証を行うと、CLI によって Web ブラウザーが開き、認証フローが完了します。 1 つ以上のロールに対する権限を想定している場合は、ブラウザーで、独自のユーザー ID として認証するか、それらのロールの 1 つとして認証するかを選択します。
databricks auth login --host <workspace-url>
ログイン フローが完了すると、選択したロールとしてこのプロファイルを使用するすべての操作が CLI によって承認されます。 例えば次が挙げられます。
databricks warehouses list --profile <profile-name>
CLI 認証の詳細については、 Databricks CLI の認証を参照してください。
API(OAuth トークンの交換)
ロールをスコープとする OAuth トークンを生成できます。このトークンを使用して、そのロールとして API 呼び出しを行うことができます。 スコープ付きトークンは、すべての API 操作をロールとして承認します。
ロール スコープトークンを生成するには、databricks auth login の説明に従ってを実行し、Web ブラウザーでロールを選択します。 生成されたトークンは、そのロールに限定されます。
また、OAuth 承認コード フロー中に基になるグループ ID を assume_group パラメーターとして渡すことで、ロール スコープの OAuth トークンを手動で生成することもできます。 詳細については、「OAuth を使用してAzure Databricksへのユーザー アクセスを承認する」を参照してください。
サード パーティ製の BI ツール
OAuth (Tableau や Power BI など) をサポートするサードパーティの BI ツールは、ロールとして承認できます。 構成が完了すると、BI ツールはロールとして実行されるすべてのクエリを承認します。 この承認は、すべてのコンピューティングおよび SQL ウェアハウスの種類で機能します。
ロールとして動作する際にBIツールやドライバーに影響を与える既知の問題については 、「既知の問題」を参照してください。
ロールを引き受けるときの変更点
どの方法を使用してロールを引き受ける場合でも、
- ノートブックとクエリは ロールとして実行されます。 ロールのアクセス許可は、すべてのデータ アクセス操作と Unity カタログ操作に使用されます。
- そのロールとして動作している間に作成されたジョブのRun asは、自動的にそのロールに設定されます。 また、ジョブの実行対象を、そのグループを事前に割り当てることなく、グループに設定することもできます。 「 実行をグループに設定する」を参照してください。
- このロールは、作成した ワークスペース資産 (ノートブック、SQL クエリ、SQL ウェアハウス、ジョブ) を所有します。
-
監査ログ には、ユーザー ID として
identity_metadata.run_byが記録され、ロールとしてidentity_metadata.run_asされます。
ロールとして機能するときにサポートされていない機能または部分的にのみサポートされる機能については、「 ロールベースのアクセス制御 (RBAC) の制限事項」を参照してください。
次のステップ
- 制限事項を確認する: ロールとして機能するときにサポートされていない、または部分的にのみサポートされているAzure Databricks機能を理解します。 ロールベースのアクセス制御 (RBAC) の制限事項を参照してください。
- ワークスペース資産の共有を制限する: ロールとして機能するユーザーが、ロールが所有するワークスペース資産を共有できないようにします。 ワークスペース資産共有コントロールを参照してください。
- 権限の引き受け管理: ユーザーが対応するロールを引き受けることができるように、グループに対して Assume を付与または取り消します。 「グループのアクセス許可の管理」を参照してください。