3 Oracle Database Vaultの開始
Oracle Database Vaultを使用して開始する前に、これをOracle Databaseで構成および有効化する必要があります。
- Oracle DatabaseでのOracle Database Vaultの構成および有効化について
インストール・プロセスでデフォルト・データベースを含めるように選択した場合、Oracle DatabaseにはDatabase Vaultが付属していますが、使用するには構成して有効化する必要があります。 - マルチテナント環境におけるOracle DatabaseでのOracle Database Vaultの構成および有効化
いくつかのシナリオに基づいて、マルチテナント環境でOracle Database Vaultを構成して有効化できます。 - 非マルチテナント環境におけるOracle Database Vaultの登録
ユーザーを登録した後に、これらのアカウントを保護するプロファイルを作成する必要があります。 - Oracle Real Application Clusters環境でのOracle Database Vaultの構成および有効化
各Oracle RACノードを含むOracle Real Application Clusters (Oracle RAC)環境に対してOracle Database Vaultを構成できます。 - Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_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 Databaseには、インストール・プロセスでデフォルトのデータベースを含めるように選択した場合、Database Vaultが付属しますが、このDatabase Vaultを使用するには登録する必要があります。カスタム・データベースを作成する場合、DBCAを使用してDatabase Vaultをインストールし、そのデータベースに対して有効にすることができます。登録プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。Oracle Label SecurityはOracle Database Vaultに必要ですが、別にOracle Label Securityの使用を開始してOracle Label Securityポリシーを作成する場合を除き、別個のライセンスは必要ありません。この手順は、CDBルート、アプリケーション・ルートおよび現在のプラガブル・データベース(PDB)に適用され、単一インスタンスとOracle Real Application Clusters (Oracle RAC)の両方のインストールに適用されます。マルチテナント・データベースでは、PDBのいずれかでDatabase Vaultを構成する前に、Database VaultをCDBルートで構成する必要があります。
構成プロセスの一環として、Database Vault管理者アカウントを作成しました。これらは、Database VaultのロールであるDV_OWNER
およびDV_ACCTMGR
を保持するアカウントです。最初にこれらのアカウントを使用して、管理権限を持つ名前付きユーザーにロールをプロビジョニングします。SYS
ではこれらのロールを持つユーザーのパスワードをリセットできないため、バックアップ・アカウントの保持により、名前付きユーザーの資格証明の紛や資格証明の配置の誤りからリカバリできます。
Oracle Databaseは、マルチテナント環境と非マルチテナント環境の両方に登録できます。マルチテナント環境の場合、登録用に選択できるメソッドがいくつかあります。
ノート:
Oracle Database 12cより前のリリースからアップグレードしてあり、その以前のリリースで以前のOracle Database Vaultが有効になっている場合は、アップグレード・プロセスの完了後に、DBMS_MACADM.ENABLE_DV
プロシージャを使用することでOracle Database Vaultを有効にする必要があります。
マルチテナント環境では、リリース12cより前のリリースから非Database Vaultの登録済Oracle Databaseを移行する場合、Database Vaultの手動インストールを実行する必要があります。
親トピック: Oracle Database Vaultの開始
3.2 マルチテナント環境におけるOracle Databaseでの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をまずルートに登録して、後からPDBに登録する必要があります。 - 特定のPDBを管理するためのDatabase Vaultローカル・ユーザーの構成および有効化
マルチテナント環境では、最初にルートでOracle Database Vaultを構成して有効化し、次にPDBで構成して有効化する必要があります。 - DV_OWNERおよびDV_ACCTMGRユーザーを保護するプロファイルの作成
プロファイルは、DV_OWNER
およびDV_ACCTMGR
ロールを付与されたユーザーに追加の保護を提供します。 - Database Vault対応PDBへの接続
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。 - マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。たとえば、Database Vaultのないリリース11g Oracle Databaseをリリース12cにアップグレードしてから、12c Database Vault対応データベースに接続するPDBに変換します。
親トピック: 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を構成して有効化します。
関連トピック
3.2.3 個別PDBを管理するためのDatabase Vault共通ユーザーの登録
マルチテナント環境では、Oracle Database Vaultをまずルートに登録して、後から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 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 UNLIMITED PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION PASSWORD_LOCK_TIME UNLIMITED CONTAINER=CURRENT;
- ローカル
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合: PDBで、次のようなプロファイルを作成します。CREATE PROFILE dv_profile limit FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION PASSWORD_LOCK_TIME UNLIMITED CONTAINER=CURRENT;
- 共通
- このプロファイルを使用するために、
DV_OWNER
およびDV_ACCTMGR
ユーザー・アカウントを更新します。- 共通
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合:ALTER USER c##sec_admin_owen PROFILE c##dv_profile CONTAINER=ALL; ALTER USER c##dbv_owner_root_backup PROFILE c##dv_profile CONTAINER=ALL; ALTER USER c##accts_admin_ace PROFILE c##dv_profile CONTAINER=ALL; ALTER USER c##dbv_acctmgr_root_backup PROFILE c##dv_profile CONTAINER=ALL;
- ローカル
DV_OWNER
およびDV_ACCTMGR
ユーザーの場合:ALTER USER sec_admin_owen PROFILE dv_profile CONTAINER=CURRENT; ALTER USER dbv_owner_backup PROFILE dv_profile CONTAINER=CURRENT; ALTER USER accts_admin_ace PROFILE dv_profile CONTAINER=CURRENT; ALTER USER dbv_acctmgr_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.6 Database Vault対応PDBへの接続
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。
このシナリオでは、接続されるデータベースには、独自のローカルDatabase Vaultアカウントがあります。Database Vault対応データベースをDatabase Vaultが有効になっていないCDBに接続する場合は、CDBでDatabase Vaultを有効にしてCDBを再起動するまで、PDBは制限されたモードのままになるということを知っておいてください。Database Vaultが有効になっていないPDBをDatabase Vaultが有効になっているCDBに接続する場合は、PDBでDatabase Vaultを有効にしてPDBを再起動するまで、PDBは制限されたモードのままになります。それでも、この接続したDatabase Vault無効のPDBは使用可能です。ただし、このCDBでDatabase Vaultが厳密オプションで有効になっている場合、このPDBでDatabase Vaultを有効にする必要があります。
Database Vault対応PDBに接続する前に、Database Vaultロールが共通ユーザーに付与されている場合、PDBへの接続が共通ユーザーに与える影響を十分に理解してください。
3.2.7 マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。たとえば、Database Vaultのないリリース11g Oracle Databaseをリリース12cにアップグレードしてから、12c Database Vault対応データベースに接続するPDBに変換します。
3.3 非マルチテナント環境におけるOracle Database Vaultの登録
ユーザーを登録したら、これらのアカウントを保護するプロファイルを作成する必要があります。
- Database Vaultユーザーの登録
SQL*Plusを使用してOracle Database Vaultを登録できます。 - DV_OWNERおよびDV_ACCTMGRユーザーを保護するプロファイルの作成
プロファイルは、DV_OWNER
およびDV_ACCTMGR
ロールを付与されたユーザーに追加の保護を提供します。
親トピック: Oracle Database Vaultの開始
3.3.2 DV_OWNERおよびDV_ACCTMGRユーザーを保護するプロファイルの作成
プロファイルは、DV_OWNER
およびDV_ACCTMGR
ロールを付与されたユーザーに追加の保護を提供します。
DV_OWNER
またはDV_ACCTMGR
ロールを付与されたデータベース・ユーザーは、クリティカルな特権アカウントとみなされます。通常、これらのアカウントはサービス・アカウントとみなしてパスワードのロックアウト要件が適用されないようにする必要があります。Oracleでは、アカウントがロックされないカスタム・プロファイルを作成することをお薦めします。また、これらのDatabase Vault関連のアカウントの失敗したログイン試行の監査も必要です。
3.4 Oracle Real Application Clusters環境でのOracle Database Vaultの構成および有効化
各Oracle RACノードを含むOracle Real Application Clusters (Oracle RAC)環境用にOracle Database Vaultを構成できます。
親トピック: Oracle Database Vaultの開始
3.5 Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_OLS_STATUS
データ・ディクショナリ・ビューは、Oracle Databaseが構成され有効になっているかどうかを確認します。
SYS
ユーザー、およびDBA
ロールを付与されているユーザーが、これらのビューを問合せできます。
-
Database Vaultの場合:
-
非マルチテナント・データベースのDatabase Vaultステータス、またはマルチテナント環境においてルートのみか個々のPDBのDatabase Vaultステータスを検索する場合は、データベースにどのユーザーとして接続しているかに応じて、
DBA_DV_STATUS
またはSYS.DBA_DV_STATUS
ビューを問い合せます。次に例を示します。DBA
ロールまたはSYSDBA
管理権限を持つユーザーとして接続している場合:SELECT * FROM DBA_DV_STATUS;
DV_OWNER
ロールまたはDV_ADMIN
ロールを持つユーザーとして接続している場合:SELECT * FROM SYS.DBA_DV_STATUS;
次のような出力が表示されます。
NAME STATUS -------------------- ----------- DV_APP_PROTECTION NOT CONFIGURED DV_CONFIGURE_STATUS TRUE DV_ENABLE_STATUS TRUE
DV_APP_PROTECTION
は、自律環境、通常のクラウド環境またはオンプレミス環境で、共通ユーザーによるPDBローカル・データへのアクセスを自動的に制限する操作制御を指します。 -
管理権限がある共通ユーザーとして、マルチテナント環境ですべてのPDBのDatabase Vaultステータスを確認する場合は、コンテナID (
CON_ID
)フィールドの追加を提供する、CDB_DV_STATUS
を問い合せます。
-
-
Oracle Label Securityの場合は、次のデータ・ディクショナリ・ビューを問い合せます。これらは、Database Vaultのそれらに相当するビューに似ています。
-
DBA_OLS_STATUS
-
CDB_OLS_STATUS
-
3.6 Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultの管理用のページが用意されています。
3.7 クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護
このチュートリアルでは、HR
スキーマの周辺でレルムを作成する方法を示します。
- このチュートリアルについて
このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HR
サンプル・データベース・スキーマの周辺でレルムを作成します。 - ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。 - ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。 - ステップ3: SEBASTIANユーザー・アカウントの作成
この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。 - ステップ4: ユーザーSEBASTIANによるレルムのテスト
この段階で、ユーザーSEBASTIAN
は、HR.EMPLOYEES
表を問い合せることでレルムをテストできます。 - ステップ5: レルムの認可の作成
次に、HR.EMPLOYEES
表にアクセスできるよう、ユーザーSEBASTIAN
にHR Appsレルムへの認可を与える必要があります。 - ステップ6: レルムのテスト
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表にアクセスを試みる必要があります。 - ステップ7: 統合監査が有効ではない場合のレポートの実行
HR Appsレルムの失敗時の監査を有効にしたため、レポートを生成してセキュリティ違反を検出できます。 - ステップ8: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: Oracle Database Vaultの開始
3.7.1 このチュートリアルについて
このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HR
サンプル・データベース・スキーマの周辺でレルムを作成します。
HR
スキーマのEMPLOYEES
表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HR
スキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。最後に、レポートを実行し、レルムをテストする際に試行するような疑わしいアクティビティの監査証跡をOracle Database Vaultがどのように作成するかを確認します。
3.7.2 ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。
HR
サンプル・スキーマがインストールされていることを確認してください。Oracle Databaseサンプル・スキーマは、サンプル・スキーマのインストール方法を説明しています。
3.7.3 ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。
HR
スキーマにレルムを作成する必要があります。
この段階で、レルムが作成されていますが、それに対する認可は割り当てられていません。このチュートリアルで後ほど対応します。
3.7.4 ステップ3: SEBASTIANユーザー・アカウントの作成
この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。
そのため、このステップでデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIAN
ユーザー・アカウントを作成します。
(「ステップ6: レルムのテスト」でレルムをテストする際に必要なため、SQL*Plusを終了しないでください。)
3.7.5 ステップ4: ユーザーSEBASTIANによるレルムのテスト
この段階で、ユーザーSEBASTIAN
は、HR.EMPLOYEES
表を問い合せることでレルムをテストできます。
SEBASTIAN
はREAD ANY TABLE
システム権限がありますが、HR.EMPLOYEES
表を問合せできません。これは、HR AppsレルムがREAD ANY TABLE
システム権限よりも優先されるためです。
3.7.6 ステップ5: レルムの認可の作成
次に、HR.EMPLOYEES
表にアクセスできるよう、ユーザーSEBASTIAN
にHR Appsレルムへの認可を与える必要があります。
SEBASTIAN
は、このレルムによって保護されているHR.EMPLOYEES
表に対するREAD ANY TABLE
システム権限を使用できます。
3.7.7 ステップ6: レルムのテスト
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表にアクセスを試みる必要があります。
SYSTEM
アカウントには通常、SELECT ANY TABLE
権限があるため、HR
スキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES
表を保護しているため、アクセス権はありません。
3.7.8 ステップ7: 統合監査が有効ではない場合のレポートの実行
HR Appsレルムの失敗時の監査を有効にしたため、レポートを生成してセキュリティ違反を検出できます。
たとえば、「ステップ6: レルムのテスト」で試行した違反のレポートを生成できます。
Oracle Database Vaultにより、違反の種類(この場合は前の項目で入力したSELECT
文)、発生した時間と場所、違反を試みたユーザーのログイン・アカウント、および違反の内容などを示すレポートが生成されます。
3.7.9 ステップ8: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
-
ユーザー
SEBASTIAN
を削除します。SQL*Plusで、次のようにOracle Database Vaultアカウント・マネージャ(たとえば
accts_admin_ace
)としてログインし、SEBASTIAN
を削除します。sqlplus accts_admin_ace -- Or, CONNECT bea_dvacctmgr@hrpdb Enter password: password DROP USER SEBASTIAN;
-
HR Appsレルムを削除します。
-
Cloud Controlで、
DV_OWNER
ロールがあるユーザーとしてログインしていることを確認します。 -
Database Vaultの「ホーム」ページで、「管理」をクリックします。
-
「レルム」ページで、レルムのリストから
HR Apps
を選択します。 -
「削除」をクリックして、「確認」ウィンドウで「はい」をクリックします。
-
-
必要な場合は、SQL*Plusで、
HR
アカウントをロックし、無効にします。DV_ACCTMGR
ロールを持つユーザーとして接続します(ユーザーaccts_admin_ace
など)。- 次の
ALTER USER
文を実行します。ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;