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 で非アクティブ化されます。 これにより、一貫したオフボーディングプロセスが保証され、権限のないユーザーが機密データにアクセスするのを防ぐことができます。
Databricks では、ID プロバイダー内のすべてのユーザーとグループを、個々のワークスペースではなくアカウント コンソールに同期することをお勧めします。 このように、1 つの SCIM プロビジョニング アプリケーションを構成するだけで、アカウント内のすべてのワークスペースですべての ID の一貫性を保つことができます。 「すべての ID プロバイダー ユーザーが Databricks にアクセスできるようにする」を参照してください。
ID をワークスペースに直接同期する SCIM コネクタが既にある場合は、アカウント レベルの SCIM コネクタが有効になっているときに、それらの SCIM コネクタを無効にする必要があります。 「ID フェデレーションへのアップグレード」を参照してください。
IDプロバイダーのユーザーが10,000人未満の場合、Databricksは、すべてのユーザーを含むIDプロバイダーのグループをアカウントレベルのSCIMアプリケーションに割り当てることを推奨しています。その後、IDフェデレーションを使用して、特定のユーザー、グループ、サービスプリンシパルをアカウントから Databricks内の特定のワークスペースに割り当てることができます。
シングルサインオンと統合ログインの設定
シングルサインオン(SSO)を使用すると、組織のIDプロバイダーを使用してユーザーを認証できます。 Databricks では、セキュリティを強化し、使いやすさを向上させるために、ID プロバイダーから SSO を構成し、多要素認証を適用することをお勧めします。
統合ログインを使用すると、Databricks アカウントとワークスペースの 1 つの SSO 構成を管理できます。 アカウントでSSOが有効になっている場合は、すべてのワークスペースまたは選択したワークスペースで統合ログインを有効にすることを選択できます。 Unified login ワークスペースはアカウント レベルのSSO 設定を使用し、アカウント管理者とワークスペース管理者を含むすべてのユーザーは、Databricks を使用してSSO にサインインする必要があります。Databricks では、すべてのワークスペースに対して統合ログインを構成することをお勧めします。
アカウントが 2023 年 6 月 21 日より後に作成された場合、または 2024 年 12 月 12 日より前に SSO を構成しなかった場合、新規および既存のすべてのワークスペースでアカウントで統合ログインが有効になっており、無効にすることはできません。
詳細については、「での の設定SSODatabricks 」を参照してください。
ID フェデレーションを有効にする
IDフェデレーションを使用すると、アカウントコンソールでユーザー、サービスプリンシパル、およびグループを構成し、それらのIDに特定のワークスペースへのアクセスを割り当てることができます。これにより、Databricksの管理とデータガバナンスが簡素化されます。
Databricks は、2023 年 11 月 8 日に ID フェデレーションと Unity Catalog の新しいワークスペースを自動的に有効にし始め、アカウント全体で徐々にロールアウトが進んでいます。 ワークスペースで ID フェデレーションがデフォルトで有効になっている場合、無効にすることはできません。 詳細については、「Unity Catalogの自動有効化」を参照してください。
ID フェデレーションでは、 Databricks ユーザー、サービスプリンシパル、およびグループを、各ワークスペースで個別に設定を繰り返すのではなく、アカウント コンソールで一度設定します。 ユーザー、サービスプリンシパル、およびグループがアカウントに追加されたら、ワークスペースに対するアクセス許可を割り当てることができます。 アカウントレベルの ID アクセスは、ID フェデレーションが有効になっているワークスペースにのみ割り当てることができます。
ID フェデレーションのワークスペースを有効にするには、「 ID フェデレーションを有効にする」を参照してください。 割り当てが完了すると、アカウント コンソールのワークスペースの [構成] タブで ID フェデレーションが [有効 ] としてマークされます。
IDフェデレーションはワークスペースレベルで有効になっており、IDフェデレーションワークスペースと非IDフェデレーションワークスペースを組み合わせて使用できます。ID フェデレーションが有効になっていないワークスペースの場合、ワークスペース管理者は、ワークスペースユーザー、サービスプリンシパル、およびグループを完全にワークスペースの範囲内で管理します (レガシーモデル)。アカウントコンソールやアカウントレベルのAPIを使用して、アカウントからこれらのワークスペースにユーザーを割り当てることはできませんが、ワークスペースレベルのインターフェースであればどれでも使用できます。ワークスペースレベルのインタフェースを使用して新しいユーザーまたはサービスプリンシパルがワークスペースに追加されるたびに、そのユーザーまたはサービスプリンシパルはアカウントレベルに同期されます。これにより、アカウント内のユーザーとサービスプリンシパルのセットを統一することができます。
ただし、ワークスペースレベルのインターフェイスを使用して非 ID フェデレーションワークスペースにグループを追加すると、そのグループは ワークスペースローカルグループ であり、アカウントには追加されません。 ワークスペースローカルグループではなく、アカウントグループを使用することを目指す必要があります。 ワークスペース-local グループ Unity Catalog で access-control ポリシー や他のワークスペースへのアクセス許可を付与することはできません。
ID フェデレーションへのアップグレード
既存のワークスペースでIDフェデレーションを有効にする場合は、次の手順を実行します。
-
ワークスペースレベルのSCIMプロビジョニングをアカウントレベルに移行する
ワークスペース レベルの SCIM プロビジョニングが設定されている場合は、アカウント レベルの SCIM プロビジョニングを設定し、ワークスペース レベルの SCIM プロビジョニングをオフにする必要があります。 ワークスペースレベルの SCIM は、引き続きワークスペース-ローカル グループを作成および更新します。 Databricks では、ワークスペースローカル グループではなくアカウント グループを使用して、Unity Catalog を使用した一元化されたワークスペースの割り当てとデータ アクセス管理を利用することをお勧めします。 ワークスペース レベルの SCIM は、ID フェデレーション ワークスペースに割り当てられているアカウント グループも認識せず、ワークスペース レベルの SCIM API 呼び出しがアカウント グループに関与している場合、呼び出しは失敗します。 ワークスペース レベルの SCIMを無効にする方法の詳細については、「 ワークスペース レベルの SCIM プロビジョニングをアカウント レベルに移行する」を参照してください。
-
ワークスペースローカルグループをアカウントグループに変換する
Databricks では、既存のワークスペースローカル グループをアカウント グループに変換することをお勧めします。 手順については、「 ワークスペース ローカル グループをアカウント グループに移行する 」を参照してください。
グループ ワークスペースのアクセス許可を割り当てる
ワークスペースでIDフェデレーションが有効になったので、そのワークスペースに対するアカウントのアクセス許可をユーザー、サービスプリンシパル、およびグループに割り当てることができます。Databricksでは、ワークスペースのアクセス許可をユーザーに個別に割り当てるのではなく、グループのアクセス許可をワークスペースに割り当てることを推奨しています。すべてのDatabricks IDはグループのメンバーとして割り当てることができ、メンバーはグループに割り当てられたアクセス権限を継承します。
詳細情報
- ユーザー、サービスプリンシパル、グループを管理する方法については、 Databricks ID モデルの詳細をご覧ください。
- SCIM を使用して ID プロバイダーからユーザーとグループを同期し、SCIM プロビジョニングの使用を開始します。
- Unity Catalog のベスト プラクティスについては、Unity Catalog の最適な構成方法について説明しています。