IDのベストプラクティス

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

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

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

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

DatabricksのIDには、次の3つのタイプがあります。

  • ユーザー:Databricksによって認識され、Eメールアドレスによって表されるユーザーID。

  • サービス プリンシパル: ジョブ、自動化ツール、およびスクリプト、アプリ、CI/CD プラットフォームなどのシステムで使用する ID。

  • グループ:グループは、ワークスペース、データ、およびその他のセキュリティ保護可能なオブジェクトへのアクセスの割り当てを容易にすることで、アイデンティティ管理を簡素化します。

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

Unity Catalog内のワークスペースとアクセス制御ポリシーへのアクセスを、ユーザーを個別に割り当てるのではなく、グループに割り当てることがベストプラクティスです。すべてのDatabricks IDはグループのメンバーとして割り当てることができ、メンバーはグループに割り当てられたアクセス権限を継承します。

Databricks IDを管理できる管理者ロールは次のとおりです。

  • アカウント管理者は、ユーザー、サービスプリンシパル、グループをアカウントに追加し、それらに管理者ロールを割り当てることができます。ワークスペースがIDフェデレーションを使用している限り、ユーザーにそのワークスペースへのアクセス権を付与できます。

  • ワークスペース管理者は、Databricksアカウントにユーザーやサービスプリンシパルを追加できます。ワークスペースでIDフェデレーションが有効になっていれば、Databricksアカウントにグループを追加することもできます。ワークスペース管理者は、ユーザー、サービスプリンシパル、グループにワークスペースへのアクセス権を付与できます。

  • グループマネージャーは、グループのメンバーシップを管理できます。他のユーザーにグループマネージャーロールを割り当てることもできます。

  • サービスプリンシパルマネージャーは、サービスプリンシパルのロールを管理できます。

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

ユーザーとグループをIDプロバイダーからDatabricksアカウントに同期する

Databricks では、SCIM プロビジョニングを使用して、ユーザーとグループを ID プロバイダーから Databricks アカウントに自動的に同期することをお勧めします。 SCIM は、ID プロバイダーを使用して Databricks でユーザーとグループを作成し、適切なレベルのアクセス権を付与することで、新しい従業員やチームのオンボーディングを効率化します。 ユーザーが組織を離れた場合、または Databricks にアクセスする必要がなくなった場合、管理者は ID プロバイダーからユーザーを削除でき、そのユーザーは Databricks で非アクティブ化されます。 これにより、一貫したオフボーディングプロセスが保証され、権限のないユーザーが機密データにアクセスするのを防ぐことができます。

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

重要

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

アカウントレベルのSCIM図

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

シングル サインオンと統合ログインを構成する

シングル サインオン (SSO) を使用すると、組織の ID プロバイダーを使用してユーザーを認証できます。 Databricks では、セキュリティを強化し、使いやすさを向上させるために、SSO を構成し、ID プロバイダーからの多要素認証を強制することをお勧めします。

統合ログインを使用すると、Databricks アカウントとワークスペースの 1 つの SSO 構成を管理できます。 アカウントで SSO が有効になっている場合は、すべてのワークスペースまたは選択したワークスペースに対して統合ログインを有効にすることを選択できます。 統合ログイン ワークスペース は アカウント レベルのSSO 構成を使用するため、 アカウント および ワークスペース 管理者を含むすべてのユーザーはDatabricks を使用してSSO にサインインする必要があります。Databricks では、すべてのワークスペースに対して統合ログインを構成することをお勧めします。

アカウントが 2023 年 6 月 21 日以降に作成された場合、統合ログインは、新規および既存のすべてのワークスペースに対してアカウントでデフォルトで有効になっており、無効にすることはできません。

詳細については、 「 SSOで を構成する」Databricks を参照してください。

IDフェデレーションの有効化

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

重要

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

IDフェデレーションでは、Databricksのユーザー、サービスプリンシパル、およびグループをアカウントコンソールで一度に設定できます。各ワークスペースで個別に設定を繰り返す必要はありません。これにより、新しいチームをDatabricksにオンボーディングする際の手間が軽減され、ワークスペースごとに個別のSCIMプロビジョニングアプリケーションを使用するのではなく、DatabricksアカウントへのIDプロバイダを使用して1つのSCIMプロビジョニングアプリケーションを維持できるようになります。ユーザー、サービスプリンシパル、グループをアカウントに追加したら、それらにワークスペースの権限を割り当てることができます。アカウントレベルのIDは、IDフェデレーションが有効になっているワークスペースにのみアクセス権を割り当てることができます。

アカウントレベルのID図

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

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

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

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

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

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

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

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

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

グループのワークスペース権限を割り当てる

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

ワークスペース権限を追加する

詳細情報