リアルタイムにデータをマスキング。アプリケーションの変更は一切不要
第1回目と第2回目で解説したように、Oracle Database 12c(以下、12c)ではクラウド対応の次世代データベースを目指してマルチテナント・アーキテクチャが採用されています。マルチテナント構成の場合、同一のハードウェア上で複数のプラガブル・データベース(PDB)が起動することになりますが、PDB間でデータベースのユーザとデータが分離されているため、スキーマを分けて1つのデータベースを共有しているようなマルチテナント構成と比べてセキュリティに優位性があります。仮に1つのPDB上でセキュリティが破られてしまったとしても、別のPDBにあるデータを閲覧したり改ざんすることはできないため、影響範囲を最小限に抑えることができます。
各PDBにおいてセキュリティ対策が必要になるという点では従来のバージョンと変わりませんが、12cではセキュリティの機能が大幅に強化されており、今まで実現できなかったデータのマスキングや権限分掌を簡単に行えるようになっています。
その中でも、12cの新機能である「Oracle Data Redaction」は、格納されているデータやアプリケーションに一切変更を加えず、リアルタイムにデータをリダクション(マスキング)できるというまさに現場が求めていた実用的な機能です。アプリケーションやユーザが持つ権限に応じて、SELECT結果に含まれるクレジットカード番号などの機密列をその場で別の文字に置換することができます。
似た名前の製品としてOracle Data Masking Packがありますが、使用用途は大きく異なりますのでご注意ください。Oracle Data Masking Packは格納データを実際にマスキングして本番に近いテスト・データを生成することを目的とした機能であり、Oracle Data RedactionはSELECT文で取り出したデータをその場でマスキングして表示させる機能です。結果的に機密データを伏せるという点では同じですが、マニュアル等の公式文書ではOracle Data Masking Packを使用する場合は「マスキング」、Oracle Data Redactionを使用する場合は「リダクション」とそれぞれ呼び分けています。
Oracle Data Masking Pack |
Oracle Data Redaction |
|
実装方法 |
Oracle Enterprise Manager |
・DBMS Redactパッケージ |
機能の目的 |
テスト・データの生成 |
アクセス制御 |
データへの影響 |
格納データを永続的に変更 |
格納データを変更しない |
Oracle Data Redactionでリダクションの対象となる列や条件を指定するには、DBMS_REDACTパッケージまたはOracle Enterprise Manager Cloud Control 12c(EM12c)を使用します。今回は、初めてでも簡単に設定できるEM12cの手順を紹介します。アプリケーションから見たリダクションの様子がイメージしやすいように、Oracle Application Expressにあらかじめ作成されているサンプル・アプリケーションの画面をもとに説明していきます。
※サンプル・アプリケーションの仕様については以下のマニュアルを参照してください。
http://docs.oracle.com/cd/E40395_01/doc/doc.42/b71110/demo_samp.htm#BCGCEFAE