モデル限定アクセス

排他アクセスは、データアクセスを暗黙的ではなくオプトインにするパターンです。 通常の Unity カタログのアクセス許可では、アクセス許可はユーザーに従います。ユーザーは時間の経過と共にアクセス許可を蓄積し、あらゆる場所にアクセスするため、アクセス権は、直接付与されたアクセス許可と、ユーザーがメンバーであるすべてのグループから継承するアクセス許可の合計になります。 排他的アクセス パターンを使用すると、意図的なアクションが必要な機密データへのアクセスをモデル化できます。ユーザーは、データに永続的にアクセスするのではなく、データに到達するためのロールを積極的に引き受ける必要があります。 これにより、ユーザーが独自の ID としてデータにアクセスしたり、ユース ケース、臨床試験、プロジェクト、またはクライアント間でデータを混在させないようにすることができます。

排他アクセスの例: ユーザー 1 は、Study 1 グループまたは Study 2 グループを想定できます。ユーザー 1 は自分の ID として機能し、どちらの調査のデータにもクエリを実行できません。研究1のグループとして行動すると、ユーザー1は研究1のデータのみを照会することができます。研究2のグループとして機能し、唯一の研究2データ。

このパターンを説明するために、関連する個別の ID には 2 つの用語を使用します。 これらは説明ラベルであり、正式なAzure Databricks用語ではありません。

  • アクセス ロール: 機密データに対するアクセス許可を保持するメンバーがいないグループ。 ユーザーは、このロールを使用してデータにアクセスします。 アクセス ロールは空のままである必要があります。アクセス ロールのメンバーはアクセス許可を直接継承し、ロールを引き受 けることなく 機密データにアクセスできるため、排他アクセスは実行されません。 Azure Databricksでは、アクセス ロールがグループとして実装されます。
  • メンバー グループ: アクセス ロールを引き受けるユーザーがメンバーであるグループ。 メンバー グループにアクセス ロールに対して Assume を付与すると、そのすべてのメンバーがロールを引き受けられます。 メンバー グループは、要件ではなく便利です。また、個々のユーザーまたはサービス プリンシパルに直接 Assume を付与することもできます。 これにより、プリンシパルごとに Assume の許可設定を管理する必要がなくなります。

構成が完了すると、ユーザーは、ロール スイッチャー、グループに割り当てられた専用アクセス モード クラスター、CLI、API、またはサード パーティ製の BI ツールのいずれかの方法を使用してアクセス ロールを引き受けます。 「ロールの切り替え」を参照してください。

Azure Databricksでは、アクセス ロールを作成するための 2 つの方法がサポートされています。 組織が ID を管理する方法に最も適したものを選択します。

  • アカウントローカルアクセスロール:アクセスロールとしてAzure Databricksアカウントローカルグループを作成します。 Azure Databricksでグループを作成する場合は、新しいMicrosoft Entra ID グループを作成するよりも簡単です (たとえば、Microsoft Entra IDの変更で IT チケットや内部レビューが必要な場合など)。
  • Microsoft Entra IDから同期されたアクセス ロール: SCIM 経由でAzure Databricksに同期される、空のMicrosoft Entra ID グループをアクセス ロールとして使用します。 Microsoft Entra IDでグループを既に管理していて、そこにすべてのグループ ライフサイクルを保持したい場合に最適です。

Requirements

  • Unity カタログ対応ワークスペース。
  • グループを作成し、Assume を付与するためのアカウント管理者またはワークスペース管理者のアクセス許可。

方法 1: アカウント ローカル アクセス ロール

このアプローチでは、アクセス ロールは、Azure Databricks内で完全に管理されるAzure Databricksアカウントローカル グループです。 メンバー グループには、アクセス ロールを引き受けるアクセス許可を持つ任意のグループを指定できます。通常は、機密データへのアクセスを許可されたユーザーを含むMicrosoft Entra IDから同期されたグループです。

アカウントローカルアクセスロール: Databricks のアカウントローカルグループがアクセスロールとして機能し、そのロールに対する Assume 権限がメンバーグループに付与されます。

手順 1: アクセス ロールを作成してワークスペースに割り当てる

アクセス ロールとして機能するメンバーを持たないアカウント レベルのグループを作成します。 Databricks では、アクセス ロールと通常のグループを区別するために、一貫性のある名前付けプレフィックス ( role- など) を使用することをお勧めします。 たとえば、許可されたユーザーのメンバー グループが clinical-trial-1-dsされている場合は、アクセス ロールに role-clinical-trial-1-ds名前を付けます。

アクセス ロールを作成するには:

アカウント コンソール

  1. アカウント管理者として、アカウント コンソールにログインします。
  2. サイドバーで、[ユーザー管理] をクリックします。
  3. [グループ] タブで、[グループの追加] をクリックします。
  4. アクセス ロールの名前を入力します。 メンバーを追加しないでください。
  5. [Confirm](確認) をクリックします。

アカウント グループ API

databricks api post /api/2.0/account/scim/v2/Groups --json '{
  "displayName": "<access-role-name>"
}'

アクセス ロールを作成したら、アクセス ロールを使用可能なワークスペースに割り当てます。 「グループをワークスペースに割り当てる」を参照してください。

手順 2: データとワークスペース資産へのアクセスを許可する

