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 構成を使用し、アカウント管理者とワークスペース管理者を含むすべてのユーザーは、SSO を使用して Databricks にサインインする必要があります。 Databricks では、すべてのワークスペースに対して統合ログインを構成することをお勧めします。

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

詳細については、「 Databricks アカウント コンソールで SSO を設定する」を参照してください。

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

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

詳細情報