1 Oracle Database Vaultの概要
Oracle Database Vaultを使用すると、データに対する管理アクセスを制御できます。
- Oracle Database Vaultの概要
Oracle Database Vaultは、認可されていない特権ユーザーによる機密データへのアクセスを防ぐためと認可されていないデータベース変更を防ぐための制御を提供します。 - Oracle Database Vaultの使用に必要な権限
Oracle Database Vaultは、様々なユーザーが職務の分離ガイドラインに基づいて特定のタスクを実行するためのデータベース・ロールを提供します。 - Oracle Database Vaultのコンポーネント
Oracle Database Vaultには、PL/SQLパッケージおよび他の特定のツールを含む一連のコンポーネントがあります。 - Oracle Database Vaultのコンプライアンスへの対応
法令を順守することで得られる最も大きな副産物の1つは、セキュリティに対する意識の向上です。 - Oracle Database Vaultによるユーザー・アカウントの保護
多くのセキュリティ侵害は、外部と内部の両方とも、特権データベース・ユーザー・アカウントを標的にし、データベースからデータを盗み出します。 - Oracle Database Vaultによる柔軟なセキュリティ・ポリシーの実現
Oracle Database Vaultは、データベースの柔軟なセキュリティ・ポリシーの設計を支援します。 - Oracle Database Vaultのデータベース統合に関する問題への対応
統合とクラウド環境によってコストは削減されますが、機密アプリケーション・データが、本来アクセスする必要のない人にも公開されるおそれがあります。 - マルチテナント環境でのOracle Database Vaultの動作
マルチテナント環境でOracle Databases Vaultを使用する場合は、3つの異なる構成計画を実装できます。
1.1 Oracle Database Vaultの概要
Oracle Database Vaultは、認可されていない特権ユーザーによる機密データへのアクセスを防ぐためと認可されていないデータベース変更を防ぐための制御を提供します。
- Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制は、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件の順守に役立ちます。 - 特権アカウントに対する統制
特権データベース・アカウントは、データベース内の機密性の高いアプリケーション・データへのアクセスを獲得する手段として最もよく使われています。 - データベース構成に対する統制
監査で明らかになる事項として最も多いのが、データベース権限の無認可での変更およびDBA
ロールのユーザーへの付与が多すぎることです。 - エンタープライズ・アプリケーションの保護ポリシー
アプリケーション固有のOracle Database Vault保護ポリシーおよびガイドラインを、主要なエンタープライズ・アプリケーションで利用可能です。
親トピック: Oracle Database Vaultの概要
1.1.1 Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制は、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件の順守に役立ちます。
Oracle Database Vaultは、Oracle Database Enterprise Editionのライセンス可能なオプションです。その目的は、特権アカウントの不正使用、誤用、内部および外部の脅威、および機密データに対するヒューマン・エラーによる潜在的な影響を軽減することです。
特権アカウントとは、データベース管理者やアプリケーション管理者、アプリケーション所有者、データ・アナリストなどの管理者アカウントです。これらのタイプのアカウントを持つほとんどのユーザーには、日常的に必要な権限よりはるかに強力な権限およびアクセス権があります。
Oracle Database Vaultは、Oracleデータベースのカーネルに組み込まれており、システム権限またはオブジェクト権限の検証後に意思決定がなされます。コマンドがシステム権限またはオブジェクト権限によって認可されている場合、Oracle Database Vaultは、コマンドがOracle Database Vaultのレルムまたはコマンド・ルールのどちらによって制御されるかを決定します。レルムまたはコマンド・ルールの制御は、あなたが決定します。Oracle Database Vaultは、既存の権限付与やロールを置き換えるのではなく、権限受領者がオブジェクト権限やシステム権限またはロールをいつ、どこで、なぜ、どのように使用するかをあなたが決定できるようにすることで、既存の権限付与やロールを強化します。
たとえば、SELECT ANY TABLE
システム権限を付与されているユーザーは、その権限を使用して、機密または重要とみなされる表を含め、データベース内のほぼすべての表を問い合せることができます。Oracle Database Vaultでは、機密性の高い表または他のデータベース・オブジェクトに対するSELECT ANY TABLE
システム権限の使用を制限できます。また、Oracle Database Vaultでは、特権ユーザーおよびオブジェクト所有者がオブジェクトに対して破壊的なコマンドを実行できないようにすることができます。たとえば、DROP TABLE
またはDROP INDEX
コマンドは、本番スキーマではほとんどまたはまったく使用されないため、誤りを防ぐために無効にする必要があります。
Oracle Database Vaultは、要件に従って決定される透過的な制御によって、既存のアプリケーションのセキュリティを強化するのに役立ちます。
親トピック: Oracle Database Vaultの概要
1.1.2 特権アカウントに対する統制
特権データベース・アカウントは、データベース内の機密性の高いアプリケーション・データへのアクセスを獲得する手段として最もよく使われています。
広範囲にわたる無制限のアクセス権が付与されているので、データベースの保守がしやすくなりますが、同じアクセス権が攻撃ポイントとなって大量のデータへのアクセスを許してしまうおそれがあります。Oracle Database Vaultのレルムにアプリケーション・スキーマ、機密性の高い表、およびストアド・プロシージャを入れておくと、特権アカウントを悪用した侵入者や内部犯行者による機密アプリケーション・データへのアクセスを阻止するための統制を実施できるようになります。
図1-1 DBAによるデータへのアクセスのOracle Database Vaultレルムによるブロッキング

