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

Databricks アプリにシークレット リソースを追加する

Databricks シークレットを Databricks Apps リソースとして追加して、API キーやトークンなどの機密値をアプリに安全に渡します。Databricks Apps は、 シークレットスコープに保存されているシークレットをサポートしています。 アプリはランタイムでこれらのシークレットを取得するため、アプリケーションコードや環境定義から除外されます。

シークレットリソースを追加する

シークレットをアプリ リソースとして追加する前に、 前提条件を満たしていることを確認してください。

  1. アプリを作成または編集するときに、[ アプリ リソース ] セクションで、[ + リソースの追加 ] をクリックします。

  2. リソースの種類として [シークレット] を選択します。

  3. シークレットスコープを選択します。

  4. そのスコープ内で、アプリで使用するシークレットキーを選択します。

  5. スコープのアクセス許可レベルを選択します (個々のシークレットではありません)。

    • 読むことができます: 選択したスコープ内のすべてのシークレットへの読み取りアクセス権をアプリに付与します。
    • 書くことができます: スコープ内のシークレットを更新するアクセス許可をアプリに付与します。
    • 管理 できるもの: スコープ内のシークレットの読み取り、更新、削除のアクセス許可をアプリに付与します。
  6. (オプション)カスタム リソース キー (アプリ構成でシークレットを参照する方法) を指定します。デフォルトのキーは secretです。

注記

これらの手順により、アプリは、スコープから選択したシークレットに、その値を環境変数として渡すことで安全にアクセスできます。

ただし、シークレットのアクセス許可は スコープ レベルで適用され、個々のシークレットには適用されません。アプリ間のアクセスを制限するには、アプリごとに個別のシークレットスコープを作成し、そのスコープに必要なシークレットのみを格納します。

環境変数

シークレット リソースを使用するアプリをデプロイすると、Databricks は各シークレットを環境変数として挿入します。各変数の名前は、シークレットを追加したときに定義したリソースキーと一致します。

アプリからシークレットにアクセスするには、その環境変数を使用します。アプリの設定ファイル( app.yamlなど)で、 valueFrom フィールドを使用してシークレットを参照する変数を定義します。この設定により、実際のシークレット値は Databricks によって安全に管理され、プレーンテキストで公開されません。

異なるリソース キーを持つ複数のリソース エントリで同じシークレットを使用すると、 valueFromで参照されるときに、それぞれが個別の環境変数になります。

詳細については、「 リソースから環境変数にアクセスする」を参照してください。

important

機密性の高い値を環境変数やアプリのコードに直接保存しないでください。代わりに、リソース キーを環境変数として Databricks に渡し、実行時にシークレット値を安全に取得します。

シークレットリソースを削除する

アプリからシークレットリソースを削除しても、シークレット自体はシークレットスコープに残ります。 ただし、シークレットを再度追加しない限り、アプリはシークレットにアクセスできなくなります。

おすすめの方法

アプリでシークレットを管理するときは、次のおすすめの方法に従ってください。

  • 生のシークレット値を公開しないでください。環境変数として直接挿入されたシークレット値は、アプリの [環境] ページにプレーンテキストで表示されます。これを回避するには、アプリ構成の valueFrom フィールドを使用してシークレットを参照し、アプリ コード内で値を安全に取得します。
  • アプリのアクセスを、必要な特定のスコープのみに制限します。ワークスペース内のすべてのスコープへのアクセス権を付与しないでください。
  • すべてのシークレットのローテーションスケジュールを設定し、チームメンバーがロールを変更したり、組織を離れたりするとすぐにローテーションします。