プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
11gリリース2 (11.2)
B56297-10
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 Oracle Database Vaultとその他のOracle製品の統合

この章の内容は次のとおりです。


注意:

Oracle Data GuardでOracle Database Vaultを使用する場合は、My Oracle Supportでノート754065.1を参照してください。My Oracle Supportには、次のWebサイトからアクセスできます。

https://support.oracle.com


Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合

Oracle Database Vaultは、Oracle Enterprise User Securityと統合できます。エンタープライズ・ユーザー・セキュリティを使用すると、データベース・ユーザーと認可を1箇所で集中管理できます。Oracle Identity Managementと組み合せ、Oracle Database Enterprise Editionで使用できます。

通常、Oracle Database VaultをOracle Enterprise User Securityと統合するには、適切なレルムを構成して、保護の対象となるデータベース内のデータを保護します。

必要に応じてOracle Database Vaultロールを定義した後に、エンタープライズ・ユーザーに対してアクセスを許可または禁止するルール・セットを作成できます。

エンタープライズ・ユーザーの認可を構成するには、次のようにします。

  1. ユーザー・アクセスを許可または禁止するルールを作成します。

    「ルール・セットに追加するルールの作成」の説明に従って新しいルールを作成します。「ルールの作成」ページで、次のPL/SQLを「ルール式」フィールドに入力します。

    SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'user_domain_name'
    

    user_domain_nameをドメインに置き換えます。たとえば、次のようになります。

    SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'myserver.us.example.com'
    
  2. このルールを新しいルール・セットに追加します。

    新しいルール・セットの作成方法は、既存のルールの追加方法も含め、「ルール・セットの作成」で説明されています。

  3. このルール・セットを保護対象のデータベースのレルム認可に追加します。

    レルム認可の作成方法は、「レルム認可の定義」で説明されています。「認可ルール・セット」リストで、手順2で作成したルール・セットを選択します。後で、レルム認可がすべてのユーザーに適用されます。

エンタープライズ・ユーザー・セキュリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。

Oracle Database Vaultと透過的データ暗号化の統合

データがデータベースのセキュアな範囲外にある場合のデータ保護を提供するという意味で、透過的データ暗号化はOracle Database Vaultを補完するものです。透過的データ暗号化を使用して、データベース管理者またはデータベース・セキュリティ管理者は、アプリケーション表の機密情報の列のみを暗号化したり、アプリケーション表領域全体を暗号化したりできます。アプリケーションを変更する必要はありません。透過的データ暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

ユーザーが認証チェックと認可チェックを通ると、透過的データ暗号化によりユーザーの情報は自動的に暗号化および復号化されます。このように、アプリケーションを変更しなくても暗号化を実装できます。

Oracle Database Vaultと透過的データ暗号化を組み合せて使用するには、最低でもデータベース・ディクショナリ・レルムの参加者としてSYSTEMユーザー(または透過的データ暗号化を管理する権限を持つ他のユーザー)を有効にする必要があります。ユーザーのレルムへの追加の詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

透過的データ暗号化ユーザーに適切な権限を付与したら、透過的データ暗号化を通常どおり管理でき、Database Vaultを補完するものとして使用できます。

図9-1に、Oracle Database Vaultレルムで暗号化されたデータがどのように処理されるかを示します。

図9-1 暗号化されたデータとOracle Database Vault

図9-1の説明が続きます
「図9-1 暗号化されたデータとOracle Database Vault」の説明

Oracle Virtual Private Databaseへのファクタの追加

Oracle Virtual Private Databaseにはファクタを追加できます。これを実行するには、PL/SQLファンクションまたはPL/SQL式であるポリシー述語を定義します。その結果、各ファンクションまたは式に対して、ファクタごとに作成されるPL/SQLファンクションDVF.F$を使用できます。

Oracle Virtual Private Databaseの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

Oracle Database VaultとOracle Label Securityの統合

この項の内容は次のとおりです。

Oracle Database VaultとOracle Label Securityの統合方法

Oracle Database VaultとOracle Label Securityを統合するということは、Oracle Label SecurityラベルをOracle Database Vaultファクタ・アイデンティティに割り当てることができるということです。

