IDのベストプラクティス

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

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

Databricks APIs安全にアクセスする方法については、 「セキュアAPI認証」を参照してください。

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

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

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

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

  • グループ:グループは、ワークスペース、データ、およびその他のセキュリティ保護可能なオブジェクトへのアクセスの割り当てを容易にすることで、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から削除されます。これにより、一貫したオフボーディングプロセスが保証され、権限のないユーザーによる機密データへのアクセスを防止できます。

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

重要

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

アカウントレベルのSCIM図

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

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

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

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

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

詳細については、SSO Databricksアカウント コンソールの 参照してください。

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

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

重要

アカウントが 2023 年 11 月 8 日以降に作成された場合、すべての新しいワークスペースで ID フェデレーションがデフォルトで有効になっており、無効にすることはできません。

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はグループのメンバーとして割り当てることができ、メンバーはグループに割り当てられたアクセス権限を継承します。

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

詳細情報