Azure Databricks Clean Rooms とは
この記事では、Azure Databricks の機能の 1 つである Clean Rooms を紹介します。この機能は Delta Sharing とサーバーレス コンピューティングを使用して安全でプライバシーが保護される環境を作るものであり、この環境では複数の関係者が、機密性の高いエンタープライズ データでの作業を共同で行うことができますが、互いのデータに直接アクセスすることはありません。
要件
クリーン ルームを使用するには、以下が必要です。
- サーバーレス コンピューティングが有効になっているアカウント。 「サーバーレス コンピューティングを有効にする」をご覧ください。
- Unity カタログに対して有効になっているワークスペース。 「Unity Catalog のワークスペースを有効にする」を参照してください。
- Unity カタログ メタストアでデルタ共有が有効になっています。 「メタストアでの Delta Sharing 有効化」を参照してください。
クリーン ルームのしくみは?
クリーン ルームを作成するときは、次のものを作成します。
- 自分の Unity Catalog メタストア内の、セキュリティ保護可能なクリーン ルーム オブジェクト。
- "中央" クリーン ルーム。これは分離されたエフェメラル環境であり、Databricks によって管理されます。
- コラボレーターの Unity Catalog メタストア内の、セキュリティ保護可能なクリーン ルーム オブジェクト。
テーブル、ボリューム (表形式以外のデータ)、ビュー、ノートブックのうち、いずれかのコラボレーターがクリーン ルームで共有するノートブックは、デルタ共有を使用して中央のクリーン ルームとのみ共有されます。
コラボレーターは、他のコラボレーターのテーブル、ビュー、またはボリュームのデータを表示できませんが、列名と列の種類を表示でき、データ資産を操作する承認済みのノートブック コードを実行できます。 このノートブック コードは中央クリーン ルームで実行されます。 ノートブックでは、 出力テーブルを生成することもできます コラボレーターは読み取り専用の出力を一時的に Unity カタログ メタストアに保存して、ワークスペースで操作できるようにします。
Clean Rooms はどのようにしてノートラスト環境を保証するのですか?
Databricks Clean Rooms モデルは "ノートラスト" (no-trust) です。 ノートラスト クリーン ルーム内のコラボレーター全員に同じ特権が付与され、これにはそのクリーン ルームの作成者も含まれます。 Clean Rooms は、未承認のコードの実行とデータの不正な共有を防止するように設計されています。 たとえば、ノートブックを実行するには、コラボレーター全員が事前に承認する必要があります。 この信頼は、ノートブックを作成したコラボレーター本人による実行を禁止するという形で暗黙的に適用されます。つまり、実行できるのは他のコラボレーターによって作成されたノートブックのみです。
追加のセーフガードまたは制限
前述の暗黙的なノートブック承認プロセスに加えて、次のセーフガードが設定されています。
クリーン ルームは作成後にロックダウンされるため、新しいコラボレーターがそのクリーン ルームに参加することはできません。
コラボレーターのいずれかがクリーン ルームを削除した場合は、中央クリーン ルームは無効になり、どのユーザーもクリーン ルーム タスクを実行できなくなります。
パブリック プレビュー期間中は、各クリーン ルームのコラボレーターは 2 名までに制限されます。
クリーン ルームの名前を変更することはできません。
クリーン ルームの名前はすべてのコラボレーターのメタストア内で一意である必要があります。これは、あいまいさをなくしてコラボレーター全員が同じクリーン ルームを参照できるようにするためです。
各コラボレーターのワークスペース内での、クリーン ルームのセキュリティ保護可能なリソースに関するコメントが他のコラボレーターに伝達されることはありません。
何が他のコラボレーターと共有されるのですか?
- クリーン ルームの名前。
- 中央クリーン ルームのクラウドとリージョン。
- 自分の組織名 (任意の名前を選択できます)。
- クリーン ルーム共有識別子 (グローバル メタストア ID + ワークスペース ID + ユーザーメール アドレス)。
- 共有のテーブル、ビュー、またはボリュームのエイリアス。
- 列のメタデータ (列名またはエイリアスと型)。
- ノートブック (読み取り専用)。
- 出力テーブル (読み取り専用、一時)。
- クリーン ルーム イベント システム テーブル。
- 実行履歴。これには次のものが含まれます。
- 実行されているノートブックの名前
- ノートブックを実行したコラボレーター (ユーザーではありません)。
- ノートブック実行の状態。
- ノートブック実行の開始時刻。
何が中央クリーン ルームと共有されるのですか?
前のセクションのリストに示したものすべて。
読み取り専用のテーブル、ボリューム、ビュー、ノートブック。
テーブル、ビュー、ボリュームは、指定されたエイリアスを使用して中央のクリーン ルームのメタストアに登録されます。 データ資産は、クリーン ルームのライフサイクル全体で共有されます。
クリーン ルームに関する FAQ
クリーン ルームについてよく寄せられる質問を次に示します。
データはクリーン ルームでどのように管理されますか?
中央のクリーン ルームは、Azure Databricks によって管理されます。 中央のクリーン ルームで次の手順を実行します。
- どちらのパーティにも管理者特権がありません。
- メタデータのみがすべての関係者に表示されます。
- 各パーティは、中央のクリーン ルームにデータを追加できます。
- クリーン ルームでは Delta Sharing を使用して、参加者間ではなく、データをクリーン ルームに安全に共有します。 Delta Sharingとは何ですか?を参照してください。
データはどのようにプライベートに保持されますか?
中央のクリーン ルームは、クリーン ルーム作成者が選択したクラウド プロバイダー リージョンでホストされている、分離された Databricks で管理されるサーバーレス コンピューティング プレーンで実行されます。
クリーン ルームには次の情報が用意されています。
- コードの承認: クリーン ルームの作成者とコラボレーターは、中央のクリーン ルームとテーブルとボリュームを共有できますが、他のユーザーがアップロードしたノートブックのみを実行できます。 承認する前に、相手が追加したコードを確認できます。 別のパーティによって追加されたノートブックを実行する場合は、コードを暗黙的に承認します。
- バージョン管理: クリーン ルーム ノートブックにはバージョンコントロールがあり、すべての関係者が完全に承認されたノートブックのみを実行できるようにします。 最新バージョンのノートブックのみを実行できます。 クリーン ルーム システム テーブルを使用して、実行されたノートブックのバージョンを確認し、行われた変更を監視できます。
- 制限付きアクセス: クリーン ルームを作成するときに、サーバーレスエグレス制御を使用して送信ネットワーク接続を管理できます。 クリーン ルームからのアクセスを制限すると、承認されていないストレージへのアクセスがブロックされます。 サーバーレス エグレス制御 を参照してください。.
セキュリティとサーバーレス コンピューティング プレーンの詳細については、「サーバーレス コンピューティング プレーン ネットワーク」を参照してください。
アクションはどのように記録されますか?
自分またはコラボレーターによって実行されたクリーン ルームのアクションは、クリーン ルーム イベント システム テーブルに記録されます。 これらのレコードには、実行された特定のアクションに関する詳細なメタデータが含まれます。 「クリーン ルーム イベントシステムテーブルリファレンスを参照してください。
クリーン ルームのアクションは、サービス clean-room
のアカウントの監査ログにも記録されます。 監査ログ システム テーブルリファレンスを参照してください。
制限事項
パブリック プレビュー中は、次の制限事項が適用されます。
- 必要な Databricks Runtime バージョンには、サービス資格情報の Scala ライブラリは含まれていません。
リソース クォータ
Azure Databricks は、すべてのクリーン ルームのセキュリティ保護可能なオブジェクトにリソース クォータを実施します。 これらのクォータは、リソースの制限に記載されています。 これらのリソース制限を超えることが予想される場合は、Azure Databricks アカウント チームにお問い合わせください。
Unity Catalog リソース クォータ API を使用して、クォータの使用状況を監視できます。 「 Unity Catalog リソース クォータの使用状況の監視」を参照してください。