Oracle Label Securityでは、データベース表またはPL/SQLプログラムのレコードへのアクセスを制限できます。たとえば、アクセスを特定の管理者に限定する必要があるレコードを含むEMPLOYEE表の、HIGHLY SENSITIVEラベル(Oracle Label Securityラベル)で保護されたデータをMaryは参照できます。もう1つのラベルを、このデータへのよりオープンなアクセスを許可するPUBLICとすることができます。

Oracle Database Vaultでは、データベース・セッションが発生するネットワーク用に、次のアイデンティティを指定してNetworkというファクタを作成できます。

  • Intranet: 従業員が会社のイントラネット内の場所で作業している場合に使用します。

  • Remote: 従業員がVPN接続から在宅で作業している場合に使用します。

次に、両方のアイデンティティに最大のセッション・ラベルを割り当てます。次に例を示します。

  • IntranetアイデンティティをOracle Label SecurityラベルのHIGHLY SENSITIVEに割り当てます。

  • RemoteアイデンティティをPUBLICラベルに割り当てます。

つまり、MaryがVPN接続を使用して在宅で作業している場合は、PUBLICアイデンティティのもとに保護される、限定された表データにのみアクセスできます。しかし、職場にいる場合は、Intranetアイデンティティを使用しているため、HIGHLY SENSITIVEデータにアクセスできます。「チュートリアル: Oracle Database VaultとOracle Label Securityの統合」に、このような統合を実現する方法の例を示します。

Oracle Label Securityとの統合は、「Label Security統合の監査」レポートを使用して監査できます。詳細は、「「Label Security統合の監査」レポート」を参照してください。Oracle Database VaultはDVSYS.AUDIT_TRAIL$システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。

Oracle Database VaultのAPIを使用してOracle Database VaultとOracle Label Securityを統合できます。詳細は、第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

Oracle Label Securityのラベル、レベルおよびポリシーの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

レポートは、Oracle Database Vault-Oracle Label Security統合で実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

Oracle Database VaultをOracle Label Securityとともに使用するための要件

Oracle Database VaultをOracle Label Securityとともに使用するには、次の要件を満たす必要があります。

  • Oracle Label Securityは別個にライセンス許可されます。それを使用するためのライセンスを購入済であることを確認してください。

  • Oracle Database Vaultをインストールする前に、Oracle Label Securityのインストールを済ませておく必要があります。

  • Oracle Label Securityのインストール・プロセスでLBACSYSユーザー・アカウントが作成されます。DV_ACCTMGRロールを付与されているユーザーとして、このアカウントをロック解除し、新しいパスワードを付与します。次に例を示します。

    sqlplus amalcolm_dvacctmgr
    Enter password: password
    
    ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;
    

    passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • Oracle Enterprise ManagerでLBACSYSユーザー・アカウントを使用する場合、SYSDBA権限を持つユーザーSYSとしてEnterprise Managerにログインし、このユーザーにSELECT ANY DICTIONARYおよびSELECT_CATALOG_ROLEシステム権限を付与します。

  • 適切なOracle Label Securityポリシーが定義されていることを確認してください。詳細は、『Oracle Label Security管理者ガイド』を参照してください。

  • Oracle Label SecurityポリシーをDatabase Vaultポリシーと統合する場合、Oracle Label Securityのポリシー名が24文字未満であることを確認します。ALL_SA_POLICIESデータ・ディクショナリ・ビューのPOLICY_NAME列を問い合せることで、Oracle Label Securityポリシーの名前がチェックできます。

Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法

Oracle Database Vaultでは、Oracle Label Securityポリシーに関連付けられているOracle Database Vaultファクタのラベルをマージすることによって、データベース・セッションにおける各ラベルの最大許容データをマージして、データベース・セッションの最大セキュリティ・チェックを制御します。つまり、ラベルは、データベース表の行のアクセス権限に対する識別子として機能します。ポリシーは、表の行へのアクセスを管理するラベル、ルールおよび認可と関連付けられた名前です。行ラベルおよびポリシーの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

