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

Databricks アプリにリソースを追加する

Databricksアプリは、データのクエリのためのDatabricks SQL、データ取り込みと処理のためのLakeflowジョブ、生成AI モデルへのアクセスするためのMosaic AIモデルサービング、機密情報を管理するための シークレットなど、さまざまなDatabricks プラットフォーム機能と統合できます。アプリのコンテキストでは、これらのプラットフォーム機能は リソース と呼ばれます。

なぜリソースを使用するのですか?

アプリの移植性と安全性を維持するには、リソース ID のハードコーディングを避けてください。たとえば、固定のSQLウェアハウス ID をアプリ コードに埋め込む代わりに、 Databricks Apps UI を介してSQLウェアハウスをリソースとして構成します。

直接の API 呼び出しの代わりに Databricks Apps リソースを使用すると、いくつかの利点があります。

  • 資格情報と権限を自動的に管理し、コード内でのトークンの手動処理を排除します。
  • リソース パス、エンドポイント、接続の詳細を自動的に処理します。
  • 直接 API 呼び出しに自己管理の認証情報を必要とせず、安全で管理されたアクセスを提供します。
  • コードを変更することなく、環境間でアプリを移植可能。

サポートされているリソースの種類

次の表には、Databricks アプリに追加できるすべてのリソースの種類がリストされています。

リソースタイプ

説明

デフォルトのリソースキー

利用可能な権限

Genieスペース

自然言語クエリ用のAIを活用したアナリティクス インターフェイス

genie-space

  • 閲覧可能
  • 実行可能
  • 編集可能
  • 管理可能

Lakebaseデータベース

データの保存とクエリのための Unity Catalog データベース

database

  • 接続と作成が可能

LakeFlow Job

データ取り込みと処理ワークフロー

job

  • 閲覧可能
  • Can Manage Run
  • 管理可能

モデルサービングエンドポイント

推論リクエストのための機械学習モデルの展開

serving-endpoint

  • 閲覧可能
  • クエリー可能
  • 管理可能

シークレット

APIキーやトークンなどの機密値を安全に保管

secret

  • 読み取り可能
  • 書き込み可能
  • 管理可能

SQLウェアハウス

SQLクエリを実行するためのコンピュート リソース

sql-warehouse

  • 使用可能
  • 管理可能

Unity Catalogボリューム

アプリのアーティファクトとデータ用のUnity Catalog内のファイル ストレージ

volume

  • 読み取り可能
  • 読み取りと書き込みが可能

前提 条件

アプリにリソースを追加するには、次の条件を満たす必要があります。

  • リソースが存在する必要があります。
  • リソースを追加するユーザーは、リソースとアプリに対する Can manage 権限を持っている必要があります。

アプリは最小限の特権で実行され、Databricks プラットフォーム内の既存のリソースに依存します。デプロイされると、アプリのサービスプリンシパルはこれらのリソースにアクセスし、 SQL クエリのテーブルレベルのアクセスやシークレットへの読み取りアクセスなど、必要なアクセス許可を持っている必要があります。 「Databricks アプリでの承認の構成」を参照してください。

アプリのリソースを構成する

リソースを使用すると、アプリは、機密性の高い値や環境固有の値をハードコーディングすることなく、依存するサービスに安全に接続できます。

アプリを作成または編集するときに、Databricks アプリ UI でリソースを直接追加します。

  1. 作成または編集フローの アプリ リソース セクションで、 + リソースの追加 をクリックします。
  2. 追加するリソースの種類を選択します。
  3. アプリの権限を設定します サービスプリンシパル リソース。
  4. リソースにキーを割り当て、そのキーを app.yaml ファイルで参照します。

UI での SQLウェアハウスのアプリ リソースとしての追加

リソースへのアプリのアクセスを管理する

各アプリには専用のサービスプリンシパルがあります。 アクセスを安全に管理するには、次のベスト プラクティスに従ってください。

  • 認証にはアプリのサービスプリンシパルを使用します。 コード内に個人アクセスウイルス (PAT) をハードコーディングしないでください。 アクセス資格情報は環境変数として自動的に挿入されます。

    • DATABRICKS_CLIENT_ID
    • DATABRICKS_CLIENT_SECRET
  • サービスプリンシパルの資格情報をアプリ間またはユーザー間で共有しないでください。 各アプリは、分離とセキュリティのために独自の専用資格情報を使用する必要があります。

  • 最小特権アクセスを適用します。アプリのサービスプリンシパルに対して最低限必要な権限のみを付与します。 例えば:

    • SQLウェアハウスでCAN USEを許可するのは、アプリがクエリを実行するだけでよい場合です。
    • アプリが推論リクエストのみを送信する場合は、配信エンドポイントで CAN QUERY を許可します。
    • アプリのデータ アクセスのニーズに基づいて、Unity Catalog テーブルで SELECT または MODIFY を許可します。

次のステップ

アプリにリソースを追加したら、アプリ設定の env セクションで valueFrom フィールドを使用してこれらのリソースを参照します。手順については、「 Databricks アプリで環境変数を定義する」を参照してください。