9 sqlnet.oraを使用した透過的データ暗号化キーストアの構成

WALLET_ROOTパラメータを使用しないでキーストアを構成する場合は、sqlnet.oraファイルを使用できます。

9.1 sqlnet.oraファイルでのキーストアの場所について

WALLET_ROOTパラメータを設定しなかった場合、Oracle Databaseはsqlnet.oraファイルでキーストアのディレクトリの場所を確認します。

これは、キーストアがソフトウェア・キーストアであろうと、ハードウェア・モジュール・セキュリティ(HSM)キーストアであろうと、Oracle Key Vaultのキーストアであろうと、適用されます。sqlnet.oraファイルを編集して、作成する予定のキーストアのディレクトリ場所を定義する必要があります。このディレクトリが事前に存在していることを確認してください。このディレクトリは空であると理想的です。

Oracle Real Application Clusters (Oracle RAC)またはマルチテナント環境でsqlnet.oraファイルを編集する必要がある場合は、次の動作に注意してください。

  • Oracle RAC環境: srvctlユーティリティを使用していて、sqlnet.ora構成ファイルに環境変数を含める場合は、各環境変数をオペレーティング・システムとsrvctl環境の両方に設定する必要があります。キーストアはOracle Automatic Storage Management (ASM)やACFSなどの共有ファイル・システムに置くことをお薦めします。

  • マルチテナント環境: sqlnet.oraファイルがCDBルート内にある場合、キーストアの場所はCDB環境全体に対して設定されます。PDBが分離モードで動作している場合は、PDBレベルでsqlnet.oraを構成できます。

sqlnet.oraファイルで、ENCRYPTION_WALLET_LOCATIONパラメータを設定してキーストアの場所を指定する必要があります。どのキーストアを使用するかを決める場合、Oracle Databaseは、次の場所においてこの順序でキーストアの場所を検索します。

  1. sqlnet.oraファイルでパラメータENCRYPTION_WALLET_LOCATIONによって指定されている場所にあるキーストアの使用を試行します。

  2. ENCRYPTION_WALLET_LOCATIONパラメータが設定されていない場合、Oracle Databaseはデフォルトのデータベースの場所である${ORACLE_BASE}/admin/${DB_UNIQUE_NAME}/walletでキーストアを検索します。(DB_UNIQUE_NAMEは、初期化パラメータ・ファイルで指定されたデータベースの固有の名前です。)キーストアの場所およびステータスは、V$ENCRYPTION_WALLET動的ビューで確認できます。キーストアの場所がsqlnet.oraファイルに設定されていない場合、V$ENCRYPTION_WALLETビューにはデフォルトの場所が表示されます。キーストアの場所およびステータスは、V$ENCRYPTION_WALLETビューで確認できます。

デフォルトでは、sqlnet.oraファイルは、${ORACLE_HOME}/network/adminディレクトリ、またはTNS_ADMIN環境変数によって設定されている場所にあります。正しいsqlnet.oraファイルを指すようにTNS_ADMIN環境変数が適切に設定されていることを確認してください。

9.2 ソフトウェア・キーストアの場所用のsqlnet.oraファイルの構成

sqlnet.oraファイルを使用して、通常のファイル・システム用、複数データベースのアクセス用、およびOracle Automatic Storage Management (ASM)用にキーストアの場所を構成します。

  • 通常のファイル・システムでソフトウェア・キーストアを作成するには、sqlnet.oraファイルを編集するときに次のフォーマットを使用します。

    ENCRYPTION_WALLET_LOCATION=
     (SOURCE=
      (METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=path_to_keystore)))
    

    path_to_keystoreが環境変数を含むことになる場合、データベース・インスタンスが起動した環境で、データベースを起動する前に、この変数を設定します。srvctlユーティリティを使用してデータベースを起動する場合、次のコマンドを使用してsrvctl環境にも環境変数を設定します。

    srvctl setenv database -db database_name -env "environment_variable_name=environment_variable_value"
  • Oracle Real Application Clusters (Oracle RAC)の共有ファイル・システムでソフトウェア・キーストアを作成するには、sqlnet.oraファイルを編集するときに次のフォーマットを使用します。

    ENCRYPTION_WALLET_LOCATION =
     (SOURCE = (METHOD = FILE)
      (METHOD_DATA =
       (DIRECTORY = +DATA/$ORACLE_UNQNAME)))

    DIRECTORY設定が環境変数を含むことになる場合、データベース・インスタンスが起動した環境で、データベースを起動する前に、この変数を設定します。srvctlユーティリティを使用してデータベースを起動する場合、Oracle RACインスタンスの名前がFINRACであると仮定すると、次のようなコマンドを使用してsrvctl環境にも環境変数を設定します。

    srvctl setenv database -db FINRAC -t "ORACLE_UNQNAME=FINRAC, ORACLE_BASE=/u01/opt/oracle"

9.3 例: 通常のファイル・システム用のソフトウェア・キーストアの構成

通常のファイル・システムにソフトウェア・キーストアを構成できます。

次の例では、データベース名がorclである通常のファイル・システム用にsqlnet.oraファイルにソフトウェア・キーストアの場所を構成する方法を示します。

ENCRYPTION_WALLET_LOCATION=
  (SOURCE=
   (METHOD=FILE)
    (METHOD_DATA=
     (DIRECTORY=/etc/ORACLE/WALLETS/orcl)))

9.4 例: 複数のデータベースでsqlnet.oraファイルを共有する場合のソフトウェア・キーストアの構成

複数のデータベースでsqlnet.oraファイルを共有するように構成できます。

次の例では、複数のデータベースでsqlnet.oraファイルを共有する場合にソフトウェア・キーストアの場所を構成する方法を示します。

ENCRYPTION_WALLET_LOCATION=
 (SOURCE=
  (METHOD=FILE)
   (METHOD_DATA=
    (DIRECTORY=/etc/ORACLE/WALLETS/$ORACLE_SID/)))

9.5 例: Oracle Automatic Storage Management用のソフトウェア・キーストアの構成

Oracle Automatic Storage Management (ASM)ディスク・グループにWALLET_ROOTおよびTDE_CONFIGURATIONパラメータを設定できます。

次の例では、ASMファイル・システム用にsqlnet.oraファイルにソフトウェア・キーストアの場所を構成する方法を示します。

ENCRYPTION_WALLET_LOCATION=
 (SOURCE=
  (METHOD=FILE)
   (METHOD_DATA=
    (DIRECTORY=+disk1/mydb/wallet)))

9.6 例: Oracle Automatic Storage Managementディスク・グループ用のソフトウェア・キーストアの構成

Oracle Automatic Storage Management (ASM)ディスク・グループにsqlnet.oraを構成できます。

次のフォーマットは、ASMディスク・グループでソフトウェア・キーストアの場所を作成する場合にソフトウェア・キーストアを構成する方法を示しています。

ENCRYPTION_WALLET_LOCATION=
 (SOURCE=
  (METHOD=FILE)
   (METHOD_DATA=
    (DIRECTORY=+ASM_file_path_of_the_diskgroup)))