次の手順に従って、Oracle Label Securityポリシーの最大許容データ・ラベルに含めるファクタを定義します。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。

    ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

  2. ユーザー・アカウントLBACSYSを、Label Securityポリシーが適用されているスキーマを含むレルムの所有者にします。

    これにより、レルム内で保護されているすべてのデータへのアクセス権がLBACSYSアカウントに付与され、データを適切に分類できるようになります。

    LBACSYSアカウントは、Oracle Universal Installerのカスタム・インストール・オプションを使用してOracle Label Security内に作成されます。Oracle Database Vaultとともに使用するOracle Label Securityポリシーを作成するには、LBACSYSを使用予定のレルムの所有者にする必要があります。詳細は、「レルム認可の定義」を参照してください。

  3. レルムの参加者または所有者として(ラベル・セキュリティ・ポリシーが適用されている)スキーマの所有者を認可します。

  4. 「管理」ページの「Database Vault機能管理」で、「Label Security統合」をクリックします。

  5. 「Label Securityポリシー」ページで次のようにします。

    • 新しいLabel Securityポリシーを登録するには、「作成」をクリックします。

    • 既存のLabel Securityポリシーを編集するには、リストからLabel Securityポリシーを選択して「編集」をクリックします。

  6. 次の設定を入力した後、「OK」をクリックします。

一般

「一般」で次の設定を入力します。

  • Label Securityポリシー: リストから使用するOracle Label Securityポリシーを選択します。

  • アルゴリズム: Oracle Label Securityで2つのラベルをマージしている場合、ラベルマージ・アルゴリズムを必要に応じて変更します。ほとんどの場合、「LII - 最小レベル/論理積/論理積」を選択します。この設定は、Oracle Label Security管理者が2つのラベルをマージする際に最も一般的に使用する方法です。この設定により、ラベルが異なる2つのデータ・セットを組み合せる際に必要な結果のラベルをアプリケーションで特定する必要がある場合に、最適な柔軟性が提供されます。これは、データ・ラベルが異なる行で結合を使用して問合せを実行する必要がある場合にも必要です。

    これらのラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。マージ・アルゴリズムの指定にDBMS_MACADMパッケージを使用する場合、使用可能なマージ・アルゴリズムの完全なリストについては、表12-57「Oracle Label Securityマージ・アルゴリズム・コード」を参照してください。

  • 初期化エラーのラベル: 必要に応じて、初期化エラーのラベルを入力します。初期化エラーに指定されたラベルは、セッションを初期化する際に構成エラーまたはランタイム・エラーが発生すると設定されます。この設定を使用してセッションにデータ・ラベルを割り当て、ポリシーによって保護されるデータに対するアクセスまたは更新を、問題が解決するまで抑制することができます。

Label Securityポリシー・ファクタ

Oracle Label Securityポリシーと関連付けるファクタを選択するには、次のようにします。

  1. 「Label Securityポリシー・ファクタ」の「使用可能なファクタ」リストから、Oracle Label Securityポリシーと関連付けるファクタを選択します。

  2. 「移動」をクリックして、ファクタを「選択したファクタ」リストに移動します。


    注意:

    [Ctrl]キーを押しながら必要な各ファクタをクリックすると、複数のファクタを選択できます。

ファクタをOracle Label Securityポリシーと関連付けると、ポリシーのラベルを使用してファクタ・アイデンティティにラベルを付けることができます。詳細は、「ファクタへのアイデンティティの追加」を参照してください。


注意:

Oracle Label Securityポリシーをファクタと関連付けない場合、Oracle Database Vaultではポリシーに対するOracle Label Securityのデフォルト動作が維持されます。

チュートリアル: Oracle Database VaultとOracle Label Securityの統合

この項の内容は次のとおりです。

このチュートリアルの概要

Oracle Database VaultファクタをOracle Label SecurityおよびOracle Virtual Private Database(VPD)テクノロジとともに使用すると、機密データへのアクセスを制限できます。このようなデータを制限して、セキュリティ管理者が任意のデータ・セッションに対して定義するファクタの適切な組合せが存在する場合にのみデータベース・セッションに公開されるようにすることができます。

このチュートリアルでは、通常同じ権限を持つ2人の管理ユーザーに異なるレベルのアクセス権限を付与するために、どのようにOracle Database VaultをOracle Label Securityと統合できるかを示します。

手順1: このチュートリアル用のユーザーの作成

  1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusにログインします。

    次に例を示します。

    sqlplus amalcolm_dvacctmgr
    Enter password: password
    
  2. 次のユーザーを作成します。

    CREATE USER mdale IDENTIFIED BY password;
    CREATE USER jsmith IDENTIFIED BY password;
    

    passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  3. SYSDBA権限を持つユーザーSYSとして接続し、ユーザーmdaleとユーザーjsmithに管理権限を付与します。

    CONNECT SYS AS SYSDBA
    Enter password: password
    
    GRANT CREATE SESSION, DBA TO mdale, jsmith;
    

    この段階で、ユーザーmdaleとユーザーjsmithは、同じ管理権限を持ちます。

