ID のベストプラクティス

この記事では、Azure Databricks で ID を最適に構成する方法について、独自の観点で説明します。 ID フェデレーションに移行する方法に関するガイドが含まれています。これにより、Azure Databricks アカウント内のすべてのユーザー、グループ、サービス プリンシパルを管理できます。

Azure Databricks ID モデルの概要については、「Azure Databricks の ID」を参照してください。

Azure Databricks API に安全にアクセスする方法については、「個人用アクセス トークンのアクセス許可を管理する」を参照してください。

ユーザー、サービス プリンシパル、グループを構成する

以下の 3 種類の Azure Databricks ID があります。

  • ユーザー: Azure Databricks で認識され、メール アドレスで表されるユーザー ID。
  • サービス プリンシパル: ジョブ、自動化ツール、システム (スクリプト、アプリ、CI/CD プラットフォームなど) での使用を目的に作成された ID。
  • グループ: グループを使用すると、ID 管理が簡素化され、ワークスペース、データ、およびその他のセキュリティ保護可能なオブジェクトへのアクセスを簡単に割り当てることができます。

Databricks では、運用ジョブを実行する、または運用データを変更するサービス プリンシパルを作成することを推奨しています。 運用データに作用するすべてのプロセスがサービス プリンシパルを使って実行される場合、対話型ユーザーには運用環境での書き込み、削除、または変更の特権が必要ありません。 こうすることで、ユーザーが誤って運用データを上書きするリスクがなくなります。

Unity Catalog 内のワークスペースとアクセス制御ポリシーへのアクセスは、ユーザーに個別ではなく、グループに割り当てることをお勧めします。 すべての Azure Databricks ID はグループのメンバーとして割り当てることができます。また、メンバーはそのグループに割り当てられているアクセス許可を継承します。

Azure Databricks ID を管理できる管理ロールを次に示します。

  • アカウント管理者は、アカウントにユーザー、サービス プリンシパル、グループを追加し、管理者ロールを割り当てることができます。 また、ワークスペースで ID フェデレーションを使用している限り、そのワークスペースへのアクセス権をユーザーに付与することができます。
  • ワークスペース管理者は、ワークスペースから Azure Databricks アカウントにユーザーとサービス プリンシパルを追加できます。 ワークスペースで ID フェデレーションが有効になっている場合は、Azure Databricks アカウントにグループを追加することもできます。 ワークスペース管理者は、ユーザー、サービス プリンシパル、グループに自分のワークスペースへのアクセス権を付与できます。
  • グループ マネージャーは、グループ メンバーシップを管理できます。 また、他のユーザーにグループ マネージャー ロールを割り当てることもできます。
  • サービス プリンシパル マネージャーは、サービス プリンシパル上のロールを管理できます。

Databricks では、アカウントごとのアカウント管理者と各ワークスペース内のワークスペース管理者の数を制限することをお勧めしています。

Microsoft Entra ID から Azure Databricks アカウントにユーザーとグループを同期する

Databricks では、SCIM プロビジョニングを使って、ユーザーとグループを Microsoft Entra ID から Azure Databricks アカウントに自動的に同期することをお勧めします。 Microsoft Entra ID を使って Azure Databricks にユーザーとグループを作成し、適切なレベルのアクセス権を付与することで、SCIM によって新しい従業員またはチームのオンボードを効率化することができます。 ユーザーが組織を離れた場合、または Azure Databricks へのアクセスが不要になった場合、管理者は Microsoft Entra ID でそのユーザーを終了することができます。そのユーザーのアカウントは Azure Databricks からも削除されます。 こうすることで、一貫したオフボード プロセスを実現し、権限のないユーザーによる機密データへのアクセスを防ぎます。

個々のワークスペースではなく、Microsoft Entra ID のすべてのユーザーとグループをアカウントコンソールに同期することを目指してください。 このようにすると、1 つの SCIM プロビジョニング アプリケーションを構成するだけで、アカウント内のすべてのワークスペースですべての ID の一貫性を保つことができます。 Azure Databricks にアクセスするには、すべての Microsoft Entra ID ユーザーを使用可能にするを参照してください。

重要

ID をワークスペースに直接同期する SCIM コネクタが既にある場合、アカウント レベルの SCIM コネクタが有効になっているときには、これらの SCIM コネクタを無効にする必要があります。 「ID フェデレーションへのアップグレード」を参照してください。

アカウント レベルの SCIM の図

アカウント レベルの SCIM の図

ID プロバイダーに存在するユーザーが 10,000 人以下の場合、Databricks では、すべてのユーザーが含まれた ID プロバイダー内のグループをアカウント レベルの SCIM アプリケーションに割り当てることをお勧めします。 その後、特定のユーザー、グループ、サービス プリンシパルを、ID フェデレーションを使用してアカウントから Azure Databricks 内の特定のワークスペースに割り当てることができます。

ID フェデレーションを有効にする

