3 Oracle Database Vaultの開始
Oracle Database Vaultを使用して開始する前に、これをOracle Databaseで構成および有効化する必要があります。
- Oracle DatabaseでのOracle Database Vaultの構成および有効化について
インストール・プロセスでデフォルト・データベースを含めるように選択した場合、Oracle DatabaseにはDatabase Vaultが付属していますが、使用するには構成して有効化する必要があります。 - Oracle Database Vaultの構成および有効化
いくつかのシナリオに基づいてOracle Database Vaultを構成および有効化できます。 - Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
およびDBA_OLS_STATUS
データ・ディクショナリ・ビューは、Oracle Databaseが構成され有効化されているかどうかを確認します。 - Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultの管理用のページが用意されています。 - クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護
このチュートリアルでは、HR
スキーマの周辺でレルムを作成する方法を示します。
3.1 Oracle DatabaseでのOracle Database Vaultの構成および有効化について
インストール・プロセスでデフォルト・データベースを含めるように選択した場合、Oracle DatabaseにはDatabase Vaultが付属していますが、使用するには構成して有効化する必要があります。
構成および有効化プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。Oracle Label SecurityはOracle Database Vaultに必要ですが、別にOracle Label Securityの使用を開始してOracle Label Securityポリシーを作成する場合を除き、別個のライセンスは必要ありません。
カスタム・データベースを作成する場合、DBCAを使用してDatabase Vaultをインストールし、そのデータベースに対して有効にすることができます。登録プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。この手順は、CDBルート、アプリケーション・ルートおよび現在のプラガブル・データベース(PDB)に適用され、単一インスタンスとOracle Real Application Clusters (Oracle RAC)の両方のインストールに適用されます。マルチテナント・データベースでは、PDBのいずれかでDatabase Vaultを構成する前に、Database VaultをCDBルートで構成する必要があります。
構成プロセスの一環として、Oracle Database Vault管理者アカウントを作成しました。Oracle Database Vault構成では、それぞれに異なるパスワードを持つ4つの管理データベース・アカウント名(2つのプライマリ・アカウントと2つのバックアップ・アカウント)を推奨します。これらは、WITH ADMIN OPTION
句で付与された、Database VaultのロールであるDV_OWNER
およびDV_ACCTMGR
を保持するアカウントです。これらのアカウントの2つを使用して、管理権限を持つ名前付きユーザーにロールをプロビジョニングします。DV_OWNER
およびDV_ACCTMGR
ロールを持つ2つのバックアップ・アカウントを保持すると、SYS
または他のユーザーはこれらのロールを持つユーザーのパスワードをリセットできないため、名前付きユーザーの資格証明の紛失または資格証明の配置の誤りからリカバリできます。
ノート:
Oracle Database 12cより前のリリースからアップグレードした場合、Oracle Database Vaultを無効にしてアップグレードを実行します。アップグレード・プロセスが完了したら、Oracle Database Vaultを再度構成して有効にする必要があります。リリース12cより前のリリースからDatabase Vaultが有効化されていないOracleデータベースを移行する場合、Database Vaultの手動インストールを実行する必要があります。
3.2 Oracle Database Vaultの構成および有効化
いくつかのシナリオに基づいてOracle Database Vaultを構成および有効化できます。
- Database Vaultの構成および有効化について
関連するPDBで同じアクションを実行する前に、CDBルートでOracle Database Vaultを構成して有効化する必要があります。 - CDBルートでのDatabase Vaultの構成および有効化
CDBルートからDatabase Vault管理ロールを使用する予定の共通ユーザーに、Oracle Database Vaultを構成し有効化できます。 - 個別PDBを管理するためのDatabase Vault共通ユーザーの構成および有効化
Oracle Database VaultをまずCDBルートで構成および有効化してから、PDBで構成および有効化する必要があります。 - 特定のPDBを管理するためのDatabase Vaultローカル・ユーザーの構成および有効化
Oracle Database Vaultをまずルートで構成および有効化してから、PDBで構成および有効化する必要があります。 - Oracle Real Application Clusters環境でのOracle Database Vaultの構成および有効化
各Oracle RACノードを含むOracle Real Application Clusters (Oracle RAC)環境に対してOracle Database Vaultを構成できます。 - DV_OWNERおよびDV_ACCTMGRユーザーを保護するプロファイルの作成
プロファイルは、DV_OWNER
およびDV_ACCTMGR
ロールを付与されたユーザーに追加の保護を提供します。 - Oracle Database Vaultの手動インストール
特定の条件下では、Oracle Database Vaultを手動でインストールする必要があります。
親トピック: Oracle Database Vaultの開始
3.2.1 Database Vaultの構成および有効化について
関連するPDBで同じアクションを実行する前に、CDBルートでOracle Database Vaultを構成して有効化する必要があります。
CDBルートでDV_OWNER
ロールとDV_ACCTMGR
ロールを割り当てられた共通ユーザーも、PDBで同じロールを持つことができます。PDBでは、同じ共通ユーザーを使用してDatabase Vaultを構成および有効化することも、別のPDBローカル・ユーザーを使用することもできます。DV_ACCTMGR
ロールは、CDBルートの共通ユーザーに共通に付与されます。Database VaultをCDBルートに構成および有効化するときに、DV_OWNER
をローカルに、またはCDBルート共通ユーザーに共通に付与できます。DV_OWNER
を共通ユーザーにローカルに付与すると、共通DV_OWNER
ユーザーは、どのPDBでもこのロールを使用できなくなります。
3.2.2 CDBルートでのDatabase Vaultの構成および有効化
CDBルートからDatabase Vault管理ロールを使用する予定の共通ユーザーに、Oracle Database Vaultを構成し有効化できます。
UTL_RECOMP
PL/SQLパッケージを使用して、オブジェクトの妥当性をチェックできます。『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
関連トピック
- Database Vaultが構成および有効化されていることの確認
- Oracle Database Vaultロール
- Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
- DV_PATCH_ADMIN Database Vaultデータベース・パッチ・ロール
- CONFIGURE_DVの一般システム・メンテナンス・プロシージャ
- Oracle Real Application Clusters環境でのOracle Database Vaultの構成および有効化
- Oracle Database Vaultのアカウント・パスワードのリセット
3.2.3 個別PDBを管理するためのDatabase Vault共通ユーザーの構成および有効化
Oracle Database VaultをまずCDBルートで構成および有効化してから、PDBで構成および有効化する必要があります。
ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」
エラーが表示されます。
関連トピック
3.2.4 特定のPDBを管理するためのDatabase Vaultローカル・ユーザーの構成および有効化
Oracle Database Vaultをまずルートで構成および有効化してから、PDBで構成および有効化する必要があります。
「ORA-47503: Database VaultはCDB$ROOTで有効化されていません。」
というエラーが発生します。
3.2.5 Oracle Real Application Clusters環境でのOracle Database Vaultの構成および有効化
各Oracle RACノードを含むOracle Real Application Clusters (Oracle RAC)環境用にOracle Database Vaultを構成できます。
3.2.6 DV_OWNERおよびDV_ACCTMGRユーザーを保護するプロファイルの作成
プロファイルは、DV_OWNER
およびDV_ACCTMGR
ロールを付与されたユーザーに追加の保護を提供します。
DV_OWNER
またはDV_ACCTMGR
ロールを付与されたデータベース・ユーザーは、クリティカルな特権アカウントとみなされます。通常、これらのアカウントはサービス・アカウントとみなしてパスワードのロックアウト要件が適用されないようにする必要があります。Oracleでは、アカウントがロックされないカスタム・プロファイルを作成することをお薦めします。また、これらのDatabase Vault関連のアカウントの失敗したログイン試行の監査も必要です。
CREATE PROFILE
システム権限を持つユーザーとして、データベース・インスタンスにログインします。- 共通
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: データベース・インスタンスのルートにログインします。 - ローカルの
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: ユーザーを作成したPDBにログインします。
- 共通
- 次のようなプロファイルを作成します。
- 共通
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: ルートで、次のようなプロファイルを作成します。CREATE PROFILE c##dv_profile limit FAILED_LOGIN_ATTEMPTS 5 PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION PASSWORD_LOCK_TIME 1/1440 CONTAINER=ALL;
password_lock_time
を1/1440に設定すると、ログイン試行が5回失敗した後、ユーザー・アカウントが1分間ロックされます。これにより、DV_OWNER
関連のアカウントを永久にロックアウトできなくなります。組織や業界標準に合わせてこの制限を調整する必要があります。 - ローカル
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: PDBで、次のようなプロファイルを作成します。CREATE PROFILE dv_profile limit FAILED_LOGIN_ATTEMPTS 5 PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION PASSWORD_LOCK_TIME 1/1440 CONTAINER=CURRENT;
password_lock_time
を1/1440に設定すると、ログイン試行が5回失敗した後、ユーザー・アカウントが1分間ロックされます。これにより、DV_OWNER
関連のアカウントを永久にロックアウトできなくなります。組織や業界標準に合わせてこの制限を調整する必要があります。
- 共通
- このプロファイルを使用するために、
DV_OWNER
およびDV_ACCTMGR
ユーザー・アカウントを更新します。- 共通
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合:ALTER USER c##dvowner PROFILE c##dv_profile CONTAINER = ALL; ALTER USER c##dvowner_backup PROFILE c##dv_profile CONTAINER = ALL; ALTER USER c##dvacctmgr PROFILE c##dv_profile CONTAINER = ALL; ALTER USER c##dvacctmgr_backup PROFILE c##dv_profile CONTAINER = ALL;
- ローカル
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合:ALTER USER dvowner PROFILE dv_profile CONTAINER = CURRENT; ALTER USER dvowner_backup PROFILE dv_profile CONTAINER = CURRENT; ALTER USER dvacctmgr PROFILE dv_profile CONTAINER = CURRENT; ALTER USER dvacctmgr_backup PROFILE dv_profile CONTAINER = CURRENT;
- 共通
AUDIT_ADMIN
ロールを付与されたユーザーとして接続します。- 統合監査ポリシーを作成して有効化し、
DV_OWNER
またはDV_ACCTMGR
ロールを付与されたユーザーによる失敗したログインを追跡します。- 共通
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: ルートで、次のようなポリシーを作成します。CREATE AUDIT POLICY c##dv_logins ACTIONS LOGON; AUDIT POLICY c##dv_logins BY USERS WITH GRANTED ROLES DV_OWNER, DV_ACCTMGR WHENEVER NOT SUCCESSFUL;
- ローカル
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: PDBで、次のようなポリシーを作成します。CREATE AUDIT POLICY dv_logins ACTIONS LOGON; AUDIT POLICY dv_logins BY USERS WITH GRANTED ROLES DV_OWNER, DV_ACCTMGR WHENEVER NOT SUCCESSFUL;
- 共通
3.2.7 Oracle Database Vaultの手動インストール
特定の条件下では、Oracle Database Vaultを手動でインストールする必要があります。
3.3 Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
およびDBA_OLS_STATUS
データ・ディクショナリ・ビューでは、Oracle Databaseが構成され有効になっているかどうか確認されます。
SYS
ユーザー、およびDBA
ロールを付与されているユーザーが、これらのビューを問合せできます。
-
Database Vaultの場合:
-
ルートのみ、または個々のPDBのDatabase Vaultステータスを確認する場合は、
DBA_DV_STATUS
を問い合せます。たとえば:SELECT * FROM DBA_DV_STATUS;
次のような出力が表示されます。
NAME STATUS -------------------- ----------- DV_APP_PROTECTION NOT CONFIGURED DV_CONFIGURE_STATUS TRUE DV_ENABLE_STATUS TRUE
DV_APP_PROTECTION
は、Oracle Databaseマルチテナント環境のPDBローカル・データに共通ユーザーを自動的にアクセスすることを制限する操作制御を参照します。 -
マルチテナント環境のすべてのPDBのDatabase Vaultステータスを確認する場合は、管理権限を持つ共通ユーザーとして、コンテナID (
CON_ID
)フィールドの追加を提供するCDB_DV_STATUS
を問い合せます。
-
-
Oracle Label Securityの場合は、
DBA_OLS_STATUS
データ・ディクショナリ・ビューを問い合せます。
3.4 Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultの管理用のページが用意されています。
3.5 クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護
このチュートリアルでは、HR
スキーマの周辺でレルムを作成する方法を示します。
- このチュートリアルについて
このチュートリアルでは、Oracle Database VaultのPL/SQLパッケージを使用して、HR
サンプル・データベース・スキーマのEMPLOYEES
表の周辺でレルムを作成します。 - ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。 - ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。 - ステップ3: レルム違反の統合監査ポリシーの作成
Oracle Database Vaultのレルム、ルール・セットおよびファクタの統合監査ポリシーを作成できます。 - ステップ4: SEBASTIANユーザー・アカウントの作成
この段階では、オブジェクト権限が直接付与されたHR
スキーマおよびデータベースのユーザーまたはロールのみが、レルムで保護されたデータベース・オブジェクトを操作できます。システム権限に依存しているユーザーはできません。 - ステップ5: ユーザーSEBASTIANによるレルムのテスト
この段階で、ユーザーsebastian
は、HR.EMPLOYEES
表を問い合せてレルムをテストできます。 - ステップ6: レルムの認可の作成
次に、HR.EMPLOYEES
表にアクセスできるように、ユーザーSEBASTIAN
にHR Apps
レルムへの認可を与える必要があります。 - ステップ7: レルムのテスト
レルムをテストするには、HR
以外のユーザーでEMPLOYEES
表にアクセスを試みる必要があります。 - ステップ8: レルム違反からの監査レコードの表示
作成した統合監査ポリシーに対する違反は定期的にレビューしてください。 - ステップ9: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: Oracle Database Vaultの開始
3.5.1 このチュートリアルについて
このチュートリアルでは、Oracle Database VaultのPL/SQLパッケージを使用して、HR
サンプル・データベース・スキーマのEMPLOYEES
表の周辺でレルムを作成します。
レルム違反を記録して確認するための統合監査ポリシーを作成する方法についても学習します。
HR
スキーマのEMPLOYEES
表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HR
スキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。
3.5.2 ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。
HR
サンプル・スキーマがインストールされていることを確認してください。
3.5.3 ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。
HR
スキーマのEMPLOYEES
表にレルムを作成する必要があります。
DV_OWNER
ロールを付与されているユーザーとしてPDBに接続します。HR.EMPLOYEES
表の周囲でHR Apps
レルムを作成します。
この段階で、レルムが作成されていますが、それに対する認可は割り当てられていません。これは従来のレルム(realm_type => DBMS_MACADM.REGULAR_REALM
)であるため、直接付与されたユーザーはHR.EMPLOYEES
からREAD
またはSELECT
してこの表を引き続き表示できますが、READ ANY TABLE
やSELECT ANY TABLE
などのシステム権限に依存するユーザーは表示できません。このチュートリアルで後ほど対応します。
3.5.4 ステップ3: レルム違反に対する統合監査ポリシーの作成
Oracle Database Vaultのレルム、ルール・セットおよびファクタの統合監査ポリシーを作成できます。
レルムを作成した後、統合監査ポリシーを作成して、レルムの違反を取得できます。
3.5.5 ステップ4: SEBASTIANユーザー・アカウントの作成
この段階では、オブジェクト権限が直接付与されたHR
スキーマおよびデータベースのユーザーまたはロールのみが、レルムで保護されるデータベース・オブジェクトを操作できます。システム権限に依存しているユーザーはできません。
HR.EMPLOYEES
表のみです。ユーザーcmack
にはAUDIT_ADMIN
ロールが付与されており、以前に実行したDBMS_MACADM.AUTHORIZE_AUDIT_ADMIN
の認可により、AUDIT_ADMIN
ロールを使用して、統合監査ポリシーを管理して、統合監査レコードを表示すること認可されています。sebastian
ユーザー・アカウントを作成します。
3.5.6 ステップ5: ユーザーSEBASTIANによるレルムのテスト
この段階で、ユーザーsebastian
は、HR.EMPLOYEES
表を問い合せてレルムをテストできます。
sebastian
にはREAD ANY TABLE
システム権限がありますが、HR.EMPLOYEES
表は問合せできません。これは、HR Apps
レルムがREAD ANY TABLE
システム権限よりも優先されるためです。
3.5.8 ステップ7: レルムのテスト
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表にアクセスを試みる必要があります。
HR
が独自のオブジェクトにアクセスできないようにする機能は説明しません。)
SYSTEM
アカウントには通常、SELECT ANY TABLE
権限があるため、HR
スキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES
表を保護しているため、アクセス権はありません。
3.5.9 ステップ8: レルム違反からの監査レコードの表示
作成した統合監査ポリシーに対する違反は定期的にレビューしてください。