手順2: Oracle Label Securityポリシーの作成

  1. SQL*Plusで、Oracle Label Security管理者LBACSYSとして接続します。

    CONNECT LBACSYS
    Enter password: password
    

    ユーザーLBACSYSがロックされて無効になっている場合、Database Vaultアカウント・マネージャとして接続し、LBACSYSアカウントのロックを解除して有効にしてから、LBACSYSとして再びログインします。

    次に例を示します。

    CONNECT amalcolm_dvacctmgr
    Enter password: password
    
    ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;
    
    CONNECT LBACSYS
    Enter password: password
    
  2. 新規のOracle Label Securityポリシーを作成します。

    EXEC SA_SYSDBA.CREATE_POLICY('PRIVACY','PRIVACY_COLUMN','NO_CONTROL');
    
  3. PRIVACYポリシーに次のレベルを作成します。

    EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',2000,'S','SENSITIVE');
    EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',1000,'C','CONFIDENTIAL');
    
  4. PII区分を作成します。

    EXEC SA_COMPONENTS.CREATE_COMPARTMENT('PRIVACY',100,'PII','PERS_INFO');
    
  5. ユーザーmdaleとユーザーjsmithに次のラベルを付与します。

    EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','mdale','S:PII');
    EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','jsmith','C'); 
    

    ユーザーmdaleは、PII区分を含むより機密性の高いラベル、Sensitiveを付与されます。ユーザーjsmithは、機密性の低いConfidentialラベルを取得します。

