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 のシークレットに関するベスト プラクティス | シークレットは環境、アプリケーション、チームごとに整理し、ワークロードがシークレットを読み取らずに使用できるようにしましょう。 |