Unity Catalog の外部シークレット
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。
外部シークレットは、Unity Catalog スキーマを外部シークレットマネージャーに接続します。Databricks がシークレット値を保存する代わりに、シークレットはクラウドのシークレットマネージャーに保持され、ガバナンスや参照が可能なセキュリティ保護可能なオブジェクトとして Unity Catalog に表示されます。
- Unity Catalog シークレットの概要と、Databricks がユーザーに代わって保存および管理するシークレットについては、Unity Catalog のシークレットを参照してください。
- スキーマを外部シークレットマネージャーでサポートするには、「Unity Catalog での外部シークレットの構成」を参照してください。
外部シークレットの仕組み
シークレットバックエンドはスキーマごとに構成します。外部シークレットマネージャーによってバックアップされていない限り、Databricks は default で、すべてのシークレットをスキーマ内に保存および管理します。スキーマで両方を混在させることはできません。
スキーマが外部シークレットマネージャーによってサポートされている場合、Databricks は以下の処理を行います:
- 接続が一覧表示できるシークレットの表示 : 接続による一覧表示が許可されているすべてのシークレットが、Catalog Explorer、
dbutils、および Unity Catalog REST API 内の Unity Catalog シークレットとして表示されます。名前に関する制限が適用されます。「命名の制限」を参照してください。 - オンデマンドで値を読み取ります :Databricksはシークレット値をUnity Catalogに保存しません。取得するたびに、外部シークレットマネージャーから現在の値を直接読み取るため、レイテンシーが増加し、クラウドプロバイダーのコストが発生する可能性があります。取得した値は、他のシークレットと同様に、要求元のコンピュートにキャッシュされる場合があります。
- Unity Catalog の権限によるアクセスのガバナンス :
READ SECRETとREFERENCE SECRET、および権限の継承は、Databricks が管理するシークレットの場合と同様に適用されます。外部シークレットは読み取り専用であるため、Unity Catalog ではCREATE SECRET、WRITE SECRET、および削除の各操作が拒否されます。制限事項を参照してください。外部シークレットマネージャーへのすべてのアクセスは接続のサービス資格情報を経由するため、クラウド側の監査LogはそのIDに対するアクセスとして属性を記録し、一方で Unity Catalog の監査Logには引き続き Databricks ユーザーが記録されます。
スキーマのシークレットを リストする と、ImportがTriggerされます。これは継続的なバックグラウンド同期ではありません。インポートは非同期で実行されるため、Unity Catalog に外部シークレットマネージャーで追加または削除されたシークレットが反映されるのは、その後のリスト操作で import が Trigger された後となります。シークレットが多数あるストアの場合、これには数分かかることがあります。特定のシークレットを読み取ると、そのシークレットのみがインポートまたは更新され、読み取りのたびに最新の値が取得されます。外部シークレットマネージャーでシークレットを完全に削除すると、Databricks は対応する Unity Catalog シークレットを、そのメタデータ、アクセス許可、タグを含めて削除します。
命名規則の制限
外部シークレット名は、インポートするために Unity Catalog の命名規則に従う必要があります:
- Unity Catalog は、248 文字を超える名前をインポートしません。
- Unity Catalog のシークレット名は大文字と小文字を区別しません。2 つの外部シークレットが大文字と小文字のみ異なる場合、Unity Catalog は最初に取り込まれたもののみを使用し、残りは無視します。
- Unity Catalog はサポートされていない文字を置き換えます:
.は:になり、/は|になります。Databricks では、外部シークレット名にこれらの文字を使用しないことを推奨しています。
シークレットクォータの管理
Unity Catalog は、スキーマおよびメタストアが保持できるシークレットの数を制限します。制限事項を参照してください。スキーマ内のシークレット数がクォータを超える場合、Databricks は外部シークレットマネージャーでの作成日が最も古いシークレットから順にクォータの上限までインポートし、残りはインポートしません。スキーマがクォータ内に収まるよう、Databricks で必要なシークレットのみを公開してください:
接続にタグフィルターを追加して、Unity Catalog がタグ付けされたシークレットのみを表示するようにします。タグによるインポート済みシークレットのフィルタリングを参照してください。
制限事項
すべての Unity Catalog シークレットに適用される制限事項に加え、外部でバックアップされるシークレットには以下の制限事項があります。
-
Unity Catalog では読み取り専用 :Databricksから外部で管理されるスキーマ内のシークレットを作成、更新、名前変更、削除することはできません。これらのシークレットを外部シークレットマネージャーで管理します。
-
スキーマごとのバックエンドは 1 つ : スキーマ内のすべてのシークレットは同じバックエンドを使用します。1 つのスキーマに Databricks 管理型シークレットと外部バックアップ型シークレットを混在させることはできません。
-
バックエンドの切り替えによるインポート済みシークレットの削除 : スキーマのバックエンドを変更したり、別の接続を指定したりすると、Unity Catalog のメタデータ、権限、タグなど、以前にインポートされた外部シークレットがスキーマから削除されます。
-
クロスクラウドアクセスはサポートされていません : ワークスペースのクラウドにネイティブなシークレットマネージャーでスキーマをバックアップしてください。
-
読み取りのレイテンシーとコスト : 読み取りのたびに外部シークレットマネージャーから値が取得されるため、レイテンシーが追加され、クラウドプロバイダーのコストが発生する可能性があります。
-
結果整合的な一覧表示 : 外部シークレットマネージャーに追加または削除されたシークレットが Unity Catalog に表示されるまでに数分かかることがあります。特に大規模なシークレットストアで顕著です。
-
タグフィルタリングは AWS のみでサポートされます :
tag_keyおよびtag_valueのオプションは AWS Secrets Manager 接続に適用されます。
データの所在地。 スキーマをバックアップする外部シークレットマネージャーが、それを読み取るメタストアまたはワークスペースとは異なるリージョンにある場合、シークレットの値とそのメタデータはリージョンをまたぎます。Databricks は、外部シークレットのリージョン内処理を保証しません。
シークレット内の個人データ。 外部シークレットの名前と値には、個人データを含めることができます。ユースケースで必要とされる場合を除き、そこに個人データを含めないようにする責任があります。
その他のリソース
-
- Unity Catalog で外部シークレットを構成
- AWS Secrets Manager または Azure Key Vault を使用してスキーマをバックアップし、インポートされたシークレットを読み取ります。
-
- Unity Catalog のシークレット
- Databricks が Unity Catalog に保存するシークレットを作成、ガバナンス、管理します。