ID フェデレーションを使用すると、アカウント コンソールでユーザー、サービス プリンシパル、グループを構成してから、それらの ID アクセスを特定のワークスペースに割り当てることができます。 これにより、Azure Databricks の管理とデータ ガバナンスが簡略化されます。

重要

Databricks は、2023 年 11 月 9 日、アカウント全体で順次ロールアウトする ID フェデレーションと Unity Catalog の新しいワークスペースの自動有効化を開始しました。 既定で ID フェデレーションのワークスペースが有効になっている場合、ワークスペースは無効にできません。 詳細については、「Unity Catalog の自動有効化」を参照してください。

ID フェデレーションを使用して、各ワークスペースで個別に構成を繰り返すのではなく、アカウント コンソールで Azure Databricks のユーザー、サービス プリンシパル、グループを 1 回で構成します。 これにより、新しいチームを Azure Databricks にオンボードする際の摩擦が軽減され、ワークスペースごとに個別の SCIM プロビジョニング アプリケーションではなく、Microsoft Entra ID を使用して 1 つの SCIM プロビジョニング アプリケーションを Azure Databricks アカウントに維持できます。 ユーザー、サービス プリンシパル、およびグループがアカウントに追加されたら、ワークスペースに対するアクセス許可を割り当てることができます。 アカウント レベルの ID アクセス権は、ID フェデレーションが有効になっているワークスペースにのみ割り当てることができます。

アカウント レベルの ID の図

ID フェデレーションのワークスペースを有効にする場合は、「管理者がワークスペースで ID フェデレーションを有効にする方法」を参照してください。 割り当てが完了すると、アカウント コンソールのワークスペースにある [構成] タブで、ID フェデレーションが [有効] としてマークされます。

ID フェデレーションはワークスペース レベルで有効になっており、ID フェデレーション ワークスペースと非 ID フェデレーション ワークスペースを組み合わせて使用できます。 ID フェデレーションが有効になっていないワークスペースの場合、ワークスペース管理者は、ワークスペースのスコープ内で完全に自分のワークスペースのユーザー、サービス プリンシパル、グループを管理します (レガシ モデル)。 アカウント コンソールやアカウント レベルの API を使用してアカウントからこれらのワークスペースにユーザーを割り当てることはできませんが、ワークスペース レベルのインターフェイスを使用することはできます。 ワークスペース レベルのインターフェイスを使用して新しいユーザーまたはサービス プリンシパルがワークスペースに追加されるたびに、そのユーザーまたはサービス プリンシパルがアカウント レベルに同期されます。 これにより、アカウントにユーザーとサービス プリンシパルの一貫した 1 つのセットを得ることができます。

しかし、ワークスペースレベルのインターフェイスを使用してグループが非 ID フェデレーション ワークスペースに追加された場合、そのグループはワークスペースローカル グループであり、アカウントには追加されません。 ワークスペースローカル グループではなく、アカウント グループの使用を目的とする必要があります。 ワークスペースローカル グループには、Unity Catalog のアクセス制御ポリシーや他のワークスペースへのアクセス許可を付与することはできません。

ID フェデレーションへのアップグレード

既存のワークスペースで ID フェデレーションを有効にする場合は、次の操作を行います。

  1. ワークスペースレベルの SCIM プロビジョニングをアカウント レベルに移行する

    ワークスペースにワークスペース レベルの SCIM プロビジョニングを設定している場合は、アカウントレベルの SCIM プロビジョニングを設定し、ワークスペース レベルの SCIM プロビジョナーをオフにする必要があります。 ワークスペース レベルの SCIM では、引き続きワークスペースローカル グループの作成と更新が行われます。 Databricks では、ワークスペースローカル グループではなくアカウント グループを使用して、Unity Catalog を使用した一元化されたワークスペースの割り当てとデータ アクセス管理を利用することが推奨されています。 ワークスペース レベルの SCIM もまた、ID フェデレーション ワークスペースに割り当てられているアカウント グループを認識しません。また、アカウント グループが含まれている場合、ワークスペース レベルの SCIM API 呼び出しは失敗します。 ワークスペース レベルの SCIM を無効にする方法の詳細については、「ワークスペース レベルの SCIM プロビジョニングをアカウント レベルに移行する」を参照してください。

  2. ワークスペースローカル グループをアカウント グループに変換する

    Databricks では、既存のワークスペースローカル グループをアカウント グループに変換することが推奨されています。 手順については、「ワークスペース ローカル グループをアカウント グループに移行する」を参照してください。

グループにワークスペースのアクセス許可を割り当てる

ワークスペースで ID フェデレーションが有効になったので、そのワークスペースに対するアクセス許可をアカウント内のユーザー、サービス プリンシパル、グループに割り当てることができます。 Databricks では、ワークスペースのアクセス許可をユーザーに個別に割り当てるのではなく、グループにワークスペースへのアクセス許可を割り当てることが推奨されています。 すべての Azure Databricks ID はグループのメンバーとして割り当てることができます。また、メンバーはそのグループに割り当てられているアクセス許可を継承します。

ワークスペースのアクセス許可を追加する

詳細情報