プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70107-04
目次へ移動
目次

前
次

11.1 クラシック・キャプチャ・モードでのOracle TDEデータの構成

クラシック・キャプチャ・モードでのExtractの場合、TDEをサポートするには、次の特別な構成手順が必要です。この項は、統合キャプチャ・モードのExtractには適用されません

注意:

統合モードでは、Extractはデータベース・ログマイニング・サーバーを活用して、特別な設定要件またはパラメータ設定なしで、TDE列の暗号化およびTDE表領域の暗号化をサポートします。統合キャプチャの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

11.1.1 クラシック・キャプチャ・モードでのTDEサポートの概要

クラシック・キャプチャ・モードでのExtractの場合、TDEサポートには2種類の鍵の交換が必要です。

  • 暗号化鍵は、表鍵(列レベルの暗号化)、暗号化REDOログ鍵(表領域レベルの暗号化)、またはその両方のいずれにすることも可能です。この鍵はOracle DatabaseとExtract間で共有されます。

  • 復号化鍵にはORACLEGGの名前が付けられ、そのパスワードは共通鍵と呼ばれます。この鍵は、OracleおよびOracle GoldenGateドメインに安全に格納されます。共通鍵を所有するユーザーのみが、表およびREDOログ鍵を復号化できます。

復号化キーは、組込みPL/SQLコードによってExtractプロセスに配信されます。Extractでは共通鍵を使用してデータが復号化されます。Extractでは、ウォレットのマスター・キー自体は処理されず、またマスター・キーのパスワードも認識されません。これらは、Oracle Databaseセキュリティ・フレームワークの範囲内です。

Extractでは、復号化されたデータが破棄ファイル(DISCARDFILEパラメータで指定)を含む証跡ファイル以外のファイルに書き込まれることはありません。"ENCRYPTED"という語が使用中の破棄ファイルに書き込まれます。

Oracle GoldenGateのパフォーマンスに対するこの機能の影響には、データベース・パフォーマンスに対する復号化の影響が反映されます。Extractの起動時間がわずかに長くなる以外は、TDEデータのレプリケートによるパフォーマンスへの影響は最小限です。

11.1.2 クラシック・キャプチャ・モードでのTDEのキャプチャの要件

ExtractでTDEキャプチャをサポートするための要件は次のとおりです。

  • 高いセキュリティ基準を維持するため、Oracle GoldenGate Extractプロセスはoracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行する必要があります。これにより、oracleユーザーと同じ権限でメモリー内で鍵が保護されます。

  • Extractプロセスは、データベースのインストールと同じマシン上で実行される必要があります。

  • ハードウェア・セキュリティ・モジュールでTDEを使用している場合でも、ソフトウェア・ウォレットを使用する必要があります。HSMのみの構成からHSMとウォレットの構成に移行し、sqlnet.oraファイルを正しく構成するための各手順の詳細は、「Oracleセキュリティ担当者のタスク」の構成手順を参照してください。

  • ソース・データベースがアップグレードされる場合は、マスター・キーを必ず更新する必要があります。

11.1.3 TDEサポートに必要なデータベース・パッチ

Oracle 11.2.0.2でTDEをサポートするには、My Oracle Support Webサイト(https://support.oracle.com)の記事1557031.1を参照してください。

11.1.4 TDEサポートのクラシック・キャプチャの構成

次に、OracleサーバーとExtractプロセス間の通信を確立するためにOracleセキュリティ担当者およびOracle GoldenGate管理者が実行する手順を説明します。

11.1.4.1 Oracleの基準を満たす共通鍵の共有

Oracleパスワードの基準以上の共通鍵パスワードを共有します。このパスワードは他のユーザーに知られないようにする必要があります。安全なパスワードの作成のガイドラインについては、次を参照してください。

11.1.4.2 Oracle DBAのタスク

  1. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。次に例を示します。
    sqlplus sys/as sysdba
    Connected.
    Enter password: password
    
  2. Oracle adminディレクトリにインストールされているprvtclkm.plbファイルを実行します。prvtclkm.plbファイルによってDBMS_INTERNAL_CLKM PL/SQLパッケージが作成され、Oracle GoldenGateによる暗号化されたデータのOracle Databaseからの抽出が可能になります。
    @?/app/oracle/product/orcl111/rdbms/admin/prvtclkm.plb
    
  3. DBMS_INTERNAL_CLKM PL/SQLパッケージに対するEXEC権限をExtractのデータベース・ユーザーに付与します。
    GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;
    
  4. SQL*Plusを終了します。

11.1.4.3 Oracleセキュリティ担当者のタスク

  1. Oracle GoldenGateでは、HSMともソフトウェア・ウォレットを使用する必要があります。HSMのみのモードを現在使用している場合は、次の手順に従って、HSMとウォレットのモードに移行します。

    1. 次の例に示すように、sqlnet.oraファイル構成を変更します(ウォレット・ディレクトリは、Oracle Databaseの所有者によってアクセス可能な(rwx)ディスク上の任意の場所が可能です)。次の例は、ベスト・プラクティスの場所(my_db$ORACLE_SID)を示します。

      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=HSM)(METHOD_DATA=
         (DIRECTORY=/etc/oracle/wallets/my_db)))
      
    2. Oracle Databaseの所有者としてorapki (またはWallet Manager)にログインし、sqlnet.oraファイルに指定した場所に自動ログイン・ウォレットを作成します。ウォレットのパスワードを求められたら、HSMパスワードと同じパスワード(またはHSM接続文字列)を指定します。これらの2つのパスワードは同じにする必要があります。

      cd /etc/oracle/wallets/my_db
      orapki wallet create -wallet . -auto_login[_local] 

      注意:

      Oracle Database所有者には、ウォレットの完全なオペレーティング・システム権限が必要です。

    3. 次のエントリを空のウォレットに追加して、'auto-open' HSMを有効にします。

      mkstore -wrl . -createEntry ORACLE.TDE.HSM.AUTOLOGIN non-empty-string 
      
  2. ORACLEGGのエントリをウォレットに作成します。ORACLEGGは、この鍵の名前にする必要があります。この鍵のパスワードは、共通鍵を共有する必要がありますが、このパスワードをコマンドラインから入力しないでください。かわりに、入力を求められるまで待ちます。

    mkstore -wrl ./ -createEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Your secret/Password is missing in the command line
    Enter your secret/Password: sharedsecret
    Re-enter your secret/Password: sharedsecret
    Enter wallet password: hsm/wallet_password
    
  3. ORACLEGGのエントリを確認します。

    mkstore -wrl . -list
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Enter wallet password: hsm/wallet_password
    Oracle Secret Store entries:
    ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    
  4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。

  5. ウォレットを閉じ、再度開きます。

    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    

    これによってパスワードが自動オープン・ウォレットに挿入されるため、HSMに保存されたTDEマスター暗号化鍵を使用して暗号化されたデータにアクセスする際、パスワードは不要です。

  6. ログ・ファイルを切り替えます。

    alter system switch logfile;
    System altered.
    
  7. Oracle RAC環境で、各ノードでウォレットのコピーを使用している場合、ここでコピーを作成し、各ウォレットを再度開きます。

