サービスプリンシパル
このページでは、 Databricksのサービスプリンシパルの概要について説明します。 サービスプリンシパルの管理方法については、「 サービスプリンシパルの管理」を参照してください。
サービスプリンシパルとは?
サービスプリンシパルは、自動化とプログラムによるアクセス用に設計された Databricks の特殊な ID です。 サービスプリンシパル は、自動化されたツールとスクリプトに API のみのアクセスを Databricks リソースに付与し、users アカウントを使用するよりも優れたセキュリティを提供します。
リソースへのサービスプリンシパルのアクセスは、 Databricks ユーザーと同じ方法で許可および制限できます。 たとえば、次のことができます。
- サービスプリンシパルにアカウント管理者またはワークスペース管理者の役割を付与する
- Unity Catalogを使用して、サービスプリンシパルにデータへのアクセス権を付与します。
- サービスプリンシパルをメンバーとしてグループに追加します。
サービスプリンシパルを使用するためのアクセス許可を Databricks ユーザー、サービスプリンシパル、およびグループに付与できます。 これにより、ユーザーは ID としてではなく、サービスプリンシパルとしてジョブを実行できるため、ユーザーが組織を離れたり、グループが変更されたりした場合にジョブが失敗するのを防ぐことができます。
サービスプリンシパルを使用する利点:
- セキュリティと安定性: 個々のユーザー資格情報に頼らずにジョブとワークフローを自動化し、ユーザーアカウントの変更や離脱に関連するリスクを軽減します。
- 柔軟な権限: ユーザー、グループ、またはその他のサービスプリンシパルがサービスプリンシパルに権限を委任できるようにし、ユーザーに代わってジョブを実行できるようにします。
- API- IDのみ: 通常のDatabricksユーザーとは異なり、サービスプリンシパルはAPIアクセス専用に設計されており、DatabricksUIにログインすることはできません。
サービスプリンシパルを管理および使用できるのは誰ですか?
Databricksでサービスプリンシパルを管理するには、アカウント admin ロール、ワークスペース admin ロール、またはサービスプリンシパルの manager または user ロールのいずれかが必要です。
-
アカウント管理者 は、サービスプリンシパルをアカウントに追加し、管理者ロールを割り当てることができます。 また、ワークスペースが ID フェデレーションを使用している限り、サービスプリンシパルをワークスペースに割り当てることもできます。
-
ワークスペース 管理者は 、 Databricks ワークスペースにサービスプリンシパルを追加し、ワークスペース管理者ロールを割り当て、ワークスペース内のオブジェクトと機能へのアクセス (クラスターの作成や指定されたペルソナベースの環境へのアクセスなど) を管理できます。
-
サービスプリンシパル管理者 は、サービスプリンシパル上のロールを管理できます。 サービスプリンシパルの作成者は、サービスプリンシパル マネージャーになります。 アカウント admins は、アカウント内のすべてのサービスプリンシパルのサービスプリンシパル マネージャーです。
-
サービスプリンシパル ユーザーは 、サービスプリンシパルとしてジョブを実行できます。 ジョブは、ジョブ所有者の ID ではなく、サービスプリンシパルの ID を使用して実行されます。 詳細については 、「 Databricks ジョブの ID、アクセス許可、特権の管理」を参照してください。
サービスプリンシパル ワークスペース管理者であるユーザーは、サービスプリンシパルに代わってトークンを作成することもできます。
ワークスペースの RestrictWorkspaceAdmins
設定が ALLOW ALL
に設定されている場合、ワークスペース管理者は、ワークスペース内の任意のサービスプリンシパルに代わって個人用アクセス トークンを作成できます。 「ワークスペース管理者を制限する」を参照してください。
サービスプリンシパル Manager ロールを持つユーザーは、 サービスプリンシパル User ロールを継承しません。サービスプリンシパルを使用してジョブを実行する場合は、サービスプリンシパルを作成した後でも、サービスプリンシパルユーザーロールを明示的に割り当てる必要があります。
サービスプリンシパル マネージャーとユーザー ロールを付与する方法については、「 サービスプリンシパルを管理するためのロール」を参照してください。