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

チュートリアル: ワークスペース管理にRBACロールを使用する

役割ベースのアクセス制御(RBAC)を使用して、日常業務と、Databricksのワークスペース管理者権限が必要なタスクを分離します。ユーザーは必要に応じて管理者ロールを引き受け、その後ユーザーIDに戻ることで、日常のセッションで管理者権限を使用しないようにします。

シナリオ​

sre-team のサイト信頼性エンジニア (SRE) は、ワークスペースの admins システムグループの直接メンバーシップまたは継承されたメンバーシップを通じて、永続的なワークスペース管理者アクセス権を持っています。空の role-workspace-admin グループを作成し、sre-team がそれを引き受ける権限を付与し、admins にロールを追加します。

ロールをテストした後、ロールに移行するSREの常時管理者アクセス権を削除し、日常的なワークスペースアクセス権は保持します。他のワークスペース管理者は、既存のアクセス権を保持します。SREは、ロールを想定するタイミングと切り替えるタイミングを選択します。この設定では、承認ワークフローや昇格されたアクセスの自動有効期限切れは構成されません。

前提条件​

  • アイデンティティフェデレーションが有効で、RBACが有効になっているワークスペース。RBACを有効にするを参照してください。
  • ロールの作成、「Assume」権限の付与、およびワークスペースへのロールの割り当てを行うためのアカウント管理者またはワークスペース管理者の権限。「グループを管理できるユーザー」を参照してください。
  • ワークスペースの admins グループとエンタイトルメントを管理するためのワークスペース管理者権限。
  • 設定するSREを含むアカウントグループ。このチュートリアルでは sre-team を使用します。全体を通して独自のグループ名に置き換えてください。
  • 設定変更を行う管理者とは別の、自身のサインインを使用して検証に参加できる sre-team のSRE。
  • system.access.auditへのアクセス権を持つ監査リーダー。テストワークスペースで Unity Catalog が有効になっていない場合は、同じアカウントとクラウドリージョンの Unity Catalog 有効化ワークスペースを使用して監査イベントをクエリーします。監査属性の検証を参照してください。

ステップ 1: ロールを作成する​

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

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

このロールは空のままにしておきます。adminsにロールを追加した後、ロールのメンバーは、自分のユーザー ID としてワークスペース管理者権限を継承します。

「管理」権限では、ロールのメンバーシップの変更や「Assume」権限の付与を行うことができます。ロールの 権限 tabを確認し、 管理 権限をそのロールへのアクセスを制御する管理者のみに制限します。アカウント管理者がこのロールを制御する必要がある場合は、ワークスペース管理者に「管理」権限が自動的に付与されるのを避けるために、アカウントコンソールでそのロールを作成します。「グループを管理できるユーザー」を参照してください。

ワークスペースごとに個別の管理ロールを作成し、1つのロールを引き受ける権限によって複数のワークスペースでの管理権限が付与されないようにします。

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

次のいずれかの方法を使用して、sre-teamにAssume権限を付与します。

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

sre-team のメンバーはロールを引き受けることができるようになりました。誰が引き受けることができるかを変更するには、このグループのメンバーシップまたはAssume権限の付与を管理します。アクセス権を取り消す際は、そのユーザーがロールを引き受けることを許可している他の権限やメンバーシップがないか確認してください。

ステップ 3: ワークスペースの管理者グループにロールを追加する​

ワークスペース管理者として、ロールを admins に追加します。

  1. ワークスペースで、トップバーのユーザー名をクリックし、 [設定] を選択します。
  2. IDとアクセス をクリックします。
  3. [ グループ ] の横にある [ 管理 ] をクリックします。
  4. adminsを選択します。
  5. メンバー tabで、 メンバーの追加 をクリックします。
  6. role-workspace-adminを選択し、 確認 をクリックします。

ロールはadminsからワークスペース管理者権限を継承します。SREには、そのメンバーでなくてもこのロールを引き継ぐ権限があります。

ステップ4:ロールのアクセス権と日常のアクセス権を確認する​

常時管理者アクセスを変更する前に、SREの1人が自分のアカウントでワークスペースにサインインし、次のチェックを完了してください。

  1. 上部バーのワークスペース名をクリックし、現在のワークスペースにマウスを合わせます。
  2. ロールスイッチャーから role-workspace-admin を選択します。
  3. ワークスペース名の下にロール名が表示されてワークスペースがリロードされることを確認します。
  4. Settings > Identity and access を開き、 グループ の横にある Manage をクリックします。adminsグループの メンバー tabを開くことができることを確認します。このチェックでは、メンバーシップを変更する必要はありません。
  5. ロールスイッチャーに戻り、ユーザー名を選択します。

ワークスペース管理者として、sre-teamが、そのメンバーが日常業務で必要とするアクセス権限とともにワークスペースに割り当てられていることも確認します。

  • ワークスペースアクセス :ノートブック、ジョブ、モデル、パイプラインなどのコアワークスペース機能へのアクセスを許可します。
  • Databricks SQLアクセス : ダッシュボード、クエリー、SQL WarehouseなどのDatabricks SQL機能へのアクセス権を付与します。

