Databricks アプリにリソースを追加する
Databricksアプリは、データのクエリのためのDatabricks SQL、データ取り込みと処理のためのLakeflowジョブ、生成AI モデルへのアクセスするためのMosaic AIモデルサービング、機密情報を管理するための シークレットなど、さまざまなDatabricks プラットフォーム機能と統合できます。アプリのコンテキストでは、これらのプラットフォーム機能は リソース と呼ばれます。
アプリの移植性と安全性を確保するには、リソース ID をハードコーディングしないでください。たとえば、固定のSQL ウェアハウス IDをapp.yaml
ファイルに埋め込む代わりに、Databricks Apps UI またはdatabricks.yaml
でSQLウェアハウスをリソースとして構成します。
前提 条件
アプリにリソースを追加するには、次の条件を満たす必要があります。
- リソースが存在する必要があります。
- リソースを追加するユーザーは、リソースとアプリに対する
CAN MANAGE
権限を持っている必要があります。
アプリは最小限の特権で実行され、Databricks プラットフォーム内の既存のリソースに依存します。デプロイされると、アプリのサービスプリンシパルはこれらのリソースにアクセスし、 SQL クエリのテーブルレベルのアクセスやシークレットへの読み取りアクセスなど、必要なアクセス許可を持っている必要があります。 「Databricks アプリでの承認の構成」を参照してください。
アプリのリソースを構成する
リソースを使用すると、アプリは、機密性の高い値や環境固有の値をハードコーディングすることなく、依存するサービスに安全に接続できます。
- Databricks UI
- Databricks.yml
ほとんどのリソースは、アプリを作成または編集するときに 、アプリの UI に直接追加します。
App リソース セクションで、 + リソースの追加 をクリックし、使用するリソースの種類を選択します。各リソースにキーを割り当て、 app.yaml
ファイルで参照します。
databricks.yml
設定ファイルのresources
セクションにリソースを手動で追加します。この方法により、高度な構成の柔軟性が向上します。
resources:
sql_warehouses:
sql_warehouse: # resource key
name: my-warehouse
secrets:
secret: # resource key
scope: my-scope
key: my-key
リソースへのアプリのアクセスを管理する
各アプリには専用の サービスプリンシパルがあります。 これらのベスト プラクティスに従って、アクセスを安全に管理します。
-
認証には、アプリのサービスプリンシパルを使用します。 コードにパーソナル アクセス トークン (PAT) をハードコーディングしないでください。アクセス資格情報は、環境変数として自動的に挿入されます。
CLIENT_ID
CLIENT_SECRET
-
サービスプリンシパルの資格情報をアプリ間またはユーザー間で共有しないでください。 各アプリは、分離とセキュリティのために独自の専用資格情報を使用する必要があります。
-
最小特権アクセスを適用します。アプリのサービスプリンシパルに対して最低限必要な権限のみを付与します。 例えば:
- SQLウェアハウスで
CAN USE
を許可するのは、アプリがクエリを実行するだけでよい場合です。 - アプリが推論リクエストのみを送信する場合は、配信エンドポイントで
CAN QUERY
を許可します。 - アプリのデータ アクセスのニーズに基づいて、Unity Catalog テーブルで
SELECT
またはMODIFY
を許可します。
- SQLウェアハウスで
次のステップ
アプリにリソースを追加したら、アプリ設定の env
セクションで valueFrom
フィールドを使用してこれらのリソースを参照します。手順については、「 Databricks アプリで環境変数を定義する」を参照してください。