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、および削除操作を拒否します。制限事項を参照してください。外部シークレットマネージャーへのすべてのアクセスは接続のサービス資格情報を経由するため、クラウド側の監査ログではそのIDへのアクセスとして記録されますが、Unity Catalogの監査ログには引き続き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つのバックエンド。 スキーマ内のすべてのシークレットは、同じバックエンドを使用します。スキーマで Databricks 管理のシークレットと外部でサポートされているシークレットを混在させることはできません。
-
バックエンドを切り替えると、インポートされたシークレットは削除されます。 スキーマのバックエンドを変更したり、別の接続を指定したりすると、以前にインポートされた外部シークレットがスキーマから削除されます。これには、Unity Catalog のメタデータ、アクセス許可、タグも含まれます。
-
クロスクラウドアクセスはサポートされていません。 ワークスペースのクラウドにネイティブなシークレットマネージャーを使用して、スキーマをバックアップします。
-
読み取りレイテンシとコスト。 読み取りのたびに外部シークレットマネージャーから値がフェッチされるため、レイテンシが増加し、クラウドプロバイダーのコストが発生する可能性があります。
-
結果整合性のある一覧表示。 外部シークレットマネージャーに追加または削除されたシークレットがUnity Catalogに反映されるまで、特に大規模なシークレットストアの場合、数分かかることがあります。
-
タグのフィルタリングは AWS 専用です。
tag_keyおよびtag_valueオプションは、AWS Secrets Manager 接続に適用されます。
その他のリソース
-
- Unity Catalog で外部シークレットを構成
- AWS Secrets Manager または Azure Key Vault を使用してスキーマをバックアップし、インポートされたシークレットを読み取ります。
-
- Unity Catalog のシークレット
- Databricks が Unity Catalog に保存するシークレットを作成、ガバナンス、管理します。