Databricks アプリにリソースを追加する
Databricksアプリは、データのクエリのためのDatabricks SQL、データ取り込みと処理のためのLakeflowジョブ、生成AI モデルへのアクセスするためのMosaic AIモデルサービング、機密情報を管理するための シークレットなど、さまざまなDatabricks プラットフォーム機能と統合できます。アプリのコンテキストでは、これらのプラットフォーム機能は リソース と呼ばれます。
なぜリソースを使用するのですか?
アプリの移植性と安全性を維持するには、リソース ID のハードコーディングを避けてください。たとえば、固定のSQLウェアハウス ID をアプリ コードに埋め込む代わりに、 Databricks Apps UI を介してSQLウェアハウスをリソースとして構成します。
直接の API 呼び出しの代わりに Databricks Apps リソースを使用すると、いくつかの利点があります。
- 資格情報と権限を自動的に管理し、コード内でのトークンの手動処理を排除します。
- リソース パス、エンドポイント、接続の詳細を自動的に処理します。
- 直接 API 呼び出しに自己管理の認証情報を必要とせず、安全で管理されたアクセスを提供します。
- コードを変更することなく、環境間でアプリを移植可能。
サポートされているリソースの種類
次の表には、Databricks アプリに追加できるすべてのリソースの種類がリストされています。
| リソースタイプ | 説明 | デフォルトのリソースキー | 利用可能な権限 | 
|---|---|---|---|
| 自然言語クエリ用のAIを活用したアナリティクス インターフェイス | 
 | 
 | |
| データの保存とクエリのための Unity Catalog データベース | 
 | 
 | |
| データ取り込みと処理ワークフロー | 
 | 
 | |
| 推論リクエストのための機械学習モデルの展開 | 
 | 
 | |
| APIキーやトークンなどの機密値を安全に保管 | 
 | 
 | |
| SQLクエリを実行するためのコンピュート リソース | 
 | 
 | |
| アプリのアーティファクトとデータ用のUnity Catalog内のファイル ストレージ | 
 | 
 | 
前提 条件
アプリにリソースを追加するには、次の条件を満たす必要があります。
- リソースが存在する必要があります。
- リソースを追加するユーザーは、リソースとアプリに対する Can manage権限を持っている必要があります。
アプリは最小限の特権で実行され、Databricks プラットフォーム内の既存のリソースに依存します。デプロイされると、アプリのサービスプリンシパルはこれらのリソースにアクセスし、 SQL クエリのテーブルレベルのアクセスやシークレットへの読み取りアクセスなど、必要なアクセス許可を持っている必要があります。 「Databricks アプリでの承認の構成」を参照してください。
アプリのリソースを構成する
リソースを使用すると、アプリは、機密性の高い値や環境固有の値をハードコーディングすることなく、依存するサービスに安全に接続できます。
アプリを作成または編集するときに、Databricks アプリ UI でリソースを直接追加します。
- 作成または編集フローの アプリ リソース セクションで、 + リソースの追加 をクリックします。
- 追加するリソースの種類を選択します。
- アプリの権限を設定します サービスプリンシパル リソース。
- リソースにキーを割り当て、そのキーを app.yamlファイルで参照します。

リソースへのアプリのアクセスを管理する
各アプリには専用のサービスプリンシパルがあります。 アクセスを安全に管理するには、次のベスト プラクティスに従ってください。
- 
認証にはアプリのサービスプリンシパルを使用します。 コード内に個人アクセスウイルス (PAT) をハードコーディングしないでください。 アクセス資格情報は環境変数として自動的に挿入されます。 - DATABRICKS_CLIENT_ID
- DATABRICKS_CLIENT_SECRET
 
- 
サービスプリンシパルの資格情報をアプリ間またはユーザー間で共有しないでください。 各アプリは、分離とセキュリティのために独自の専用資格情報を使用する必要があります。 
- 
最小特権アクセスを適用します。アプリのサービスプリンシパルに対して最低限必要な権限のみを付与します。 例えば: - SQLウェアハウスでCAN USEを許可するのは、アプリがクエリを実行するだけでよい場合です。
- アプリが推論リクエストのみを送信する場合は、配信エンドポイントで CAN QUERYを許可します。
- アプリのデータ アクセスのニーズに基づいて、Unity Catalog テーブルで SELECTまたはMODIFYを許可します。
 
- SQLウェアハウスで
次のステップ
アプリにリソースを追加したら、アプリ設定の env セクションで valueFrom フィールドを使用してこれらのリソースを参照します。手順については、「 Databricks アプリで環境変数を定義する」を参照してください。