サービスプリンシパル
サービスプリンシパルは、自動化とプログラムによるアクセスのために設計された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でサービスプリンシパルを管理するには、次のいずれかのロールが必要です。
ロール | 機能 |
|---|---|
アカウント管理者 |
|
ワークスペース管理者 |
|
サービスプリンシパルマネージャー |
|
サービスプリンシパルユーザー |
|
- サービスプリンシパルの作成者は、自動的にサービスプリンシパルの管理者になります。
- サービスプリンシパルマネージャーロールを持つユーザーは、サービスプリンシパルユーザーロールを継承しません。 サービスプリンシパルを使用してジョブを実行する場合は、サービスプリンシパルを作成した後でも、サービスプリンシパルのユーザー ロールを明示的に割り当てる必要があります。
サービスプリンシパル マネージャーとユーザー ロールを付与する方法については、「 サービスプリンシパルを管理するためのロール」を参照してください。
追加のリソース
- Manage サービスプリンシパル- サービスプリンシパルの作成と管理
- サービスシプリンパルのアクセス制御- マネージャーとユーザーの役割を付与する
- ジョブ権限- サービスとしてジョブを実行プリンシパル
- Databricks自動化の認証- サービスプリンシパルの認証方法
- ID の管理- Databricks における ID 管理の概要