Databricksでシークレットスコープを作成する手順とDatabricks Appsでの利用方法

Databricksのシークレットスコープ機能を使ってAPIキーやパスワードなどの機密情報を安全に管理する方法を解説。Databricks CLIでのシークレット作成からDatabricks Appsでの活用まで、セキュアな開発環境構築の手順を詳しく紹介します。

目次

はじめに

Databricksで開発を行う際、APIキーやパスワードなどの機密情報をソースコードにハードコーディングすることはセキュリティ上のリスクとなります。Databricksの「シークレットスコープ機能」を使用することで、これらの機密情報を安全に管理し、必要な時に呼び出すことができます。

本記事では、Databricks CLIを使用してシークレットスコープを作成し、シークレットを登録する手順を解説します。また、Databricks Appsでカスタムアプリケーションを開発する際の活用方法についても紹介します。

シークレットスコープの作成

シークレットスコープは、シークレットをグループ化して管理するためのコンテナです。アプリケーション単位でスコープを作成することで、シークレットを論理的に整理できます。

[blogcard url=”https://docs.databricks.com/aws/ja/security/secrets/?language=Databricks%C2%A0workspace%C2%A0UI#%E3%82%B7%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B”]

シークレットスコープの作成自体はDatabricks UIでも可能ですが、後続の手順(シークレット情報の登録など)でCLIが必須となるため、最初からCLIを使用することを推奨します。Databricks CLIのインストールが済んでいない場合は、こちらの記事を参考にしてください。

 

ターミナルで以下を実行することでシークレットスコープを作成できます。

databricks secrets create-scope <scope-name>

作成したシークレットスコープを確認するには以下のコマンドを実行します。

databricks secrets list-scopes

シークレットの作成

シークレットスコープを作成したら、実際のシークレット(機密情報)を登録します。

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>

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でのシークレット利用について更に詳しく知りたい方は、以下の公式ドキュメントを参照してください。

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/databricks-apps/environment-variables#%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B”]

おわりに

Databricksのシークレットスコープ機能を活用することで、機密情報を安全に管理しながら、開発の利便性を保つことができます。特にDatabricks Appsでカスタムアプリケーションを開発する際は、環境変数を通じてシークレットに簡単にアクセスできるため、セキュアで保守性の高いアプリケーションの構築が可能になります。

本記事で紹介した手順に従って、ぜひあなたのDatabricks環境でもシークレットスコープを活用してみてください。セキュリティと開発効率の両立を実現し、より安全なデータ分析環境の構築に貢献できることでしょう。

参考

[blogcard url=”https://docs.databricks.com/aws/ja/security/secrets/?language=Databricks%C2%A0workspace%C2%A0UI#%E3%82%B7%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B”]

[blogcard url=”https://qiita.com/taka_yayoi/items/b9c046e7a9106f46873a”]

[blogcard url=”https://docs.databricks.com/aws/ja/dev-tools/databricks-apps/environment-variables#%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B”]

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次