SREがこれらのエンタイトルメントをadmins経由でのみ受け取る場合は、sre-teamに明示的に付与してください。これにより、常時の管理者メンバーシップを削除した後も、日常のアクセス権が維持されます。アクセス権限を参照してください。

ステップ5: 選択したSREの常時管理者アクセスを削除する​

ワークスペース管理者として、選択した SRE の admins における直接および継承されたメンバーシップを確認します。

  1. Settings > Identity and access > グループ > Manage を開きます。
  2. admins を開き、 「メンバー」 tabを開きます。
  3. 選択したSREの直接メンバーシップを削除し、sre-teamが直接メンバーである場合はそれも削除します。role-workspace-adminおよび関連のない管理者は保持します。
  4. 選択されたSREが属する他のグループ(それらのグループの親グループを含む)を確認し、管理権限が維持されていないか確認します。共有グループに管理者アクセスを保持する必要があるユーザーも含まれている場合は、adminsから共有グループを削除する前に、別の方法でそのユーザーに管理者アクセス権を付与してください。アカウントグループのメンバーシップを変更すると、このワークスペース以外のアクセスに影響する可能性もあります。

SREの日常的なワークスペース割り当てと、ステップ2のAssume権限の付与を維持してください。常時管理アクセスを削除するには、単一の直接メンバーシップだけでなく、admins への各パスに対処する必要があります。

ステップ6: 昇格を確認して戻る​

永続的な管理者アクセスを削除した後、同じSREがブラウザセッションでこれらの結果を確認します:

  1. ユーザーIDとして動作しながら、ワークスペースを更新し、ステップ4でチェックしたワークスペース管理者設定が使用できないことを確認します。
  2. ロールスイッチャーを使用してrole-workspace-adminを想定します。
  3. 管理者設定を開き、adminsグループのメンバーを表示できることを確認してください。
  4. 管理タスクが終了した後、ロールスイッチャーを使用してユーザー名を選択します。
  5. これらの管理者設定が再び利用できないことを確認します。日常的なワークスペースへのアクセスは引き続き可能です。

切り替えると、このブラウザセッションで使用されるIDが変更されます。これは、個別に認証されたDatabricks CLIプロファイルを変更したり、そのトークンを取り消したりするものではありません。管理者ロールは、そのロールとして実行中に作成したあらゆるアセットを所有します。

ステップ 7: 監査属性の検証​

管理者ロール下でのアクティビティを検査するには、このクエリーを監査リーダーとしてランします。<workspace-id> をテストワークスペースの ID に置き換えます。

SQL
SELECT event_time, service_name, action_name,
identity_metadata.run_by, identity_metadata.run_by_display_name,
identity_metadata.run_as, identity_metadata.run_as_display_name
FROM system.access.audit
WHERE workspace_id = '<workspace-id>'
AND identity_metadata.run_as_display_name = 'role-workspace-admin'
AND event_date >= current_date() - INTERVAL 1 DAY
ORDER BY event_time DESC;

SREのテストセッションのイベントを確認します。identity_metadata.run_byは各リクエストを開始したSREを識別し、run_asは認可に使用された管理ロールを識別します。クエリーは、ロールの人間に読み取り可能な名前であるrun_as_display_nameでフィルタリングします。監査データは1日を通して更新されるため、最近のイベントはすぐには表示されない場合があります。ID メタデータ リファレンスを参照してください。

オプション:個別のDatabricks CLIプロファイルを使用する​

Databricks CLIで管理作業を行うには、日常業務と管理業務で別々に認証してください。このセクションのトークン管理チェックでは、個人用アクセストークンを有効にし、ワークスペースでトークン管理が利用可能である必要があります。「個人用アクセストークンの監視と取り消し」を参照してください。

参加するSREは、Databricks CLIのインストールまたは更新の説明に従ってDatabricks CLIをインストールします。彼らは自分のサインインを使用してログインします。日常的な作業には名前付きプロファイルを、管理者ロールには別のプロファイルを使用します:

Bash
databricks auth login --host <workspace-url> --profile everyday
databricks auth login --host <workspace-url> --profile ws-admin

everydayの場合、SREはブラウザーで 「次のユーザーとして承認..」 の下にある自分のユーザーIDを選択します。ws-adminの場合、role-workspace-adminを選択します。

SRE は、各プロファイルを使用してこの読み取り専用管理コマンドを比較します。

Bash
databricks token-management list --profile everyday
databricks token-management list --profile ws-admin

日常的なプロファイルでは権限エラーが発生します。管理者プロファイルはトークンのメタデータをリストできます。SREは後続の日常的なコマンドに--profile everydayを使用します。そのプロファイルを選択しても、管理者プロファイルは無効になりません。Databricks CLIを参照してください。

クリーンアップ​

使用しようとしているアクセスモデルである場合は、設定を保持します。一時的なテストとして、admins からロールを削除するか、Assume 権限を取り消す前に、SREの元の管理者メンバーシップを復元します。ロールを削除する前に、そのロールが所有している資産を確認します。

次のステップ​