23 CDBでのOracle Database Vaultの使用
Oracle Database Vaultは、マルチテナント・コンテナ・データベース(CDB)で使用できます。
この項では、次の項目について説明します。
- Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制により、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件に順守できます。 - マルチテナント環境におけるOracle Database Vaultの動作について
統合のセキュリティをさらに強化するために、Oracle Database VaultをOracle Multitenantとともに使用できます。 - マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。 - Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_OLS_STATUS
データ・ディクショナリ・ビューでは、Oracle Databaseが構成され有効化されているかどうかを確認します。 - CDBルートでのDatabase Vaultの登録
マルチテナント環境では、CDBルートでDatabase Vault適用対象のロールを使用する共通ユーザーにOracle Database Vaultを登録します。 - 個別PDBを管理するためのDatabase Vault共通ユーザーの登録
マルチテナント環境では、最初にOracle Database Vaultをルートで登録し、次にPDBで登録する必要があります。 - プラグインされたDatabase Vault PDB用の共通Database Vaultアカウント作成
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。 - マルチテナント環境におけるレルム
マルチテナント環境では、アプリケーション・ルート内の共通オブジェクトを保護するためにレルムを作成できます。 - マルチテナント環境におけるレルム認可
マルチテナント環境では、共通レルム認可のルールおよび動作は、他の共通オブジェクトの認可と同様です。 - マルチテナント環境におけるルール・セットとルール
マルチテナント環境では、アプリケーション・ルートでルール・セットおよびその関連付けられたルールを作成できます。 - マルチテナント環境でのコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。 - マルチテナント環境におけるOracle Database Vaultポリシー
Oracle Database Vaultポリシーは、それらが作成されたプラガブル・データベース(PDB)に対してのみローカルとなります。 - スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン
リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBはCDBにプラグインできます。
親トピック: マルチテナント環境でのOracle機能の使用
Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制により、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件に順守できます。
統制によって特権アカウントによるアプリケーション・データへのアクセスをブロックすることや、信頼できるパスの認可を使用してデータベース内での要注意操作を統制することができます。権限およびロールの分析により、最小権限のベスト・プラクティスを使用することで、既存のアプリケーションのセキュリティを強化できます。Oracle Database Vaultは、既存のデータベース環境のセキュリティを透過的に強化するので、コストと時間をかけてアプリケーションを変更する必要はありません。
関連トピック
マルチテナント環境におけるOracle Database Vaultの動作について
統合のセキュリティをさらに強化するために、Oracle Database VaultをOracle Multitenantとともに使用できます。
Oracle Database Vaultでは、プラガブル・データベース(PDB)内や、PDBとコンテナ・データベースでの共通特権ユーザーとの間での、特権ユーザー・アクセスを禁止できます。各PDBには、レルム、ルール・セット、コマンド・ルール、デフォルト・ポリシー(デフォルト・レルムなど)など独自のDatabase Vaultメタデータがあります。また、任意の子のPDBでDVSYS
スキーマやDVF
スキーマ内のオブジェクトを自動的に利用できます。どちらのスキーマも共通のユーザー・スキーマです。
共通レルムはアプリケーション・ルートのみで構成できますが、共通ルール・セットおよびコマンド・ルールは、アプリケーション・ルートまたはCDBルートのどちらでも作成できます。アプリケーション・ルート内の共通コマンド・ルールは、その関連付けられたPDBに適用され、CDBルート内の共通コマンド・ルールは、CDB環境内のすべてのPDBに適用されます。共通レルムおよびコマンド・ルールを作成できることにより、CDB環境全体で共有の一連のレルム、ルール・セットまたはコマンド・ルールを使用するポリシーを作成できます。マルチテナント環境ですべてのPDBに対してこれらの同じコンポーネントを作成する必要はありません。共通保護は、Oracle Database Vaultが有効になっているアプリケーション・ルートに関連付けられたすべてのPDBに適用されます。
PDBごとに個別のローカル・ポリシーを作成できます。Database Vaultを使用してオブジェクトを保護する場合、Database Vaultは、共通のオブジェクトの共通の権限を、ローカル・システム権限と同じ強制ルール下に置きます。
Database Vaultを有効にしたPDBを構成すると、DVSYS
スキーマが共通ユーザー・スキーマとなり、ルートに格納されます。つまり、DVSYS
スキーマ内のすべてのオブジェクト(表、データ・ディクショナリ・ビュー、ユーザー・アカウント、PL/SQLパッケージ、デフォルト・ポリシーなど)が、このスキーマに利用可能な共通の権限の影響下にあるということになります。すなわち、レルム、ファクタなどをルートに作成してルートのスキーマを保護できます。Database Vaultは、関連付けられたPDBで構成する前に、まずルートで構成するようにしてください。
CDBルートでOracle Database Vaultを有効にするときは、通常モードまたは厳密モードのどちらかを選択できます。設定は、選択した設定に基づいてCDB全体に伝播されます。たとえば、CDBに、Database Vaultが有効になっているPDBとDatabase Vaultが有効になっていないPDBが含まれているとします。通常モードを使用してDatabase Vaultを有効にした場合は、両方のタイプのPDBが通常どおり機能し続けます。厳密モードを使用してDatabase Vaultを有効にした場合、Database Vaultが無効になっているPDBは、制限されたモードで動作します。
図23-1では、Database Vaultが有効になっているかどうかによって、標準モードのデータベースで共通およびローカル・データベース管理者に可能になるアクセスがどのように異なるかを示します。このシナリオでは、共通ユーザーおよびローカル・ユーザーのいずれも、PDB1とPDB2のレルムにアクセスできません。共通ユーザーとPDB3のローカル・ユーザーはどちらも、Database Vaultが有効化されていないPDB3内のCustom Appアプリケーションにアクセスできます。
マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。
関連トピック
Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_OLS_STATUS
データ・ディクショナリ・ビューは、Oracle Databaseが構成され有効になっているかどうかを確認します。
SYS
ユーザー、およびDBA
ロールを付与されているユーザーが、これらのビューを問合せできます。
-
Database Vaultの場合:
-
非マルチテナント・データベースのために、またはマルチテナント環境でルートのみか個々のPDBのためにDatabase Vaultステータスを確認する場合は、
DBA_DV_STATUS
を問い合せます。次に例を示します。SELECT * FROM DBA_DV_STATUS;
次のような出力が表示されます。
NAME STATUS -------------------- ----------- DV_CONFIGURE_STATUS TRUE DV_ENABLE_STATUS TRUE
-
管理権限がある共通ユーザーとして、マルチテナント環境ですべてのPDBのDatabase Vaultステータスを確認する場合は、コンテナID (
CON_ID
)フィールドの追加を提供する、CDB_DV_STATUS
を問い合せます。
-
-
Oracle Label Securityの場合は、次のデータ・ディクショナリ・ビューを問い合せます。これらは、Database Vaultのそれらに相当するビューに似ています。
-
DBA_OLS_STATUS
-
CDB_OLS_STATUS
-
CDBルートでのDatabase Vaultの登録
マルチテナント環境では、CDBルートでDatabase Vault適用対象のロールを使用する共通ユーザーにOracle Database Vaultを登録します。
個別PDBを管理するためのDatabase Vault共通ユーザーの登録
マルチテナント環境では、Oracle Database Vaultをまずルートに登録して、後からPDBに登録する必要があります。
ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」
エラーが表示されます。
プラグインされたDatabase Vault PDB用の共通Database Vaultアカウント作成
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。
このPDBのDatabase Vault構成を管理するための共通ユーザーを有効化するには:
マルチテナント環境におけるレルム
マルチテナント環境では、アプリケーション・ルート内の共通オブジェクトを保護するためにレルムを作成できます。
個々のプラガブル・データベース(PDB)内でこれらのオブジェクトの周りに多数のオブジェクトおよびレルムを作成するのでなく、アプリケーション・ルートでレルムを作成する利点は、それらをアプリケーション・ルートという1つの場所で作成できるということです。このような方法で、それらを一元的に管理できます。
CDBルートでは、共通レルムは作成できません。
Database Vaultの共通レルムは、通常レルムか必須レルムのどちらかにできます。このレルムは、PDB内のローカル・オブジェクトではなく、アプリケーション・ルート内のオブジェクトのみを保護します。CDBルート、アプリケーション・ルート、および影響を受けるPDBはすべて、Database Vaultに対応している必要があります。
共通レルムを構成するには、一般に、DV_OWNER
またはDV_ADMIN
ロールが付与されている必要があります。共通レルムの共通認可を付与するには、アプリケーション・ルートにいる必要があります。アプリケーション・ルートに関連付けられているPDBにレルムを伝播するには、アプリケーション・ルートを同期させる必要があります。たとえば、saas_sales_app
というアプリケーションを同期させるには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
関連トピック
マルチテナント環境におけるレルム認可
マルチテナント環境では、共通レルム認可のルールおよび動作は、他の共通オブジェクトの認可と同様です。
共通レルムのローカル認可
共通レルムのローカル認可とは、ユーザーがアクセスしているPDBのためにこのユーザーが保持している認可のことを指します。
共通レルムのローカル認可のルールは、次のとおりです。
-
DV_OWNER
またはDV_ADMIN
ロールを共通で付与されているユーザーは、共通ユーザー、共通ロール、ローカル・ユーザーおよびローカル・ロールにローカル認可を付与できます。共通DV_OWNER
またはDV_ADMIN
ユーザーは、PDB内の共通レルムからローカル認可を削除することもできます。 -
ローカルDatabase Vault管理者は、PDB内のローカルで認可できます(つまり、ローカル認可をローカル・ユーザーと共通ユーザーの両方に付与する)。また、共通Database Vault管理者は、各PDBで認可を付与できます。共通レルム認可は、アプリケーション・ルートで共通Database Vault管理者のみが付与できます。
-
共通Database Vault管理者は、ローカル認可を、PDB内から共通レルムに追加することも、それから削除することもできます。
-
共通ユーザーに共通レルムのローカル認可しかない場合、このユーザーは、このローカル認可以外のPDB内の共通レルムにはアクセスできません。
-
共通ユーザーまたは共通ロールは、共通レルムへのローカル認可と共通認可の両方を同時に保持できます。共通レルムから共通ユーザーのローカル認可を削除しても、共通ユーザーの共通認可には影響しません。共通レルムから共通ユーザーの共通認可を削除しても、共通ユーザーのローカル認可には影響しません。
共通レルムの共通認可
共通レルムの共通認可とは、Database Vaultに対応しているすべてのコンテナで認可が有効になっていると同時に、共通ユーザーまたは共通ロールがアプリケーション・ルートで保持している認可のことを指します。
共通レルムのローカル認可のルールは、次のとおりです。
-
DV_OWNER
またはDV_ADMIN
ロールを共通で付与されているユーザーは、アプリケーション・ルート内の共通ユーザーまたはロールに共通レルム認可を付与できます。この共通Database Vault管理者は、アプリケーション・ルート内にいながら、共通認可の削除を実行できます。 -
この共通認可は、CDB内の、Database Vaultに対応しているコンテナに適用されます。
-
共通ユーザーにアプリケーション・ルート内の共通レルムに対する権限がある場合、このユーザーは、アプリケーション・ルート内およびアプリケーションPDB内の共通レルムによって保護されているオブジェクトにアクセスできます。
-
共通レルムに関連付けられているルール・セットは、共通ルール・セットである必要があります。共通認可に関連付けられている共通ルール・セットに追加されるルールに、ローカル・オブジェクトを含めることはできません。
アプリケーション・ルート内と個々のPDB内でのレルムの認可の動作
コンテナでのDatabase Vault強制の間に、共通レルムは、それがPDBでローカルで使用される場合の同じレルムと同じ強制動作を実行します。
マルチテナント環境におけるルール・セットとルール
マルチテナント環境では、アプリケーション・ルートでルール・セットおよびその関連付けられたルールを作成できます。
共通レルムでは、関連付けられたレルムまたはコマンド・ルールをDatabase Vaultで評価するときに、共通ルール・セットを使用する必要があります。共通ルール・セットとそのルールは、アプリケーション・ルートでのみ作成できます。共通ルール・セットは、作成後、共通ルール・セットを作成したルートに関連付けられているすべてのコンテナ内に存在します。共通ルール・セットは、共通ルールのみを含むことができます。
共通ルール・セットとそのルールを構成するには、DV_OWNER
またはDV_ADMIN
ロールが共通で付与されている必要があります。
関連トピック
マルチテナント環境におけるコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。
共通コマンド・ルールは、共通のレルム、ルール・セットおよびルールのみに関連付けることができます。ローカル・コマンド・ルールは、ローカルのレルム、ルール・セットおよびルールのみに関連付けることができます。
これらのコマンド・ルールをマルチテナント環境全体に適用するには、DVADM
またはDVOWNER
ロールを付与された共通ユーザーとして、CDBルートまたはアプリケーション・ルートからコマンド・ルール・プロシージャを実行する必要があります。CDBルートで作成される共通コマンド・ルールは、そのCDB環境内のすべてのPDBに適用されます。アプリケーション・ルートで作成される共通コマンド・ルールは、このアプリケーション・ルートに関連付けられているPDBのみに適用されます。CDBルートまたはアプリケーション・ルートに関連付けられているPDBにコマンド・ルールを伝播するには、PDBを同期させる必要があります。たとえば、saas_sales_app
というアプリケーション・ルートをアプリケーションPDBと同期するには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
CDBルートの共通コマンド・ルールをPDBと同期するには:
ALTER PLUGGABLE DATABASE APPLICATION APP$CDB$SYSTEM SYNC;
USER_ROLE_PRIVS
データ・ディクショナリ・ビューを問い合せることで、ユーザーのロールを確認できます。コマンド・ルールに関する情報を確認するには、DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを問い合せます。
マルチテナント環境におけるOracle Database Vaultポリシー
Oracle Database Vaultポリシーは、それらが作成されたプラガブル・データベース(PDB)に対してのみローカルとなります。
つまり、PDBでポリシーを作成した場合は、ローカルのレルムおよびコマンド・ルールのみをそれに追加できます。共通レルムまたは共通コマンド・ルールを保持できるDatabase Vaultポリシーは作成できません。