メインコンテンツまでスキップ

サービスプリンシパル

サービスプリンシパルは、自動化とプログラムによるアクセスのために設計されたDatabricksの特殊な ID です。 サービスプリンパルは、個々のユーザーの資格情報に依存せずに、自動化ツール、スクリプト、 CI/CDプラットフォームのDatabricksリソースへの安全な API のみのアクセスを提供します。

サービスプリンシパルの管理方法については、「サービスプリンシパルの管理」を参照してください。

注記

このページでは、ワークスペースで ID フェデレーションが有効になっていることを前提としています。これは、ほとんどのワークスペースにとって確実です。 ID フェデレーションのないレガシー ワークスペースについては、 「ID フェデレーションのないレガシー ワークスペース」を参照してください。

サービスプリンシパルとは?

サービスシプリンパルは、自動化されたツールとスクリプトにDatabricksリソースへの API のみのアクセスを提供し、ユーザー アカウントを使用するよりも優れたセキュリティを提供します。 Databricksユーザーと同じ方法で、サービスプリンシパルのリソースへのアクセスを許可および制限できます。 たとえば、サービスプリンシパルにアカウント管理者またはワークスペース管理者の役割を付与したり、 Unity Catalog使用してデータへのアクセスを許可したり、サービスプリンシパルをメンバーとしてグループに追加したりできます。

サービスプリンシパルを使用するためのアクセス許可を Databricks ユーザー、サービスプリンシパル、およびグループに付与できます。 これにより、ユーザーは ID としてではなく、サービスプリンシパルとしてジョブを実行できるため、ユーザーが組織を離れたり、グループが変更されたりした場合にジョブが失敗するのを防ぐことができます。

一般的な使用例

サービスシプリンパルは、 Databricksリソースへの安全で信頼性の高いプログラムによるアクセスが必要な、次のような自動化シナリオに最適です。

ユースケース

CI/CDパイプライン

継続的な統合およびデプロイメント ワークフローの一部として、ノートブック、ライブラリ、および構成を自動的にデプロイします。

スケジュールされたジョブ

個々のユーザー アカウントに依存せずに、ETL パイプライン、データ処理ジョブ、自動レポートをスケジュールに従って実行します。

システム間統合

外部アプリケーションとサービスをDatabricksに接続して、データの取り込み、変換、分析を行います。

自動テスト

統合テストを実行し、テスト フレームワークの一部としてデータパイプラインを検証します。

インフラストラクチャ・アズ・コード

Terraform、ARM テンプレート、Databricks アセット バンドルなどのツールを使用して、Databricks リソースをプロビジョニングおよび管理します。

サービスプリンシパルを管理および使用できるのは誰ですか?

Databricksでサービスプリンシパルを管理するには、次のいずれかのロールが必要です。

ロール

機能

アカウント管理者

  • サービスプリンシパルをアカウントに追加し、管理者の役割を割り当てます。
  • サービスプリンシパルをワークスペースに割り当てます。
  • アカウント内のすべてのサービスプリンシパルに対して、サービスプリンシパルマネージャーの役割が自動的に付与されます。

ワークスペース管理者

  • サービスプリンシパルをDatabricksワークスペースに追加します。
  • ワークスペース管理者ロールを割り当てます。
  • ワークスペース内のオブジェクトと機能へのアクセスを管理します。
  • 作成したサービスプリンシパルに対して、サービスプリンシパルマネージャーの役割が自動的に付与されます。
  • サービスプリンシパル ユーザー ロールを持っている場合は、サービスプリンシパルに代わって人権を作成します。

サービスプリンシパルマネージャー

  • サービスプリンシパルのロールを管理します。
  • サービスプリンシパルマネージャーの役割を他のユーザーに割り当てます。

サービスプリンシパルユーザー

  • ジョブ所有者の ID の代わりにその ID を使用して、ジョブをサービスプリンシパルとして実行します。
注記
  • サービスプリンシパルの作成者は、自動的にサービスプリンシパルの管理者になります。
  • サービスプリンシパルマネージャーロールを持つユーザーは、サービスプリンシパルユーザーロールを継承しません。 サービスプリンシパルを使用してジョブを実行する場合は、サービスプリンシパルを作成した後でも、サービスプリンシパルのユーザー ロールを明示的に割り当てる必要があります。

サービスプリンシパル マネージャーとユーザー ロールを付与する方法については、「 サービスプリンシパルを管理するためのロール」を参照してください。

追加のリソース