標準のAzure Databricks ツールを使用して、機密データとワークスペース資産に対するアクセス ロールのアクセス許可を付与します。

  • Unity Catalog のセキュリティ保護可能なオブジェクト: GRANT ステートメントまたはカタログ エクスプローラーを使用して、アクセスロールに UC の権限を付与します。
  • ワークスペース資産: アクセス制御リスト (ACL) を使用して、ノートブック、ジョブ、SQL ウェアハウス、およびその他のワークスペース オブジェクトに対するアクセス ロールのアクセス許可を付与します。

たとえば、Unity カタログ テーブルを読み取るためのアクセス ロールのアクセス許可を付与するには、次のようにします。

GRANT USE SCHEMA ON <catalog>.<schema> TO `<access-role-name>`;
GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO `<access-role-name>`;

手順 3: Assume 権限を付与する

このロールを引き受ける必要があるユーザー、サービス プリンシパル、またはメンバー グループに、Assume アクセス許可を付与します。 「グループのアクセス許可の管理」を参照してください。

手順 4: ユーザーがロールを引き受けます

アクセスロールに対する Assume 権限を持つユーザーは、そのロールを引き受けることができます。 使用可能な方法については、 ロールの切り替えを 参照してください。

方法 2: Microsoft Entra IDから同期されたアクセス ロール

このアプローチを使用して、個別のAzure Databricks管理アクセス ロールを作成するのではなく、Microsoft Entra IDでアクセス ロールを管理し、SCIM を使用してAzure Databricksに同期します。 アクセス ロールとメンバー グループの両方がMicrosoft Entra IDで生成されます。

ID プロバイダー同期アクセス ロール: Databricks に同期された空の IdP グループがアクセス ロールとして機能し、IdP メンバー グループに対する Assume アクセス許可が付与されます。

このアプローチでは:

  • アクセス ロールは、Azure Databricksに同期され、機密データに対するアクセス許可が付与された空のMicrosoft Entra ID グループです。
  • メンバー グループは、アクセス ロールを引き受けるユーザーがメンバーである既存のMicrosoft Entra ID グループです。 メンバー グループにアクセス ロールに対して Assume を付与すると、そのメンバーはすべて自動的に Assume を継承します。

Note

アクセス ロールは、Microsoft Entra IDで空のままにする必要があります。 Microsoft Entra IDのアクセス ロールに追加されたメンバーは、Azure Databricksに同期され、ロールのアクセス許可を直接継承します。つまり、ロールを引き受けなくても機密データにアクセスできます。 これにより、排他アクセス モデルが中断されます。

手順 1: Microsoft Entra IDでグループを設定する

グループを設定する方法は、Azure Databricksで既にアクセス許可を持っている既存のMicrosoft Entra ID グループを新たに開始するか、または再利用するかによって異なります。

新しいセットアップ

ID プロバイダーで次の手順を実行します。

  1. アクセス ロールとして機能する空のグループを作成します。 たとえば、 role-clinical-trial-1-dsと指定します。
  2. メンバーがアクセス ロールを引き受けることができるようにするメンバー グループを特定または作成します。 たとえば、 clinical-trial-1-dsと指定します。
  3. SCIM コネクタを使用して、両方のグループをAzure Databricksに同期します。 SCIM を使用して Microsoft Entra ID からユーザーとグループを同期するを参照してください。

既存のものを再利用する

Azure Databricksの機密データに対するアクセス許可がメンバーに付与されているMicrosoft Entra IDから同期されたグループが既にある場合は、このバリアントを使用します。 既存のグループをアクセス ロールとして再利用すると、すべてのアクセス許可が新しいグループに再付与されるのを回避できます。

ID プロバイダーで次の手順を実行します。

  1. メンバー グループとして機能する新しいMicrosoft Entra ID グループを作成します。 たとえば、既存のグループが clinical-trial-1-dsされている場合は、 clinical-trial-1-ds-membersを作成します。
  2. 既存のMicrosoft Entra ID グループのすべてのメンバーを新しいメンバー グループに移動します。
  3. 既存のMicrosoft Entra ID グループがMicrosoft Entra IDで空になり、アクセス ロールになります。 既存のAzure Databricksアクセス許可が保持されるため、以下の手順 3 をスキップできます。
  4. SCIM コネクタを使用して、両方のグループをAzure Databricksに同期します。 SCIM を使用して Microsoft Entra ID からユーザーとグループを同期するを参照してください。

手順 2: 両方のグループをワークスペースに割り当てる

アクセス ロールとメンバー グループの両方を、使用可能なワークスペースに割り当てます。 「グループをワークスペースに割り当てる」を参照してください。

手順 3: データとワークスペース資産へのアクセスを許可する

Note

手順 1 で既存のMicrosoft Entra ID グループを再利用した場合、アクセス ロールには既にAzure Databricksアクセス許可があり、この手順は省略できます。

方法 1、手順 2 と同じ手順に従って、機密データとワークスペース資産に 対するアクセス ロール のアクセス許可を付与します。

手順 4: メンバー グループに Assume アクセス許可を付与する

メンバー グループアクセス ロールに対する [想定] アクセス許可を付与します。 メンバー グループのすべてのメンバーは自動的に Assume を継承します。 「グループのアクセス許可の管理」を参照してください。

手順 5: ユーザーがロールを引き受けます

メンバー グループのメンバーは、アクセス ロールを引き受けることができます。 使用可能な方法については、 ロールの切り替えを 参照してください。

次のステップ