シークレットの管理

Azure Databricksのシークレットは、パスワード、APIキー、ハッシュソルトなどの機密性の高い値を保存することで、ノートブック、ジョブ、関数がコード内に値を表示することなくその値を使用できるようにします。 シークレットは2か所で管理できます:

  • ワークスペースのシークレットスコープ:1つのワークスペース内のシークレットの名前付きコレクション。 権限はスコープ全体に適用されます。 ワークスペースのシークレットのスコープを参照してください。
  • Unity Catalog内のシークレット:メタストアに接続されたすべてのワークスペースで利用可能な保護可能オブジェクト(catalog.schema.secret)です。 各シークレットへのアクセスを許可できます。 Unity カタログのシークレットを参照してください。

Unity CatalogのシークレットはAzure Databricksで管理するか、Azure Key Vaultをバックエンドとすることができます。 Unity Catalog の Azure Key Vault secretsを参照してください。

秘密をどこに保管するか選ぶ

以下の表は、各オプションが秘密値をどこに保存しているか、どのワークスペースがそれを使用できるか、そしてアクセスの管理方法を比較しています。

  ワークスペースのシークレット スコープ Unity Catalog の Azure Databricks 管理シークレット Azure Key Vault-backed secret in Unity Catalog (Beta)
どこに値が保存されているか ワークスペース内のAzure Databricks、またはKey VaultをバックエンドとするスコープのあるAzure Key Vault Azure Databricks, in Unity Catalog Azure Key Vault (Azure Databricks はUnity Catalogにsecret nameのみを保存)
自分のキーによる暗号化 はい、マネージド サービスのためのカスタマー マネージド キーのローテーションで はい、カタログ上のカスタマー マネージド キーで
以下で利用可能 1 つのワークスペース メタストアに紐づくすべてのワークスペース メタストアに紐づくすべてのワークスペース
アクセス制御 シークレットスコープ権限 (シークレットレベルのアクセス制御なし) シークレット、スキーマ、またはカタログに対する Unity Catalog 権限 Unity Catalog の権限(シークレット、スキーマ、またはカタログに対する)
ローテートするには Azure Databricks、または Key Vault をバックエンドとするスコープの Key Vault で値を更新してください Azure Databricks で値を更新する Azure Key Vault でローテーションする。 Azure Databricksに変化はありません。

シークレットを使える場所

ワークスペースの秘密範囲とUnity Catalogの秘密は異なる場所でサポートされています。 どちらかを選ぶ前に、コードが動く場所で動作するか確認してください。

Surface ワークスペースのシークレット スコープ Unity Catalogにおけるシークレット
dbutils.secrets ノートブックとジョブにおいて Yes. 「 秘密を読む」をご覧ください。 はい、サーバーレス環境のバージョン4以降かDatabricks Runtime 17.3 LTS以降で対応可能です。 「 秘密を読む」をご覧ください。
REST APIとDatabricks CLI Yes. APIから返される値は黒塗りされていません。 Yes. APIから返される値はマスキングされていません。
Databricks Connectのようなリモート開発 はい、Databricks Connect クライアントでは、dbutils.secrets を使用できます。 Python 向け Databricks Connect での Databricks Utilitiesを参照してください。 No
Unity Catalog PythonおよびScala UDF No Yes. 電話をかける方は、 EXECUTEだけで十分です。 UDFにおけるシークレットの使用を参照してください。
SQL倉庫 はい、シークレット関数を使って 秘密を宣言するUnity CatalogのPythonまたはScala UDFを通じてのみ
Compute 上の Spark の設定プロパティと環境変数 Yes. 「Spark の構成プロパティまたは環境変数のシークレットを使用する」を参照してください。 No
モデルサービング エンドポイントの環境変数 Yes. シークレットベースの環境変数の追加を参照してください。 No
デフォルトのパッケージリポジトリ はい、 databricks-package-management の範囲内で。 「 デフォルトパッケージリポジトリの設定」を参照してください。 No

追加リソース

Resource Description
ユニティの秘密カタログ Unityカタログのシークレットを作成し、アクセスを付与し、ノートブックやジョブ、UDFで読み取ります。
Unity Catalog のシークレットに関するベスト プラクティス シークレットは環境、アプリケーション、チームごとに整理し、ワークロードがシークレットを読み取らずに使用できるようにしましょう。