Databricks Clean Rooms とは何ですか?
この記事では、Databricksの機能であるClean Roomsについて紹介します。Clean Roomsは、Delta Sharingとサーバーレスコンピューティングを使用して、複数の関係者がお互いのデータに直接アクセスすることなく、機密性の高い企業データについて共同で作業できる安全でプライバシー保護された環境を提供します。
要件
クリーンルームを利用するには、以下のものが必要です。
サーバレス コンピュートに対して有効になっているアカウント。 Enable サーバレス コンピュートを参照してください。
Unity Catalog が有効になっているワークスペース。 「 Unity Catalog のワークスペースを有効にする」を参照してください。
Unity Catalogメタストアに対してDelta Sharingが有効になっていること。 「メタストアでのDelta Sharingの有効化」を参照してください。
クリーンルームの仕組み
クリーンルームを作成するときは、次のものを作成します。
Unity Catalogメタストア内のセキュアブルなクリーンルームオブジェクト。
Databricksが管理する隔離されたエフェメラル環境である「中央」クリーンルーム。
共同作業者のUnity Catalogメタストア内のセキュリティ保護可能なクリーン ルーム オブジェクト。
いずれかの共同作業者がクリーンルームで共有するテーブル、ボリューム (表形式以外のデータ)、ビュー、およびノートブックは、Delta Sharing を使用して中央のクリーンルームとのみ共有されます。
コラボレーターは、他のコラボレーターのテーブル、ビュー、またはボリュームのデータを表示することはできませんが、列名と列の種類を表示でき、データ資産を操作する承認済みのノートブック コードを実行できます。 ノートブックのコードは、中央のクリーンルームで実行されます。 ノートブックでは、共同作業者が読み取り専用の出力を Unity Catalog メタストアに一時的に保存して、ワークスペースで作業できるようにする 出力テーブル を生成することもできます。

クリーンルームはどのようにしてノー・トラスト環境を確保しますか?
Databricksクリーンルームモデルは「no-trust」です。トラストなしのクリーンルームのすべての協力者は、クリーンルームの作成者を含め、同等の特権を持っています。 クリーンルームは、不正なコードの実行やデータの不正な共有を防ぐように設計されています。 たとえば、ノートブックを実行する前に、すべての共同作業者がノートブックを承認する必要があります。 この信頼は、コラボレーターが自分で作成したノートブックを実行できないようにすることで暗黙的に適用されます。つまり、他のコラボレーターが作成したノートブックのみを実行できます。
追加の保護措置または制限
上記の暗黙的なノートブック承認プロセスに加えて、次の安全対策が実施されています。
クリーンルームが作成されると、新しい共同作業者がクリーンルームに参加できないようにロックダウンされます。
共同作業者がクリーンルームを削除すると、中央クリーンルームは無効となり、どのユーザーもクリーンルームタスクを実行できなくなります。
パブリックプレビュー期間中、各クリーンルームは2人のコラボレーターに制限されます。
クリーンルームの名前を変更することはできません。
クリーンルーム名は、すべてのコラボレーターが同じクリーンルームを明確に参照できるように、すべてのコラボレーターのメタストアで一意である必要があります。
各共同作業者のワークスペースでセキュリティ保護可能なクリーン ルームに関するコメントは、他の共同作業者に伝播されません。
クリーンルームFAQ
クリーンルームに関するよくあるご質問をご紹介いたします。
クリーンルームではデータはどのように管理されますか?
中央のクリーンルームはDatabricksによって管理されています。 中央クリーンルームで:
どちらの当事者も管理者権限を持っていません。
メタデータのみがすべての関係者に表示されます。
各関係者は、中央のクリーンルームにデータを追加できます。
クリーンルームは、 Delta Sharing を使用してクリーンルームと安全にデータを共有しますが、参加者間では共有しません。 「Delta Sharing とは」を参照してください。
私のデータはどのように非公開にされますか?
Central クリーンルーム は、クリーンルーム作成者が選択したクラウド プロバイダー リージョンでホストされている、 Databricks管理されたサーバレス コンピュート プレーンで実行されます。
クリーンルームは以下を提供します。
コードの承認: クリーンルームの作成者と共同作業者は、中央のクリーンルームとテーブルとボリュームを共有できますが、実行できるのは相手がアップロードしたノートブックのみです。 承認する前に、相手が追加したコードを確認できます。 別のパーティによって追加されたノートブックを実行すると、そのコードは暗黙的に承認されます。
バージョン管理: クリーンルームノートブックには、すべての関係者が完全に承認されたノートブックのみを実行できるようにするためのバージョン管理があります。 最新バージョンのノートブックのみを実行できます。 クリーンルームシステムテーブルを使用して、実行されたノートブックのバージョンを確認し、行われた変更を監視できます。
制限付きアクセス: クリーンルームを作成すると、サーバレス egress control を使用してアウトバウンドネットワーク接続を管理できます。 クリーンルームからのアクセスを制限すると、不正なストレージへのアクセスがブロックされます。 サーバレス出力制御とはを参照してください。
セキュリティとサーバレス コンピュート プレーンの詳細については、 サーバレス コンピュート プレーン ネットワーキングを参照してください。
アクションはどのように記録されますか?
あなたまたはあなたの協力者が行ったクリーンルームのアクションは、クリーンルームイベントシステムテーブルに記録されます。 これらのレコードには、実行された特定のアクションに関する詳細なメタデータが含まれています。 クリーンルーム events システムテーブル リファレンス を参照してください。
クリーンルームのアクションは、サービス clean-room
のアカウントの監査ログにも記録されます。 Audit log システムテーブルリファレンスを参照してください。
請求はどのように行われますか?
Databricks クリーンルームの価格については、リンク先をご覧ください。
制限事項
パブリックレビュー期間中は、次の制限が適用されます。
必要な Databricks Runtime バージョンにはサービス資格情報 Scala ライブラリが含まれていません。
Databricks-managed デフォルトストレージをクリーンルームに追加されたテーブルに使用する場合:
最大 5 つのクリーンルームを作成、結合、または追加でき、AWS 以外のリージョンでは 2 つのクリーンルームに制限されています。
テーブルパーティションは使用できません。
テーブルは、高速セットアップを使用してアカウントを作成した場合、デフォルトのストレージを使用します。
リソースクォータ
Databricks は、すべての Clean Room セキュリティ保護可能なオブジェクトにリソース クォータを適用します。 これらのクォータは、「 リソース制限」に記載されています。 これらのリソース制限を超えることが予想される場合は、Databricks アカウント チームにお問い合わせください。
クォータの使用状況は、 Unity Catalog リソース クォータ APIsを使用して監視できます。 「Unity Catalog のリソース クォータの使用状況を監視する」を参照してください。