データベースのデータ保護機微データ。ゲートし、マスクする。
データベース層でのデータ保護は 2 つの統制に集約されます。ゲートはデータに誰がどの期間到達できるかを決め、マスクは到達した人が何を見るかを決めます。
データベースのデータ保護アーキテクチャ
2 つの統制。1 つの機微なデータセット。
ゲート
誰が、どのロールで、どのくらいの時間接続できるか。Just-in-Time の付与が常設の資格情報を置き換える。申請は理由を伴って承認者へ流れ、時計で失効する。常設の権限はゼロ近くに落ち、すべてのアクセスに記録された証跡が残る。
マスク
実際に何が返るか。動的データマスキングは、申請者のロールに基づいてクエリ時に機微値を変換する — あるユーザーには完全な値、別のユーザーにはハッシュ、3 番目には末尾 4 桁のみ。保存データは変わらず、SELECT の結果が変わる。
データベースのデータ保護ガイド
順番に読む。
- 01
原則から始める
すべてのアクセス制御システムが答えるべき 4 つの問いと、Postgres、MySQL、SQL Server、Oracle のエンジン固有 GRANT 構文。
- 02
Just-in-Time でアクセスをゲートする
JIT ワークフローを end-to-end で辿る — 申請、承認ルール、時間ウィンドウ、自動失効。常設アクセスがなぜ間違ったデフォルトか。
- 03
見せてはならないものをマスクする
実用的なプリミティブとしての DDM — クエリ時マスキングが何を変換し、静的マスキングとどう違い、誰が何を見るかを律するポリシーパターン。
- 04
アクセス経路ごとに実装する
DDM を実装する 5 つの方法 — エンジンネイティブ、データベース内、アプリケーション、BI、ワークフロー型ゲートウェイ — と、それぞれがどの呼び出し元をマスクするか。アプリの経路にはネイティブ、人間にはゲートウェイ。
エンジン別の動的データマスキング
エンジン別にマスクする — Postgres、MySQL、SQL Server、Oracle、BigQuery、Snowflake。
各エンジンは独自のマスキングプリミティブを備える — 拡張、ビューベース、ネイティブポリシー。各比較記事はそれらをワークフロー型ゲートウェイの代替と並べて評価する。
Postgres の動的データマスキング
PG Anonymizer (拡張ベース) とクエリ時マスキング — どちらのアプローチがどのワークフローに合うか。
読む →MySQL の動的データマスキング
MySQL Enterprise (有償) と Percona のプラグイン (OSS) を、ワークフロー型ゲートウェイと比較する。
読む →SQL Server の動的データマスキング
ネイティブ DDM (5 つのマスク種別、2022 の粒度の細かい UNMASK) をワークフロー型ゲートウェイと比較する。
読む →Oracle の動的データマスキング
Oracle Data Redaction (Advanced Security オプション、DBMS_REDACT) をワークフロー型ゲートウェイと比較する。
読む →BigQuery の動的データマスキング
BigQuery の組み込みマスキングルールはポリシータグとデータポリシーで駆動される。ワークフロー型ゲートウェイと比較する。
読む →Snowflake の動的データマスキング
Snowflake のネイティブ CREATE MASKING POLICY 構文と、その限界。
読む →
Bytebase のデータベースのデータ保護
申請でゲートし、クエリでマスクする。
Bytebase はデータベースの前段に立ち、両方の統制を回します。アクセス申請はデータベース、ロール、期間を伴い、承認者がサインオフし、付与は自動失効します。クエリ時には、環境、プロジェクト、テーブル、カラム、分類への CEL 条件で書かれたマスキングルールが、申請者のロールに基づいて機微値を変換します。
1 つのワークフロー。すべてのエンジン。
データベースのデータ保護に関する質問
よくある質問。
- データベースのデータ保護とは?
- データベースのデータ保護とは、機微な値が持つべきでない人やシステムに届かないようにするすべての仕掛けです。大きな括りは、暗号化 (保存時・通信時)、アクセス制御 (そもそも誰が接続できるか)、結果集合の制御 (接続できた人が実際に何を見るか) です。本シリーズは後者 2 つに焦点を当てます — 本番インシデントのリスクが最も集まる場所です。前者は通常、クラウドプロバイダーやアプリケーションスタックがインフラ層で解決します。
- ゲートとマスクの両方が必要なのは?片方で済むのは?
- ゲートだけで足りるのは、承認されたすべてのユーザーが、クエリするカラムのすべての値を見てよい場合です — ロール自体が信頼を表すバックオフィスツールが典型。マスクが上乗せで必要になるのは、異なるユーザーが同じカラムをクエリしてよいが、見えるべきものが違うとき — アナリストにはハッシュ化されたメール、サポートには末尾 4 桁、調査官にはフル値。JIT のゲートと DDM は補完的: JIT は常設アクセスをゼロ近くに保ち、DDM は付与されたアクセスが実際に返すものをフィルタする。
- 行レベルセキュリティ (RLS) とは何が違うか?
- RLS はポリシーに基づいて行全体を隠します。マスキングは行を隠さずに特定のカラム値を変換します。Postgres、SQL Server、Oracle は RLS をネイティブに備えますが、エンジンネイティブの RLS は性能の地雷とバイパスのリスクを伴います (リンク先の Postgres RLS 記事を参照)。ワークフロー型ゲートウェイは DB の前段に立ち、エンジン横断で同じように動くマスキングとゲートのポリシーを、中央集約の監査証跡とともに適用します。
シリーズのすべての投稿。
基礎。
- 01
Just-in-Time データベースアクセス
JIT ワークフロー — 申請、承認、期限つき付与、自動失効。Bytebase の仕組みを詳細に。
- 02
動的データマスキング (DDM) とは
定義の入門。DDM と静的マスキングの違い、クエリ時マスキングの仕組み、どこに収まるか。
- 03
動的データマスキングの実装方法
アクセス経路で選ぶ 5 つのアプローチ — エンジンネイティブ、データベース内、アプリケーション、BI レイヤー、ワークフロー型ゲートウェイ — と、それぞれがどの呼び出し元をマスクするか。
- 04
データベースアクセス制御のベストプラクティス
最小権限、RBAC、職務分掌、JIT — そして Postgres、MySQL、SQL Server、Oracle のエンジン固有構文。
エンジン別にマスクする。
- 01
Postgres の動的データマスキング
PG Anonymizer のビューベースの仕組みを辿り、ワークフロー層マスキングが受け持つ範囲を整理する。
- 02
MySQL の動的データマスキング
MySQL Enterprise のマスキング関数、Percona のプラグイン、ワークフロー型ゲートウェイのアプローチを並べて比較。
- 03
SQL Server の動的データマスキング
5 つのマスク種別と SQL Server 2022 の粒度の細かい UNMASK、そしてワークフロー型ゲートウェイが承認と監査をどう加えるか。
- 04
Oracle の動的データマスキング
DBMS_REDACT による Oracle Data Redaction (Advanced Security オプション)、SYSDBA と EXEMPT REDACTION POLICY による迂回、ワークフロー型ゲートウェイがどこを補うか。
- 05
BigQuery の動的データマスキング
BigQuery の組み込みマスキングルールはポリシータグとデータポリシーでカラムにバインドされる。Fine-Grained Reader は平文を見られ、ワークフロー型ゲートウェイが承認と監査を加える。
- 06
Snowflake 動的データマスキングと代替
ネイティブのマスキングポリシー構文、ロールベース適用、スコープ外のケース。