データ漏出保護アーキテクチャ
本ページは、AWSにおけるネットワークレベルのデータ持ち出し保護の機能別リファレンスアーキテクチャです。各セクションでは、ID、Unity Catalog ガバナンス、ワークスペースの制限、モニタリング、クラウド固有のネットワーク分離など、1つの制御について説明し、その実装ガイドにリンクしています。これらの制御の背後にある概念とセキュリティ層の優先順位については、データ流出防止を参照してください。
- 制御機能一式を単一のバンドルとしてデプロイするには、「隔離された環境」アーキテクチャをエンドツーエンドで実装する Databricks Security Reference Architecture Terraform モジュールを使用します。AWS Security Reference Architecture Terraform モジュールを参照してください。
- 個別に制御を設定するには、以下のガイドを使用してください。
IDとアクセス制御
IDベースの制御は、データ流出に対する防御の第一線です。厳格な認証と信頼されたアクセスがなければ、脆弱なIDがネットワークレベルの制御を損ないます。
SSOによる統合ログイン
統合ログインを使用して、Databricks アカウントのすべてのワークスペースにシングルサインオン (SSO) を適用します。これにより、ユーザーは個人アカウントやSSO以外の方法を使用するのではなく、企業のIDプロバイダーを介して認証を行います。
ID プロバイダー内で多要素認証(MFA)を有効にし、追加の検証レイヤーを確保してください。
「統合ログインを有効にする」および「Databricks で SSO を構成する」を参照してください。
自動化されたID管理
SCIM プロビジョニングを実装し、ユーザーライフサイクル管理を自動化します。これにより、元従業員は自動的にプロビジョニングが解除され、退職後はワークスペースにアクセスできなくなります。
SCIM を使用して ID プロバイダーからユーザーとグループを同期するを参照してください。
ネットワークアクセス制御
信頼されたネットワークへのワークスペースとアカウントコンソールのアクセス制限
- アカウントレベルのIPアクセスリスト :アカウントコンソールへのアクセスを制御します。アカウントコンソールのIPアクセスリストの設定を参照してください。
- 「ワークスペースのIPアクセスリスト」 :個々のワークスペースへのアクセスを制御します。ワークスペースの IP アクセス リストの構成を参照してください。
- プライベート接続:インバウンド PrivateLink を使用して、パブリック ワークスペースへのアクセスを完全に排除します。「インバウンドPrivateLinkを構成する」を参照してください。
データガバナンス コントロール
ネットワーク制御は不正なエグレスパスを防止しますが、データガバナンスの制御は、承認されたコンピュートリソースでさえ、承認されたデータ宛先にのみアクセスできることを保証します。どのネットワークセキュリティアーキテクチャをデプロイする場合でも、これらのコントロールを適用してください。
Standard アクセス制御
Unity Catalog の権限を使用して、各カタログ、スキーマ、テーブル、ボリュームに対する読み取り、書き込み、変更を行うことができるユーザーを制限します。各ロールおよびグループに、必要最小限の権限を付与します。
権限は階層的に適用されます:カタログに対する権限付与は、その内部のすべてのスキーマとテーブルに適用されます。これを使用して、幅広いデフォルトを適用し、機密データについては下位レベルでアクセスを制限します。
Unity Catalog での特権の管理を参照してください。
属性ベースのアクセス制御(ABAC)
ABAC は、オブジェクト ID だけでなく、データ オブジェクトに付随するタグに基づいてデータ アクセスを管理します。ABACを使用して、「ユーザーはpii=falseでタグ付けされたテーブルのみを照会できる」や「EUグループのユーザーはregion=USでタグ付けされたテーブルを読み取れない」などのポリシーを適用できます。
タグ付けの慣例が既に確立されている大規模な環境では、ABACはオブジェクトごとのGRANTよりも拡張性が高くなります。行フィルターと列マスク(下記)とも相性が良いです。
Unity Catalog の属性ベースのアクセス制御を参照してください。
行フィルターと列マスク
ユーザーがテーブル内で表示する内容を制限する:
- 行フィルター : ユーザーがクエリできる行を決定するSQL関数を適用します。例えば、各地域マネージャーが自分の地域の行のみを参照できるように、セールステーブルを制限します。
- 列マスク :ユーザーに返される前に列の値を変換するSQL関数を適用します。例えば、金融関連のユーザー以外の場合、クレジットカード番号を
XXXX-XXXX-XXXX-1234でマスクします。
行フィルターと列マスクはクエリ実行時に評価されるため、ユーザーはSELECT *を使用してこれらを回避できません。
行フィルターと列マスクを参照してください。
Unity Catalog の管理上の制限
データアクセス保護対象の作成を管理者のみに制限する。
- ストレージ資格情報 :管理者のみがストレージ資格情報を作成できます。最小限の特権を持つクラウドアクセス**ポリシー**(**IAMロール**、マネージドID)を各認証情報に適用します。ストレージ認証情報の管理を参照してください。
- 外部ロケーション : 管理者のみが、クラウドストレージパスにマップする外部ロケーションを作成できます。「外部ロケーションの管理」を参照してください。
- データベース接続 :管理者のみがレイクハウスフェデレーションを通じて外部データベースへの接続を作成できるようにします。「レイクハウスフェデレーションの接続を管理する」を参照してください。
- **サービス資格情報**:管理者は外部のクラウドサービス向けにサービス資格情報を作成できます。サービス資格情報の作成を参照してください。
新しいセキュリティ保護可能なオブジェクトを作成するのではなく、承認されたセキュリティ保護可能なオブジェクトを使用する権限をユーザーに付与します。ユーザーが信頼されていないストレージやエンドポイントにコンピュートを向けることを防止します。
ワークスペースとカタログのバインド
Unity Catalog のカタログを特定のワークスペースにバインドして、クロス環境でのデータアクセスを防止します。たとえば、開発ワークスペースが本番運用データを読み取らないようにします。
ワークスペースカタログのバインディングを参照してください。
ストレージアカウントポリシー
ストレージアカウントにファイアウォールまたはバケットポリシーを実装し、承認されたソースからのトラフィックのみを受け入れるようにしてください:
- Databricks VPCまたは特定のVPCエンドポイントからのみアクセスを許可するように、S3バケットポリシーを設定してください。条件キーを使用して、ソースに基づいてアクセスを制限します。
- 最小限の権限と、Databricksリソースによる引き受けを制限する信頼ポリシーを持つIAMロールを作成します。
ワークスペース制限
ワークスペース管理設定は、Databricks UI を介してデータダウンロードおよびエクスポートパスを制御します。ワークスペースインターフェースを介したユーザーによるデータ抽出を防ぐため、これらの設定を無効にします。
設定 | リスク軽減済み |
|---|---|
ノートブックの結果のダウンロードを無効にする | ユーザーによるローカルマシンへのクエリー結果のダウンロード |
ボリュームファイルのダウンロードを無効にする | ユーザーによるボリュームファイルのローカルマシンへのダウンロード |
ノートブックおよびファイルのエクスポートを無効にする | ユーザーによるワークスペースからのノートブックまたはファイルのエクスポート |
SQLの結果のダウンロードを無効化 | ユーザーによるSQLクエリー結果のダウンロード |
MLflow実行のアーティファクトのダウンロードを無効にする | MLflowエクスペリメントアーティファクトのダウンロード |
結果テーブルのクリップボードを無効にする | ユーザーが表形式のデータをクリップボードにコピーする |
これらの設定は、ワークスペース管理コンソールのセキュリティ設定で構成します。ワークスペースの管理を参照してください。
モニタリングおよび検出
予防管理策によってデータ流出のリスクは軽減されますが、モニタリングを行うことで、管理策が機能しない場合や攻撃者がそれを回避した場合を検知できます。
監査モニタリングのシステムテーブル
Databricks Monitorのシステムテーブルを使用して、データアクセスパターンを監視し、コストを管理しましょう。「監査ログ システムテーブルのリファレンス」には、次のようなワークスペースイベントが記録されます。
- ユーザー認証とアクセス試行
- データの読み取りと書き込み操作。
- 管理構成の変更
- 資格情報の使用および外部ロケーションへのアクセス。
異常なデータ量、予期しない場所からのアクセス、または許可されていないリソースへのアクセス試行など、不審なアクティビティに対するアラートを設定します。
クラウドネイティブ ログ統合
クラウド固有のログを取り込み、Databricks システムテーブルを補足する:
- S3 アクセスイベント、IAM ロール引き受け、および VPC フローログを記録するように AWS CloudTrail を設定します。
環境全体におけるデータ移動の全体像を完全に把握するため、クラウドネイティブログとDatabricks監査ログを関連付けます。
AWSアーキテクチャ
ネットワーク分離
プライベートサブネットを備えた「顧客管理VPCの構成」でDatabricksをデプロイします:
- パブリック IP を排除するには、クラシックコンピュートプレーンネットワークを有効にしてください。
- 承認された宛先のみにイグレスを制限するように、セキュリティグループを設定します。
- インターネットへの直接アクセスを防ぐために、ルートテーブルを使用します。
プライベート接続
AWSサービスおよびDatabricksコントロールプレーンへのプライベート接続の構築
- クラシックコンピュートプレーンPrivateLink :ワークスペースおよびSCCリレーに接続します。「Databricks への従来のプライベート接続を構成する」を参照してください。
- インバウンド PrivateLink : パブリックインターネットなしでユーザーアクセスを有効にします。「インバウンドPrivateLinkを構成する」を参照してください。
- VPCエンドポイント :S3ゲートウェイエンドポイント(無料)と、STSおよびKinesisのインターフェイスエンドポイントを作成します。
- VPCエンドポイントポリシー: 承認されたAWSリソースにのみアクセスを制限します。
出力制御
Gateway Load Balancer と統合されたサードパーティのファイアウォールアプライアンス(Palo Alto など)をデプロイして、アウトバウンドトラフィックを検査します:
- 承認済みの宛先(例:PyPI、Maven、および外部APIs)向けにファイアウォールルールを設定します。
- インターネットへのトラフィック(
0.0.0.0/0)をファイアウォール経由でルーティングします。 - AWS サービス トラフィックを VPC エンドポイント経由でルーティングします。
アクセスポリシー
IAMおよびバケットポリシーを使用した最小特権アクセスの実装
- IAMロール: 最小限の権限と、Databricksリソースが引き受けることができる範囲を制限する信頼ポリシーでロールを作成します。
- S3 バケットポリシー: Databricks VPC または特定の VPC エンドポイントからのみアクセスを許可します。条件キーを使用して、ソースに基づいてアクセスを制限します。
サーバレスセキュリティ
サーバレス出力制御とは何ですか?の設定サーバレスコンピュート出力制御についてIP 範囲、FQDN、またはプライベートエンドポイントを使用して、許可された宛先を定義します。
参照
-
- ネットワーク リファレンスアーキテクチャ
- ネットワークセキュリティアーキテクチャ(管理された、強化された、分離された)
-
- セキュリティとコンプライアンス
- ネットワーキングを超えたセキュリティとコンプライアンスのコントロール。