注意:

共有の場所にある1つのウォレットを、すべてのOracle RACノード間でアクセスが同期化された状態で使用することをお薦めします。

11.1.4.4 Oracle GoldenGate管理者のタスク

  1. GGSCIを実行します。
  2. ENCRYPT PASSWORDコマンドを発行して、Extractパラメータ・ファイル内で不明瞭化されるように共通鍵を暗号化します。これはセキュリティ要件です。
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

    • {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。Oracle GoldenGateは、この鍵を使用して、ENCKEYSファイルで実際の鍵を検索します。鍵およびnd ENCKEYSファイルを作成する場合、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

      例:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  3. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と復号化鍵を指定します。
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、暗号化された共通鍵です。

    • {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。
  5. ウォレットを閉じ、再度開きます。
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.

11.1.5 復号化後のデータのセキュリティを維持するための推奨事項

Extractでは、TDEデータは復号化され、クリア・テキストとして証跡内に書き込まれます。ターゲット・データベースへの経路を含めてデータのセキュリティを維持するには、次のOracle GoldenGateのセキュリティ機能も使用することをお薦めします。

  • 証跡内のデータの暗号化

  • TCP/IP間の遷移でのデータの暗号化

詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

11.1.6 TDEキャプチャがアクティブな場合のDDLの実行

DDLが列レベルの暗号化が存在する表で実行される場合や表キーが更新される場合には、DDLの実行中に表を停止するか、Oracle GoldenGate DDLサポートを有効にする必要があります。通常、キーの更新はセキュリティ違反に伴って行われ、すぐに実行される必要があるため、いつでも対応できるよう、DDL環境をアクティブにしておくとより実用的です。Oracle GoldenGate DDL環境をインストールするには、「トリガーベースのDDLキャプチャのインストール」を参照してください。Oracle GoldenGate DDLサポートを構成するには、「DDLサポートの構成」を参照してください。表レベルの暗号化の場合は、Oracle GoldenGate DDLサポートは必要ありません。

11.1.7 データベースのアップグレード後の鍵の更新

ソース・データベースがアップグレードされ、Oracle GoldenGateがTDEデータをキャプチャしている場合は、マスター・キーを更新し、データベースおよびExtractを再起動する必要があります。マスター・キーを更新するコマンドは次のとおりです。

alter system set encryption key identified by "mykey";

11.1.8 パラメータ・ファイルでのOracle共通鍵の更新

次の手順を使用して、Extractパラメータ・ファイル内でTDE共通鍵を更新し、暗号化します。

  1. GGSCIを実行します。
  2. Extractプロセスを停止します。
    STOP EXTRACT group
    
  3. Oracleウォレット内のORACLEGGエントリを変更します。鍵の名前は、ORACLEGGのままである必要があります。手順は、次を参照してください。
  4. ENCRYPT PASSWORDコマンドを発行して新しい共通鍵を暗号化します。
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

    • {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  5. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と、Oracle GoldenGate生成型またはユーザー定義型の復号化鍵を指定します。
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、暗号化された共通鍵です。

    • {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  6. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。
  7. ウォレットを閉じ、再度開きます。
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    
  8. Extractを起動します。
    START EXTRACT group