Skip to main content

動的データマスキング機微カラムを、クエリ時にマスクする。

動的データマスキングは、読み取り時に機微値を変換します — あるロールには完全な値、別のロールにはハッシュ、3 番目には末尾 4 桁。保存データは決して変わらず、SELECT の結果だけが変わります。

動的データマスキングのアーキテクチャ

読み取りで変換。保存では不変。

クエリ時の変換

マスキングはクエリの実行中に結果集合の値を書き換える。ストレージは手つかず — 維持すべきマスク済みコピーも、第 2 の正本もない。同じ行が呼び出し元ごとに異なる値を返す。

ロールベースのポリシー

各呼び出し元が何を見るかはポリシーの判断であり、カラムの属性ではない。ルールはロール、環境、プロジェクト、テーブル、カラム、分類にひもづく — だから 1 つのカラムが、調査官には平文、サポートには末尾 4 桁、アナリストにはハッシュを返せる。

Bytebase の動的データマスキング

クエリでマスク、すべてのエンジンで。

Bytebase はデータベースの前段に立ち、クエリ時にマスキングを適用します。ルールは環境、プロジェクト、テーブル、カラム、分類への CEL 条件で書かれ、申請者のロールに対して解決されます — だから同じカラムが人によって異なる値を返し、1 つのポリシーと 1 つの監査証跡をすべてのエンジン横断で実現します。

1 つのポリシー。すべてのエンジン。

動的データマスキングに関する質問

よくある質問。

動的データマスキングとは?
動的データマスキング (DDM) は、誰が尋ねているかに基づいて、クエリの応答時に機微なカラム値を変換します。保存データは決して変更されません — 同じ SELECT が、あるロールには実値を、別のロールにはマスク済みの値 (ハッシュ、墨消し、末尾 4 桁) を返します。これは結果集合の制御層です: 誰が接続できるかはアクセス制御、接続できた人が実際に何を見るかがマスキングです。
静的データマスキングとは何が違うか?
静的マスキングはマスク済みの値をデータの別コピーに書き込みます — 非本番データセットには有用ですが、リフレッシュして同期を保つ必要のある第 2 の正本になります。動的マスキングは本番データを手つかずのままクエリ時に値を変換するため、維持すべきコピーがなく、同じ行が呼び出し元ごとに異なる値を返せます。
行レベルセキュリティ (RLS) とは何が違うか?
RLS はポリシーに基づいて行全体を隠します。マスキングは行を隠さずに特定のカラム値を変換します。Postgres、SQL Server、Oracle は RLS をネイティブに備えますが、エンジンネイティブの RLS は性能の地雷とバイパスのリスクを伴います。ワークフロー型ゲートウェイは DB の前段に立ち、エンジン横断で同じように動くマスキングのポリシーを、中央集約の監査証跡とともに適用します。

シリーズのすべての投稿。

エンジン別にマスクする。

データベース開発のスタンダードを体験する