Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。
外部シークレットはUnity Catalogスキーマを外部シークレットマネージャーに接続します。 Azure Databricksが秘密値を保存する代わりに、秘密はクラウドの秘密管理装置に残り、Unity Catalogでセキュリティ可能なオブジェクトとして表示され、管理・参照が可能です。
- Unity CatalogのシークレットおよびAzure Databricksが保存・管理しているシークレットの紹介については、「Unity Catalogのシークレット」をご覧ください。
- 外部シークレットマネージャーでスキーマを裏付けるには、「 Unity Catalogの外部シークレットの設定」を参照してください。
外部秘密の仕組み
シークレットバックエンドはスキーマごとに設定します。 デフォルトでは、Azure Databricksはスキーマ内のすべてのシークレットを保存・管理しますが、外部のシークレットマネージャがバックアップしない限り。 スキーマは両方を混ぜることはできません。
スキーマが外部のシークレットマネージャによってバックアップされている場合、Azure Databricksは以下の動作を行います。
-
接続がリストできる秘密を表示:接続がリストできることはすべて、Catalog Explorer、
dbutils、Unity Catalog REST API上でUnity Catalogの秘密として表示されます。 命名制限があります。 詳細は 命名制限を参照してください。 - オンデマンドで値を読み取る:Azure DatabricksはUnity Catalogに秘密値を保存しません。 各取得は外部シークレットマネージャから直接現在の値を読み取り、遅延が増え、クラウドプロバイダーのコストが発生する可能性があります。 取得した値は、他の秘密と同様に、要求した計算でキャッシュされることがあります。
-
Unity Catalogの権限でアクセスを制御します:
READ SECRETとREFERENCE SECRET、特権継承はAzure Databricks管理の秘密と同様に適用されます。 外部シークレットは読み取り専用であるため、Unity CatalogはCREATE SECRET、WRITE SECRET、削除操作を拒否します。 制限事項を参照してください。 外部シークレットマネージャーへのアクセスはすべて接続のサービス認証情報を経由するため、クラウド側の監査ログはそのIDにアクセスを割り当てますが、Unity Catalogの監査ログは引き続きAzure Databricksユーザーを記録します。
スキーマの秘密をリストアップするとインポートがトリガーされます。 これは継続的なバックグラウンド同期ではありません。インポートは非同期で実行されるため、外部シークレットマネージャーで追加または削除されたシークレットが Unity Catalog に反映されるのは、その後の一覧取得によってインポートがトリガーされた後に限られます。シークレット数の多いストアでは、これに数分かかる場合があります。 特定のシークレットを読み込むと、そのシークレットだけがインポートまたは更新され、各リードは最新の値を取得します。 外部シークレットマネージャーでシークレットを永久に削除すると、Azure Databricksは対応するUnity Catalogのシークレット(メタデータ、権限、タグを含む)を削除します。
名前に関する制限
外部シークレット名はインポートするためにUnity Catalogの命名規則に準拠しなければなりません:
- Unity Catalogは248文字を超える名前をインポートしません。
- Unity Catalogの秘密名は大文字を区別しません。 2つの外部秘密がケースだけ異なる場合、Unity Catalogは最初にインポートしたもののみを使用し、それ以外は無視します。
- Unity Catalogはサポートしない文字を置き換えます。
.は:、/は|になります。 Azure Databricksは、外部シークレットネームにこれらの文字を使わないことを推奨しています。
秘密割当の管理
Unity Catalogはスキーマとメタストアが保持できる秘密の数を制限します。 制限事項を参照してください。 スキーマにクォータ数を超えるシークレットがある場合、Azure Databricksは外部シークレットマネージャーの生成日ごとに最も古いシークレットをクォータまでインポートし、残りはインポートしません。 スキーマがクォータ内に収まるように、Azure Databricksで必要な秘密だけを公開してください:
接続先を、Azure Databricks で使用できるようにしたいシークレットのみが格納されている専用の Key Vault に設定してください。
制限事項
すべてのUnity Catalogシークレットに適用される制限に加え、外部にバックアップされたシークレットには以下の制限があります:
- Unity Catalogでの読み取り専用:Azure Databricksの外部バックアップスキーマでは、シークレットの作成、更新、名前変更、削除はできません。 その秘密は外部シークレットマネージャーで管理してください。
- スキーマごとにバックエンドが1つ:スキーマ内のすべての秘密は同じバックエンドを使用します。 スキーマはAzure Databricks管理の秘密と外部にバックアップされた秘密を混同することはできません。
- バックエンドを切り替えるとインポートされたシークレットが削除されます:スキーマのバックエンドを変更したり、別の接続に向けたりすると、以前インポートされた外部シークレット(Unity Catalogのメタデータ、権限、タグなど)がスキーマから削除されます。
- クロスクラウドアクセスはサポートされていません: ワークスペースのクラウドに対応したネイティブのシークレットマネージャーを使用してスキーマをバックアップしてください。
- 読み込み遅延とコスト:各読み取りは外部シークレットマネージャから値を取得し、遅延が発生しクラウドプロバイダーのコストが発生する可能性があります。
- 最終的に一貫したリストアップ:外部シークレットマネージャーに追加または削除されたシークレットは、特に大規模なシークレットストアの場合、Unity Catalogに現れるまでに数分かかることがあります。
- タグフィルタリングなし:Azure Key Vaultはインポートされた秘密をタグでフィルタリングしていません。
- 無効化された秘密と削除:無効化されたKey Vaultの秘密はUnity Catalogに現れますが、その値を読み取るには再有効化しなければなりません。 Unity Catalogはソフト削除された秘密を表示しなくなりました。 Key Vaultで復旧して再び利用可能にしてください。
Note
データ所在地。 スキーマを支える外部シークレットマネージャが、それを読み取るメタストアやワークスペースとは異なるリージョンにある場合、シークレット値とそのメタデータはリージョンをまたいでいます。 Azure Databricksは外部シークレットのリージョン内で処理を保証するものではありません。
Note
シークレット内の個人データ 外部の秘密名や値には個人データが含まれる可能性があります。 利用状況で必要としない限り、個人情報を彼らから守る責任があります。
その他のリソース
| 特徴 | Description |
|---|---|
| Unity Catalogで外部シークレットを設定する | AWS Secrets ManagerやAzure Key Vaultでスキーマを戻し、インポートしたシークレットを読みます。 |
| ユニティの秘密カタログ | Azure DatabricksがUnity Catalogに保存する秘密を作成、管理します。 |