「図1-1 DBAによるデータへのアクセスのOracle Database Vaultレルムによるブロッキング」の説明
親トピック: Oracle Database Vaultの概要
1.1.3 データベース構成に対する統制
監査で明らかになる事項として最も多いのが、データベース権限の無認可での変更およびDBA
ロールのユーザーへの付与が多すぎることです。
本番環境に対する無認可での変更を阻止することが重要であるのは、セキュリティのためだけではなく、コンプライアンスのためでもあります。そのような変更によってセキュリティが弱まるおそれがあり、侵入口を開くことになって、プライバシーおよびコンプライアンスの規制に対する違反となるからです。Oracle Database VaultのSQLコマンド・ルールを使用すると、データベース内部での操作(たとえば、CREATE TABLE
、TRUNCATE TABLE
、DROP TABLE
などのコマンド)を統制できます。IPアドレス、認証方法、プログラム名などの多様なファクタがあらかじめ定義されているので、盗んだパスワードを悪用する攻撃を阻止するための信頼できるパスの認可の実装に役立ちます。このような統制は、意図しない構成変更を防ぐだけでなく、ハッカーや内部犯行者によるアプリケーションの改悪を阻止します。
Oracle Database Vaultの必須モードのレルムを利用すると、アプリケーション・オブジェクトへのアクセスを禁止でき、オブジェクト所有者など、オブジェクトに対する権限が直接付与されている場合もアクセスできなくなります。必須レルムでは、アクセスできるユーザーを分析する必要はありません。これは、認可ユーザーのリストからそれが明らかであるためです。
親トピック: Oracle Database Vaultの概要
1.1.4 エンタープライズ・アプリケーションの保護ポリシー
アプリケーション固有のOracle Database Vault保護ポリシーおよびガイドラインを、主要なエンタープライズ・アプリケーションで利用可能です。
これらのエンタープライズ・アプリケーションには、Oracle Fusion Applications、Oracle E-Business Suit、Oracle PeopleSoft、Oracle Siebel、Oracle Financial Services (i-Flex)、Oracle Primavera、SAPおよびInfosysのFinacleが含まれています。Oracle Database Vaultは、アプリケーションを変更したりクライアントを変更する必要がないため、ほとんどの既製アプリケーションやカスタム・アプリケーションで使用できます。
親トピック: Oracle Database Vaultの概要
1.2 Oracle Database Vaultの使用に必要な権限
Oracle Database Vaultは、様々なユーザーが職務の分離ガイドラインに基づいて特定のタスクを実行するためのデータベース・ロールを提供します。
よく使用されるロールは次のとおりです。
-
DV_OWNER
およびDV_ADMIN
では、Database Vaultポリシーを作成および管理できます。 -
DV_ACCTMGR
では、ユーザー・アカウントを管理できます。
Oracle Database Vaultを構成して有効化すると、DV_OWNER
ロールがユーザーに付与されます。このユーザーは、構成プロセスの開始前に存在する必要があります。また、DV_ACCTMGR
ロールが、2人目となるオプションのユーザーに付与されます。このユーザーも構成前に存在する必要があります。Database Vaultロールは他のユーザーに付与できますが、それらのユーザーが信頼できることを確認してください。
登録プロセスの間に、DV_OWNER
ユーザーとDV_ACCTMGR
ユーザーのバックアップ・アカウントを作成する必要があります。ベスト・プラクティスとして、これらのバックアップ・アカウントを保持し続けることをお薦めします。
1.3 Oracle Database Vaultのコンポーネント
Oracle Database Vaultには、PL/SQLパッケージおよび他の特定のツールを含む一連のコンポーネントがあります。
- Oracle Database Vaultアクセス制御コンポーネント
Oracle Database Vaultを使用して一連のコンポーネントを作成し、データベース・インスタンスのセキュリティを管理できます。 - Oracle Database Vault DVSYSおよびDVFスキーマ
Oracle Database Vaultのデータベース・オブジェクトおよびパブリック・ファンクションは、それぞれDVSYS
とDVF
スキーマに格納されます。 - Oracle Database Vault PL/SQLインタフェースおよびパッケージ
Oracle Database Vaultには、セキュリティ管理者またはアプリケーション開発者がアクセス制御ポリシーを構成するためのPL/SQLインタフェースおよびパッケージが用意されています。 - Oracle Database Vaultレポートおよびモニタリング・ツール
Oracle Enterprise Managerは、Oracle Database Vaultレポートを生成および保守します。 - Oracle Enterprise Manager Cloud ControlのDatabase Vault Administratorページ
Oracle Database Vaultはデフォルトで事前インストールされており、簡単に有効化できます。
親トピック: Oracle Database Vaultの概要
1.3.1 Oracle Database Vaultアクセス制御コンポーネント
Oracle Database Vaultを使用して一連のコンポーネントを作成し、データベース・インスタンスのセキュリティを管理できます。
これらのコンポーネントは次のとおりです。
-
レルム。レルムとは、データベース内で、スキーマ、オブジェクトおよびロールを保護できる保護ゾーンです。たとえば、会計、販売、人事に関する一連のスキーマ、オブジェクトおよびロールを保護できます。これらをレルムに保護すると、レルムを使用してシステム権限とオブジェクト権限の利用を特定のアカウントまたはロールに限定することができます。これにより、これらのスキーマ、オブジェクト、ロールを使用するユーザーに対してきめ細かいアクセス制御を提供できるようになります。レルムの構成では、レルムについて詳しく説明します。「Oracle Database VaultレルムのAPI」も参照してください。
-
コマンド・ルール。コマンド・ルールとは、ユーザーによる
SELECT
文、ALTER SYSTEM
文、データベース定義言語(DDL)文およびデータ操作言語(DML)文などのほぼすべてのSQL文の実行方法を制御するために作成する特別なセキュリティ・ポリシーです。コマンド・ルールでは、ルール・セットを使用して、文が許可されるかどうかを判断します。コマンド・ルールの詳細は、「コマンド・ルールの構成」で説明しています。「Oracle Database Vaultコマンド・ルールのAPI」も参照してください。 -
ルール・セット。ルール・セットとは、レルム認可、コマンド・ルール、ファクタ割当て、保護アプリケーション・ロールに関連付けることのできる1つ以上のルールの集まりです。ルール・セットは、それに含まれる各ルールと評価タイプ(「すべてのTrue」または「いずれかTrue」)に基づいて、trueまたはfalseに評価されます。ルール・セットは、ゼロ、1つまたは複数のレルム認可、コマンド・ルールまたはセキュア・アプリケーション・ロールに関連付けることができます。ルール・セットの詳細は、「ルール・セットの構成」で説明しています。「Oracle Database Vaultルール・セットのAPI」も参照してください。
- ルール。ルールは、TrueまたはFalseに評価されるPL/SQL式です。複数のルール・セットで同じルールを使用できます。詳細は、ルール・セットの機能を参照してください。
-
ファクタ。ファクタとは、ユーザー・ロケーション、データベースIPアドレス、セッション・ユーザーなどOracle Database Vaultで信頼できるパスとして認識および使用できる名前付きの変数または属性です。ルールでファクタを使用すると、データベースに接続するデータベース・アカウントを認可したり、データの可視性および管理性を制限する特定のデータベース・コマンドを実行したりするアクティビティを制御できます。各ファクタは1つ以上のアイデンティティを持ちます。アイデンティティは、ファクタの実際の値です。ファクタの取得メソッド、またはそのアイデンティティ・マッピング・ロジックによって、ファクタは複数のアイデンティティを持つ場合があります。ファクタの詳細は、「ファクタの構成」で説明しています。「Oracle Database VaultファクタのAPI」も参照してください。
-
セキュア・アプリケーション・ロール。セキュア・アプリケーション・ロールは、Oracle Database Vaultルール・セットの評価に基づいて有効化できる特別なOracle Databaseロールです。セキュア・アプリケーション・ロールの詳細は、「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」で説明しています。「Oracle Database Vaultセキュア・アプリケーション・ロールのAPI」も参照してください。
これらのコンポーネントを補強するため、Oracle Database Vaultには一連のPL/SQLインタフェースおよびパッケージが用意されています。「Oracle Database Vault PL/SQLインタフェースおよびパッケージ」で概要を説明しています。
一般的に、最初のステップは、保護するデータベース・スキーマまたはデータベース・オブジェクトを含むレルムを作成することです。ルール、コマンド・ルール、ファクタ、アイデンティティ、ルール・セットおよびセキュア・アプリケーション・ロールを作成すると、さらに強固にレルムを保護できます。また、これらのコンポーネントが監視および保護するアクティビティでレポートを実行できます。「Oracle Database Vaultの開始」には、Oracle Database Vaultの基本的な機能を紹介する簡単なチュートリアルが用意されています。以降の章では、さらに高度なチュートリアルを扱います。「Oracle Database Vaultレポート」では、構成、およびOracle Database Vaultで実行されるその他のアクティビティを確認するためのレポート実行方法の詳細が提供されます。
1.3.2 Oracle Database Vault DVSYSおよびDVFスキーマ
Oracle Database Vaultのデータベース・オブジェクトおよびパブリック・ファンクションは、それぞれDVSYS
とDVF
スキーマに格納されます。
Oracle Database Vaultには、OracleデータをOracle Database Vault用に処理する際に必要なデータベース・オブジェクトを保存するDVSYS
スキーマが用意されています。このスキーマには、Oracle Database Vaultが使用するロール、ビュー、アカウント、ファンクションおよびその他のデータベース・オブジェクトが含まれます。DVF
スキーマには、Oracle Database Vaultアクセス制御構成内に設定されたファクタ値を(実行時に)取得するパブリック・ファンクションが含まれます。DVSYS
およびDVF
スキーマは、コンテナ・データベース内、およびOracle Database Vaultを使用するプラガブル・データベース内に存在する必要があります。これらのスキーマは両方ともスキーマ専用アカウントとして認証されます。それらには認証権限もパスワードもありません。これらのアカウントは、デフォルトでロックされており、Oracleサポートからの指示がないかぎりロックされたままにしておく必要があります。
1.3.3 Oracle Database Vault PL/SQLインタフェースおよびパッケージ
Oracle Database Vaultには、セキュリティ管理者またはアプリケーション開発者がアクセス制御ポリシーを構成するためのPL/SQLインタフェースおよびパッケージが用意されています。
PL/SQLプロシージャおよびファンクションを使用すると、指定されたデータベース・セッションのコンテキスト内にあるアクセス制御ポリシーの範囲内において、通常のデータベース・アカウントでの操作が可能になります。
詳細は、「Oracle Database VaultレルムのAPI」から「Oracle Database Vault APIリファレンス」までを参照してください。
1.3.4 Oracle Database Vaultレポートおよびモニタリング・ツール
Oracle Enterprise Managerは、Oracle Database Vaultレポートを生成および保守します。
Oracle Database Vaultには、Oracle Database Vaultの構成設定に関する情報(ステータスやコンポーネント情報など)を取得できるデータベース・ビューが用意されています。
また、Oracle Enterprise Manager、Oracle Audit Vault and Database FirewallまたはOracle Data Safeを使用することで、Oracle Database統合監査証跡によって、ポリシーの変更、セキュリティ違反の試行、Oracle Database Vaultの構成および構造の変更を監視できます。
1.3.5 Oracle Enterprise Manager Cloud ControlのDatabase Vault Administratorページ
Oracle Database Vaultはデフォルトで事前インストールされており、簡単に有効化できます。
Oracle Database Vaultの管理はOracle Enterprise Manager Cloud Controlに完全統合されているので、セキュリティ管理者は効率的な中央集中型インタフェースでOracle Database Vaultを管理できます。
Oracle Enterprise Manager Cloud Controlには、Oracle Database Vaultのポリシーの表示と構成、およびOracle Database Vaultのアラートとレポートの表示に使用できるグラフィカル・ユーザー・インタフェースが用意されています。Oracle Database Vault Administratorには、ベースライン・セキュリティ構成の理解をサポートするセキュリティ関連のレポートが多数用意されています。これらのレポートは、このベースラインからの偏差の特定にも役立ちます。
「Oracle Database Vaultの開始」からOracle Database Vault環境でのDBA操作」では、レルム、コマンド・ルール、ファクタ、ルール・セット、セキュア・アプリケーション・ロールで定義されるアクセス制御ポリシーを構成するためのOracle Database Vault Administratorページの使用方法と、他のOracle製品へのOracle Database Vaultの統合方法について説明します。「Oracle Database Vaultの監視」では、これらのページを使用してDatabase Vaultアクティビティを監視する方法について、「Oracle Database Vaultレポート」では、Oracle Database Vaultのレポート作成について説明します。
1.4 Oracle Database Vaultのコンプライアンスへの対応
法令を順守することで得られる最も大きな副産物の1つは、セキュリティに対する意識の向上です。
これまで、情報技術(IT)部門は高可用性とパフォーマンスを重視してきました。法令順守に重点を置くことで、ITインフラストラクチャ、データベースおよびアプリケーションをセキュリティという観点から客観的に見ることが必要になりました。一般的な疑問には次のものがあります。
-
どこに機密情報が保存されているのか。
-
誰がこの情報へのアクセス権を持っているのか。
サーベンス・オクスリー法(Sarbanes-Oxley Act)、医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act、HIPAA)、国際業務を行う銀行の自己資本比率に関する国際統一基準(改定版)(バーゼルII、International Convergence of Capital Measurement and Capital Standards: a Revised Framework)、日本の個人情報保護法、PCIデータ・セキュリティ基準(Payment Card Industry Data Security Standard、PCI DSS)、欧州連合のプライバシと電子通信に関する指令(European Union Directive on Privacy and Electronic Communications)などの規制には、内部規制、職務分離およびアクセス制御を含む共通のテーマがあります。
サーベンス・オクスリーやHIPAAなどの規制による変更の多くは性質上手続き的なものであるのに対し、その他は技術的な投資を必要とする場合があります。規制に共通に見られるセキュリティ要件は厳密な内部規制です。Oracle Database Vaultを使用することで企業が達成できるコンプライアンスのレベルは規制によって異なります。一般的に、Oracle Database Vaultレルム、コマンド・ルール、ファクタおよび職務の分離機能は、規制により世界的に対応が求められている、全体的なセキュリティ・リスクを低減します。
表1-1に、潜在的なセキュリティの脅威に対応している規制を示します。
表1-1 潜在的なセキュリティの脅威に対応している規制
規制 | 潜在的なセキュリティの脅威 |
---|---|
サーベンス・オクスリー法(Sarbanes-Oxley)302条 |
データの不正な変更 |
サーベンス・オクスリー法(Sarbanes-Oxley)404条 |
データの変更、不正なアクセス |
サーベンス・オクスリー法(Sarbanes-Oxley)409条 |
サービス妨害、不正なアクセス |
グラム・リーチ・ブライリー(Gramm-Leach-Bliley) |
不正なアクセス、変更または公開 |
医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act、HIPAA)164.306 |
データへの不正なアクセス |
HIPAA 164.312 |
データへの不正なアクセス |
バーゼルII(Basel II) - 内部リスク管理 |
データへの不正なアクセス |
CFR Part 11 |
データへの不正なアクセス |
日本の個人情報保護法 |
データへの不正なアクセス |
欧州連合のプライバシと電子通信に関する指令(EU Directive on Privacy and Electronic Communications) |
データへの不正なアクセス |
PCIデータ・セキュリティ基準(Payment Card Industry Data Security Standard、PCI DSS) |
データの不正な変更 |
親トピック: Oracle Database Vaultの概要
1.5 Oracle Database Vaultによるユーザー・アカウントの保護
多くのセキュリティ侵害は、外部と内部の両方とも、特権データベース・ユーザー・アカウントを標的にし、データベースからデータを盗み出します。
Oracle Database Vaultは、レルム、ファクタ、コマンド・ルールを使用して権限ユーザー・アカウントへの攻撃を防ぐのに役立ちます。さらに、これらのコンポーネントはデータベース、アプリケーションおよび機密情報への安全なアクセスを支援する強力なセキュリティ・ツールを提供します。ルールとファクタを結合して、データベースのコマンドの実行が可能な条件の制御や、レルムによって保護されているデータへのアクセスの制御ができます。たとえば、ルールとファクタを作成し、IPアドレス、日時および特定のプログラム(JDBC、SQL Developer、SQL*Plusなど)に基づいてデータへのアクセスを制御できます。これにより、指定の条件を満たす接続のみにアクセスを制限できます。また、認可されていないアプリケーションによるデータベースへのアクセスとともに、アプリケーション・データへの不正なアクセスも防ぐことができます。たとえば、ルールを定義してDROP TABLE
文の実行を特定のIPアドレスやホスト名に制限できます。
親トピック: Oracle Database Vaultの概要
1.6 Oracle Database Vaultによる柔軟なセキュリティ・ポリシーの実現
Oracle Database Vaultは、データベースの柔軟なセキュリティ・ポリシーの設計を支援します。
たとえば、DBA
ロールを持つデータベース・ユーザーは、そのロールに付与されたDROP ANY TABLE
システム権限を使用できます。経験のない管理者が、DROP TABLE
コマンドを実行したときに非本番データベース上にいると思い込み、実際には本番システム上にいて重要なアプリケーション表を削除するとします。これにより、アプリケーションの停止、データの損失およびリカバリ時間が発生する可能性があります。Oracle Database Vaultを使用すると、このユーザーによるDROP TABLE
文の使用を制限することでそのような変更を防ぐように、コマンド・ルールを作成できます。また、文の実行を次のようにして制限するなど、アクティビティをさらに制限するルール・セットをコマンド・ルールに追加できます。
-
時間別(たとえば、営業時間の午前8時から午後6時まで、月曜日から金曜日まで)
-
リモートではなく、ローカル・アクセスのみに制限
-
アクションを認可するために、1人のユーザーではなく2人のデータベース・ユーザーが必要
-
ユーザーがOracle Database Vaultセキュア・アプリケーション・ロールを有効にしている場合
-
ホスト名またはIPアドレス別(たとえば、ホスト名を
%appserver%
にするか、192.0.2.150のIPアドレスと一致させることができます)
Oracle Database Vaultの職務分離は、規模を問わず企業の要件に合わせてカスタマイズできます。たとえば、専門のITスタッフや、アウトソーシング先のバックエンド事業者を抱えている大規模なユーザーは、職務分離をさらに微調整して、アウトソーシング先のデータベース管理者が実行できる処理を制御することができます。一方、一部のユーザーが複数の職責を兼ねる小規模な組織であれば、職務分離を整理し、それらのユーザーが職責ごとに個別の専用アカウントを作成することができます。実行されたすべてのアクションを追跡できるので、侵入者が権限のあるデータベース・アカウントを侵害して不正利用し、機密データを盗み出すことも防止できます。また、監査者によるコンプライアンスの検証も容易になります。
親トピック: Oracle Database Vaultの概要
1.7 Oracle Database Vaultのデータベース統合に関する問題への対応
統合とクラウド環境によってコストは削減されますが、機密アプリケーション・データが、本来アクセスする必要のない人にも公開されるおそれがあります。
ある国からのデータがまったく別の国でホスティングされることもありますが、そのデータへのアクセスはデータが属する国の規制に基づいて制限する必要があります。Oracle Database Vaultによる統制の下で、データベース管理者によるアプリケーション・データへのアクセスを禁止することによって、このような環境のセキュリティを強化できます。加えて、統制はアプリケーションのバイパスのブロックにも役立ち、アプリケーション層からアプリケーション・データへは信頼できるパスだけを強制的に使用させることができます。
Oracle Database Vaultでは、セキュリティ管理のために次の4つの個別の職務分離制御が提供されます。
-
DBA
ロールを使用した日常的なデータベース管理者作業 -
DV_OWNER
ロールとDV_ADMIN
ロールを使用したセキュリティ管理者作業 -
DV_ACCTMGR
ロールを使用したアカウント管理者作業 -
信頼できる名前付きユーザーによるロールおよび権限の付与
Oracle Database Vault職務分離制御はカスタマイズでき、リソースが限られている組織は、複数のOracle Database Vault責務を同じ管理者に割り当てることができますが、あるアカウントが盗用された場合にデータベースへの損害が最小限に抑えられるよう、職務分離ロールごとに別個のアカウントを使用します。
今日においても、非常に多くのOracleデータベースがエンタープライズ、さらには世界中に分散しています。ただし、今後数年間のコスト削減戦略としてデータベース統合が効果を発揮するには、専用データベース・アーキテクチャによって提供される物理的なセキュリティも、統合環境で利用できなければなりません。Oracle Database Vaultは、データベース統合に関する主要なセキュリティの問題に対応します。
図1-2に、次のデータベースのセキュリティ問題にOracle Database Vaultがどのように対応するかを示します。
-
管理権限のあるアカウントからのアプリケーション・データへのアクセス: この場合、Oracle Database Vaultが許可しないため、データベース管理者はFinanceレルムにより保護されているスキーマにアクセスできません。データベース管理者は最も権限が多く信頼されているユーザーですが、データベースに存在するアプリケーション・データへのアクセス権を付与する必要はありません。
-
アプリケーション・データへのアクセスに関する職務の分離: この場合、
HR
レルムの所有者には、HR
レルム・スキーマへのアクセス権がありますが、Procurement
やFinance
へのアクセス権はありません。
データベースを統合すると、複数の強力なユーザー・アカウントが1つのデータベース内に存在することになります。つまり、データベース全体の管理者だけでなく、個々のアプリケーション・スキーマの所有者も強力な権限を持つ可能性があるということです。権限の取消しは、既存のアプリケーションに悪影響を及ぼす可能性があります。Oracle Database Vaultレルムを使用すると、信頼できるアプリケーション・パスを介したアプリケーションへのアクセスを強制し、アプリケーション・スキーマのユーザー名とパスワードがアプリケーション自体以外のユーザーによって使用されるのを防止できます。たとえば、SELECT ANY TABLE
システム権限を持つデータベース管理者が、その権限を利用して同じデータベースに存在する他のアプリケーション・データを表示することを制限できます。
親トピック: Oracle Database Vaultの概要
1.8 マルチテナント環境におけるOracle Database Vaultの動作について
マルチテナント環境でOracle Databases Vaultを使用する場合は、3つの異なる構成計画を実装できます。
- マルチテナント環境におけるOracle Database Vaultの動作について
マルチテナント環境でOracle Database Vaultを使用すると、データベース統合のセキュリティが向上します。 - 1つ以上のPDBで構成され有効化されたOracle Database Vault
Oracle Database Vaultの使用は、有効化されたコンテナ・データベース(CDB)に関連付けられているプラガブル・データベース(PDB)ではオプションです。 - PDBでOracle Database Vaultを有効にせずにCDBで操作制御を有効にする
Oracle Database Vault操作制御では、プラガブル・データベース(PDB)内のアプリケーション・データをコンテナ・データベース(CDB)内の共通特権ユーザーから分離できます。 - Oracle Database VaultとOracle Operations Controlの同時有効化
マルチテナント環境でのOracle Database Vaultと操作制御は、簡単に連携できます。 - マルチテナント環境でのOracle Database Vaultの通常モードまたは厳密モード
コンテナ・データベース(CDB)でOracle Database Vaultを有効にした場合、通常モードか厳密モードを構成できます。 - マルチテナント環境でのOracle Database Vault共通オブジェクト
Database Vaultを有効にしたプラガブル・データベース(PDB)を構成した場合は、DVSYS
スキーマが、コンテナ・データベース(CDB)ルートに格納されている共通ユーザー・スキーマになります。 - アプリケーション・コンテナ環境でのOracle Database Vault
Oracle Database Vaultでは、アプリケーション・コンテナ・ルート内およびアプリケーション・コンテナの各クローン内のデータおよびメタデータを保護できます。
親トピック: Oracle Database Vaultの概要
1.8.1 マルチテナント環境におけるOracle Database Vaultの動作について
マルチテナント環境でOracle Database Vaultを使用すると、データベース統合のセキュリティが向上します。
Oracleマルチテナント環境でOracle Database Vaultを使用するには、まずコンテナ・データベースにおいてそれを構成し有効化する必要があります。その後、次の様々な構成計画のどれかでOracle Database Vaultを使用できます:
-
1つ以上のプラガブル・データベース(PDB)においてOracle Database Vaultを構成し有効化します。
-
PDBでOracle Database Vaultを有効にせずに、コンテナ・データベースでOracle Database Vault操作制御を有効にします。
-
Oracle Database VaultとOracle操作制御の両方を同時に有効にします。
マルチテナント環境は、さらに次の点でOracle Database Vaultに影響します:
-
通常モードまたは厳密モードを有効にする方法
-
共通オブジェクトの処理方法
-
アプリケーション・コンテナがOracle Database Vaultに与える影響
1.8.2 1つ以上のPDBで構成され有効化されたOracle Database Vault
Oracle Database Vaultの使用は、有効化されたコンテナ・データベース(CDB)に関連付けられているプラガブル・データベース(PDB)ではオプションです。
Oracle Database Vaultは、非PDB、いくつかのPDB、またはすべてのPDBで有効にできます。Oracle Database Vaultを、それを使用する各PDBで構成し有効化する必要があります。これにより、Oracle Database Vaultで提供されるデータベース・ロール、レルム、コマンド・ルールおよび認可にわたり、職責の分離を強制適用できます。
1.8.3 PDBでOracle Database Vaultを有効にせずにCDBで操作制御を有効にする
Oracle Database Vault操作制御では、プラガブル・データベース(PDB)内のアプリケーション・データをコンテナ・データベース(CDB)内の共通特権ユーザーから分離できます。
CDBでOracle Databaseを構成し有効化した後、CDBから操作制御を有効にして、関連するすべてのPDBを保護できるようにします。操作制御の利点の1つは、PDBでOracle Database Vaultを有効にする必要がないことです。ただし、それにより、コンテナ・ユーザーおよびコンテナ特権ユーザーが、すべてのPDB内の、Oracleによって保守されていないスキーマ・データにアクセスできなくなります。マルチテナント環境では、これにより、PDBの保守方法を変更することなく、CDBからの職務の分離を強制適用できます。このユースケースは、データベース・インフラストラクチャ(CDBなど)が集中管理されているが各PDBにそれ固有のデータベース管理者またはアプリケーション管理者が存在する、Database as a Service (DBaaS)を提供している組織において非常に重要である場合があります。
1.8.4 Oracle Database VaultとOracle Operations Controlの同時有効化
マルチテナント環境でのOracle Database Vaultと操作制御は、簡単に連携できます。
コンテナ・データベース(CDB)でOracle Database Vaultと操作制御の両方を有効にした後、任意のプラガブル・データベース(PDB)または非PDBでOracle Database Vaultを有効にできます。
PDBでOracle Database Vaultを有効にせずにCDBで操作制御のみを有効にした場合と同様に、操作制御により、コンテナベースの特権ユーザーがどのプラガブル・データベース内のアプリケーション・データにもアクセスできなくなります。また、PDBでOracle Database Vaultを有効にすると、職務、ロール、レルム、コマンド・ルールおよび認可の分離によって、PDB内で特権ユーザーからアプリケーション・データが保護されます。
操作制御とOracle Database Vaultを組み合せると、セキュリティと柔軟性がもたらされて、コンテナ管理者がPDB内のアプリケーション・データから分離され、そのアプリケーション・データが誤用、悪用、好奇心旺盛な内部関係者またはヒューマン・エラーから保護されます。
1.8.5 マルチテナント環境でのOracle Database Vaultの標準モードまたは厳密モード
コンテナ・データベース(CDB)でOracle Database Vaultを有効にした場合、通常モードか厳密モードを構成できます。
次のコマンドのどちらかによって、通常モードが有効になります:
EXEC DBMS_MACADM.ENABLE_DV;
EXEC DBMS_MACADM.ENABLE_DV (strict_mode => 'n');
厳密モードを有効にするには、次のコマンドを実行します:
EXEC DBMS_MACADM.ENABLE_DV (strict_mode => 'y');
デフォルトの非厳密モードを選択した場合、Oracle Database Vaultが有効または無効になっているPDBは、CDBでOracle Database Vaultが有効になっているかぎり、正常に機能し続けます。厳密モードを使用してOracle Database Vaultを有効にした場合、Oracle Database Vaultが無効になっているPDBは、制限モードで動作します。
PDBを読取り/書込みモードでオープンするには、PDBでOracle Database Vaultを構成し有効にするか、CDBで厳密モードを無効にする必要があります。
1.8.6 マルチテナント環境でのOracle Database Vault共通オブジェクト
Database Vaultを有効にしたプラガブル・データベース(PDB)を構成した場合は、DVSYS
スキーマが、コンテナ・データベース(CDB)ルートに格納されている共通ユーザー・スキーマになります。
つまり、DVSYS
スキーマ内のすべてのオブジェクト(表、データ・ディクショナリ・ビュー、ユーザー・アカウント、PL/SQLパッケージ、デフォルト・ポリシーなど)が、このスキーマに利用可能な共通の権限の影響下にあるということになります。つまり、レルム、ファクタなどをルートに作成してCDBルート内のスキーマを保護できます。Oracle Database Vaultは、関連するPDBにおいて構成する前に、まずCDBルートで構成するようにしてください。
1.8.7 アプリケーション・コンテナ環境でのOracle Database Vault
Oracle Database Vaultでは、アプリケーション・コンテナ・ルート内およびアプリケーション・コンテナの各クローン内のデータおよびメタデータを保護できます。
コンテナ・データベース(CDB)には、ゼロ個以上のアプリケーション・コンテナが含まれます。アプリケーション・コンテナ内で、アプリケーションはアプリケーション・ルートに格納される共通データおよびメタデータの名前付けおよびバージョニングされたセットです。たとえば、1つのアプリケーション・コンテナ内で複数の販売関連PDBを作成し、これらのプラガブル・データベース(PDB)で一連の共通表および表定義からなるアプリケーションを共有できます。複数の人事管理関連PDBを、それ固有の共通表および表定義とともに別のアプリケーション・コンテナ内に格納できます。
Oracle Database Vaultとアプリケーション・コンテナを組み合せることで、アプリケーション・ルートのみで共通レルムを構成できます。ただし、共通ルール・セットおよびコマンド・ルールは、アプリケーション・ルート内かコンテナ・データベース・ルート内のどちらかで作成できます。アプリケーション・ルート内の共通コマンド・ルールは、その関連するプラガブル・データベースに適用され、コンテナ・ルート内の共通コマンド・ルールは、コンテナ・データベース環境内のすべてのプラガブル・データベースに適用されます。共通レルムおよびコマンド・ルールを作成できることにより、マルチテナント環境内のすべてのプラガブル・データベースにこれらの同じコンポーネントを作成する必要がなく、コンテナ・データベース全体で共有される一連のレルム、ルール・セットまたはコマンド・ルールを使用するポリシーを作成できます。
PDBごとに個別のローカル・ポリシーを作成できます。Oracle Database Vaultを使用してオブジェクトを保護すると、Oracle Database Vaultで、共通オブジェクトに対する共通権限に、ローカル・システム権限と同じ強制ルールが適用されます。