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

Databricks シークレットを Databricks Apps リソースとして追加して、API キーやトークンなどの機密性の高い値をアプリに安全に渡します。 Databricks Apps では、シークレット スコープに格納されている シークレットがサポートされます。 アプリは実行時にこれらのシークレットを取得します。これにより、アプリケーション コードと環境の定義からシークレットが除外されます。

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

リソースとしてシークレットを追加する前に、 アプリ リソースの前提条件を確認します

  1. アプリを作成または編集するときに、[アプリ リソース] セクションで、[+ リソースの追加] >[Secret] をクリックします。
  2. シークレット スコープを選択します。
  3. アプリで使用するそのスコープ内の秘密鍵を選択します。
  4. (個々のシークレットではなく) スコープのアクセス許可レベルを選択します。
    • 読み取り可能: 選択したスコープ内のすべてのシークレットへの読み取りアクセス権をアプリに付与します。
    • 次のように記述できます。 スコープ内のシークレットを更新するアクセス許可をアプリに付与します。
    • 次の管理が可能です。 スコープ内のシークレットを読み取り、更新、削除するためのアクセス許可をアプリに付与します。
  5. (省略可能)カスタム リソース キーを指定します。これは、アプリ構成でシークレットを参照する方法です。 既定のキーは secretです。

Note

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

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

環境変数

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

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

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

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

Important

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

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

アプリからシークレット リソースを削除すると、シークレット自体はシークレット スコープに残ります。 ただし、もう一度追加しない限り、アプリはシークレットへのアクセスを失います。

ベスト プラクティス

アプリでシークレットを管理する場合は、次のベスト プラクティスに従います。

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