Dynamic Data Masking
機微なカラムを、クエリ時に、すべてのエンジンでマスキングする
クエリパスにマスキングがないと何が起きるか
クエリできる人は何でも見える
アクセス制御は誰が接続できるかを決めますが、接続後に何が見えるかは何も言いません。正当なクエリを実行するサポートエンジニアが、結果グリッドで完全な SSN、カード番号、メールアドレスを目にします。
エンジンネイティブのマスキングはエンジンで止まる
各データベースは独自のマスキング機構を備えます。構文も、欠落も、バイパス(SYSDBA、EXEMPT REDACTION、Fine-Grained Readers)も異なります。6 つのエンジンは、書いて同期させる 6 つのポリシーを意味します。
静的なコピーはソースから乖離する
スクラブ済みのコピーを書き出すマスキングは、更新・再スクラブ・突合が必要な 2 つ目の信頼できる情報源を意味します。そして稼働中の本番読み取りのマスキングには役立ちません。
Bytebase がすべてのクエリをマスキングする方法
読み取り時に変換、保存時はそのまま
Bytebase はクエリの実行時に結果セットの機微な値を書き換えます。保存されたデータは変わらず、維持すべきマスク済みのコピーもありません。
クエリ時の変換
マスキングは SELECT が応答される際に行われます。ストレージはそのままなので、同期し続ける 2 つ目の信頼できる情報源はありません。
ロールベースの結果
各人が見る内容はカラムの属性ではなくポリシーによる判断です。同じカラムでも、誰が尋ねるかに応じて平文・下 4 桁・ハッシュを返します。
1 つのポリシー、すべてのエンジン
ルールを一度書けば、PostgreSQL、MySQL、SQL Server、Oracle、BigQuery、Snowflake に適用されます。6 つのエンジンネイティブな方言の代わりに。
スキーマではなくデータに対応するポリシー
ルールは分類・環境・プロジェクト・テーブル・カラムに紐づき、要求者のロールに対して解決されます。クエリごとの例外なしに、適切な人が適切な値を見られます。
分類に紐づける
カラムを一度感度で分類すれば、マスキングは分類に従います。新しいテーブルは新しいルールを必要とせず、ポリシーを継承します。
文脈に対する条件
環境・プロジェクト・ロールに対する CEL 条件が、何が解決されるかを決めます。不正調査担当には平文、サポートには下 4 桁、アナリストにはハッシュ。
細かいマスクの種類
完全な伏字、部分(下 4 桁)、ハッシュ、または null — カラムと対象者に合った変換を選べます。
マスク解除は、黙った開示ではなく要求
生の値を見ることは承認を経由し、監査ログに記録されます。機微な読み取りは、誰かが黙って切り替えるフラグではなく、統制され説明責任を伴います。
マスク解除の承認
生の値を見る要求は承認者に回され、限定された範囲で付与されます。常時の例外として開きっぱなしにはなりません。
すべての読み取りを監査
誰が何を、マスクされた状態かマスク解除された状態でクエリしたかが記録されます。エンジンログから再構築せずに、監査人が求める証拠が揃います。
人間のパスでのマスキング
マスキングは Bytebase を経由する読み取り — SQL Editor、エクスポート、チームが触れるクエリ結果 — に適用されます。そこは、さもなければ生の PII が人に届く場所です。
1 つのマスキングポリシー、すべてのチームに行き届く統制
モダンなエンタープライズ環境全体に組み込まれる設計
Bytebase はデータベース、開発ツール、コラボレーションプラットフォームと連携し、複雑でマルチツールなエンタープライズ環境にも自然に溶け込みます。