手順3: OLS認可を制御するためのOracle Database Vaultルールの作成

  1. Database Vault所有者としてSQL*Plusに接続します。

    次に例を示します。

    CONNECT lbrown_dvowner
    Enter password: password
    
  2. 次のルール・セットを作成します。

    EXEC DBMS_MACADM.CREATE_RULE_SET('PII Rule Set',
     'Protect PII data from privileged users','Y',1,0,2,NULL,NULL,0,NULL);
    
  3. PII Rule Setにルールを作成します。

    EXEC DBMS_MACADM.CREATE_RULE('Check OLS Factor', 
     'dominates(sa_utl.numeric_label(''PRIVACY''), 
      char_to_label(''PRIVACY'',''S:PII'')) = ''1''');
    

    この例のように、二重引用符ではなく、必ず一重引用符を使用してください。

  4. Check OLS FactorルールをPII Rule Setに追加します。

    EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET('PII Rule Set', 
     'Check OLS Factor');
    
  5. Check OLS Factorルールを同期化します。

    EXEC DBMS_MACADM.SYNC_RULES;
    COMMIT;
    

手順4: ルール・セットを使用するためのALTER SYSTEMコマンド・ルールの更新

  1. Database Vault所有者として、ALTER SYSTEMコマンド・ルールの現行値を確認します。このコマンド・ルールは、Oracle Database Vaultインストール時のデフォルト・コマンド・ルールの1つです。

    SELECT * FROM DVSYS.DBA_DV_COMMAND_RULE WHERE COMMAND = 'ALTER SYSTEM';
    
  2. 後で元の値に戻せるように、これらの設定をメモします。

    デフォルトのインストールでは、ALTER SYSTEMコマンド・ルールはAllow System Parametersルール・セットを使用し、オブジェクト所有者またはオブジェクト名がなく、有効になっています。

  3. ALTER SYSTEMコマンド・ルールを更新して、PII Rule Setを含めます。

    EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'PII Rule Set', '%', '%', 'Y');
    

    このコマンドでは、PII Rule SetをALTER SYSTEMコマンド・ルールに追加し、すべてのオブジェクト所有者およびオブジェクト名に適用し、コマンド・ルールを有効にします。

手順5: 認可のテスト

  1. ユーザーmdaleとしてSQL*Plusにログインします。

    CONNECT mdale
    Enter password: password
    
  2. AUDIT_TRAIL初期化パラメータの現行設定を確認します。

    SHOW PARAMETER AUDIT_TRAIL
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ----------------------
    audit_trail                          string      DB
    

    後で元の設定に戻せるように、これらの設定をメモします。

  3. ユーザーmdaleとして、ALTER SYSTEM文を使用し、AUDIT_TRAILパラメータを変更します。

    ALTER SYSTEM SET AUDIT_TRAIL=OS, EXTENDED SCOPE=SPFILE;
    System altered.
    

    ユーザーmdaleはPII区分を含むSensitiveラベルを割り当てられたので、ALTER SYSTEM文を使用して、AUDIT_TRAILシステム・パラメータを変更できます。

  4. AUDIT_TRAILパラメータを、たとえば次のように元の値に戻します。

    ALTER SYSTEM SET AUDIT_TRAIL=DB, EXTENDED SCOPE=SPFILE;
    
  5. ユーザーjsmithとしてログインし、同じALTER SYSTEM文を発行します。

    CONNECT jsmith
    Enter password: password
    
    ALTER SYSTEM SET AUDIT_TRAIL=OS, EXTENDED SCOPE=SPFILE;
    

    次のような出力結果が表示されます。

    ERROR at line 1:
    ORA-01031: insufficient privileges
    

    ユーザーjsmithはConfidentialラベルしか割り当てられていないので、ALTER SYSTEM文を実行できません。

  6. ここで通常ALTER SYSTEM権限を持つユーザーSYSTEMとしてログインし、同じALTER SYSTEM文を発行します。

    CONNECT SYSTEM
    Enter password: password
    

    次のような出力結果が表示されます。

    ERROR at line 1:
    ORA-01031: insufficient privileges
    

    SYSTEMには、もうALTER SYSTEM文を実行するのに必要な十分な権限がありません。ユーザーmdaleのように、Sensitiveラベルを割り当てられているユーザーのみが、ALTER SYSTEM文を使用できます。

手順6: このチュートリアルのコンポーネントの削除

  1. Oracle Label Security管理者として接続し、ラベル・ポリシーとそのコンポーネントを削除します。

    CONNECT LBACSYS
    Enter password: password
    
    EXEC SA_SYSDBA.DROP_POLICY('PRIVACY', TRUE);
    
  2. Oracle Database Vault所有者として接続し、次のコマンドを示した順序で発行し、ALTER SYSTEMコマンド・ルールを以前の設定に戻して、ルール・セットを削除します。

    次に例を示します。

    CONNECT lbrown_dvowner
    Enter password: password
    
    EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'Allow System Parameters','%', '%', 'Y');
    EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('PII Rule Set', 'Check OLS Factor');
    EXEC DBMS_MACADM.DELETE_RULE('Check OLS Factor');
    EXEC DBMS_MACADM.DELETE_RULE_SET('PII Rule Set');
    COMMIT;
    
  3. Database Vaultアカウント・マネージャとして接続し、ユーザーmdaleとユーザーjsmithを削除します。

    CONNECT amalcolm_dvacctmgr
    Enter password: password
    
    DROP USER mdale;
    DROP USER jsmith;
    

関連するレポートおよびデータ・ディクショナリ・ビュー

表9-1に、Oracle Database VaultとOracle Label Securityの統合の分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表9-1 Oracle Database Vault-Oracle Label Security統合に関連するレポート

レポート 説明

「「ファクタ構成の問題」レポート」


Oracle Label Securityポリシーが存在しないファクタが表示されます。

「「アイデンティティ構成の問題」レポート」


無効なラベル・アイデンティティ(このアイデンティティのOracle Label Securityラベルが削除されていて、すでに存在しない)が表示されます。

「「セキュリティ・ポリシー除外」レポート」


EXEMPT ACCESS POLICYシステム権限が付与されているアカウントおよびロールが表示されます。この権限を持つアカウントは、すべてのVirtual Private Databaseのポリシー・フィルタと、Oracle Virtual Private Databaseを間接的に使用するOracle Label Securityポリシーを無視できます。


表9-2に、Oracle Database Vaultで使用される既存のOracle Label Securityポリシーに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表9-2 Oracle Label Securityに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー 説明

「DVSYS.DBA_DV_MAC_POLICYビュー」


定義されているOracle Label Securityポリシーが表示されます。

「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」


Oracle Label Securityポリシーに関連付けられているファクタが表示されます。

「DVSYS.DBA_DV_POLICY_LABELビュー」


各ポリシーのDVSYS.DBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。