Databricksでシークレットスコープを作成する手順とDatabricks Appsでの利用方法
Databricksのシークレットスコープ機能を使ってAPIキーやパスワードなどの機密情報を安全に管理する方法を解説。Databricks CLIでのシークレット作成からDatabricks Appsでの活用まで、セキュアな開発環境構築の手順を詳しく紹介します。
1 はじめに
Databricksで開発を行う際、APIキーやパスワードなどの機密情報をソースコードにハードコーディングすることはセキュリティ上のリスクとなります。Databricksの「シークレットスコープ機能」を使用することで、これらの機密情報を安全に管理し、必要な時に呼び出すことができます。
本記事では、Databricks CLIを使用してシークレットスコープを作成し、シークレットを登録する手順を解説します。また、Databricks Appsでカスタムアプリケーションを開発する際の活用方法についても紹介します。
2 シークレットスコープの作成
シークレットスコープは、シークレットをグループ化して管理するためのコンテナです。アプリケーション単位でスコープを作成することで、シークレットを論理的に整理できます。
シークレットスコープの作成自体はDatabricks UIでも可能ですが、後続の手順(シークレット情報の登録など)でCLIが必須となるため、最初からCLIを使用することを推奨します。Databricks CLIのインストールが済んでいない場合は、こちらの記事を参考にしてください。
ターミナルで以下を実行することでシークレットスコープを作成できます。
databricks secrets create-scope <scope-name>
作成したシークレットスコープを確認するには以下のコマンドを実行します。
databricks secrets list-scopes3 シークレットの作成
シークレットスコープを作成したら、実際のシークレット(機密情報)を登録します。
databricks secrets put-secret --json '{
"scope": "<scope-name>",
"key": "<key-name>",
"string_value": "<secret>"
}'以下のコマンドで作成したシークレットの一覧を確認できます。
databricks secrets list-secrets <scope-name>シークレットを削除したい場合は、次のコマンドを実行してください。
databricks secrets delete-secret <scope-name> <key-name>4 Databricks Appsでのシークレット活用方法
Databricks Appsでカスタムアプリケーションを作成する際、app.yamlファイルで環境変数としてシークレットを呼び出すことができます。
以下のようにapp.yamlを用意すれば、機密情報をハードコーディングする必要がなくなります。
env:
- name: DATABRICKS_HOST
valueFrom: DATABRICKS_HOST
- name: GENIE_SPACE_ID
valueFrom: GENIE_SPACE_ID
- name: GPT_API_KEY
valueFrom: GPT_API_KEYアプリのメインファイル (app.py) で以下のようにシークレットキーを呼び出せます。
import os
import openai
# シークレットから環境変数として取得
openai.api_key = os.environ.get("GPT_API_KEY")
databricks_host = os.environ.get("DATABRICKS_HOST")
genie_space_id = os.environ.get("GENIE_SPACE_ID")
# 以降、通常通りAPIを使用シークレットをカスタムアプリに登録する
Databricks Appsでカスタムアプリを作成し、Edit Apps > Add Resource > Secret をクリックしたときに、先ほど作成した<scope-name>が表示されていれば、シークレットが適切に設定できています。

Databricks Appsでのシークレット利用について更に詳しく知りたい方は、以下の公式ドキュメントを参照してください。
5 おわりに
Databricksのシークレットスコープ機能を活用することで、機密情報を安全に管理しながら、開発の利便性を保つことができます。特にDatabricks Appsでカスタムアプリケーションを開発する際は、環境変数を通じてシークレットに簡単にアクセスできるため、セキュアで保守性の高いアプリケーションの構築が可能になります。
本記事で紹介した手順に従って、ぜひあなたのDatabricks環境でもシークレットスコープを活用してみてください。セキュリティと開発効率の両立を実現し、より安全なデータ分析環境の構築に貢献できることでしょう。

