ヘッダーをスキップ
Oracle® GoldenGate Oracle GoldenGateの管理for Windows and UNIX
12c (12.1.2)
E49846-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 Oracle GoldenGateのセキュリティの構成

この章では、Oracle GoldenGateのセキュリティの構成方法について説明します。

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

11.1 Oracle GoldenGateのセキュリティ・オプションの概要

次のセキュリティ機能を使用して、Oracle GoldenGate環境および処理対象のデータを保護できます。

セキュリティ機能 保護の対象 サポートされるデータベース 説明
データ暗号化

次の2つの方法が用意されています。

  • 証跡または抽出ファイルのデータ
  • TCP/IPネットワークを通じて送信されるデータ

マスター・キーとウォレット方式は、これをサポートしているプラットフォームで推奨される方法です。iSeries、z/OSおよびNonStopプラットフォームでは使用できません。

ENCKEYS方式は、Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。iSeries、z/OSおよびNonStopプラットフォームでは、Blowfishを使用する必要があります。

ファイル内、データ・リンク経由およびTCP/IP間のデータを暗号化します。次のいずれかの方法を使用します。
資格証明ストアのアイデンティティ管理

詳細は、11.4項「資格証明ストアでのアイデンティティ管理」を参照してください。

データベースへのログイン用にOracle GoldenGateプロセスに割り当てられたユーザーIDとパスワード(資格証明) 資格証明ストアは、この機能をサポートしているプラットフォームで推奨されるパスワード管理方法です。iSeries、z/OSおよびNonStopプラットフォームでは使用できません。 ユーザー資格証明は、セキュアなウォレット・ストレージで管理されます。コマンドやパラメータでは、資格証明の別名を指定します。
パスワード暗号化

詳細は、11.5項「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照してください。

コマンドおよびパラメータ・ファイルに指定され、Oracle GoldenGateプロセスがデータベースへのログインに使用するパスワード Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。iSeries、z/OSおよびNonStopプラットフォームでは、Blowfishを使用する必要があります。その他のプラットフォームで推奨されるパスワード管理方法は、資格証明ストアです。 パスワードを暗号化し、その暗号化されたパスワードをコマンドまたはパラメータ入力で指定できるようにします。次のいずれかの方法を使用します。
  • AES-128

  • AES-192

  • AES-256

  • Blowfish

コマンドの認証

詳細は、11.7項「GGSCIコマンド・セキュリティの構成」を参照してください。

GGSCIを通じて発行されるOracle GoldenGateコマンド Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。 オペレーティング・システムで保護されたファイル内に認証許可を格納します。CMDSEC (コマンド・セキュリティ)ファイルを構成します。
信頼できる接続

詳細は、11.8項「ターゲット・システムからの接続開始の使用」を参照してください。

ファイアウォールの先にある信頼されないOracle GoldenGateホスト・マシンへのTCP/IP接続 Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。 次のいずれかの方法を使用します。
  • AES-128

  • AES-192

  • AES-256

  • Blowfish


脚注 1 Advanced Encryption Standard(AES)は、高度なデータ・セキュリティを必要とする政府機関やその他の組織で使用されている対称鍵暗号化標準です。128ビット鍵暗号、192ビット鍵暗号、256ビット鍵暗号という3種類の128ビット・ブロック暗号が用意されています。32ビットのプラットフォーム上で稼働するOracle以外のデータベースでAESを使用するには、LD_LIBRARY_PATH変数またはSHLIB_PATH変数(UNIX)、あるいはPATH変数(Windows)を使用して、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスを設定する必要があります。64ビットのプラットフォームでは必要ありません。

脚注 2 Blowfish暗号化: 鍵を使用した対称ブロック暗号です。Oracle GoldenGateによるBlowfishの実装では、ブロック・サイズは64ビット、鍵サイズは32から256ビットの可変長です。

11.2 マスター・キーとウォレット方式を使用したデータ暗号化

このデータ暗号化方式を使用するには、マスター・キー・ウォレットを作成してマスター・キーをウォレットに追加します。この方式では、データが証跡内またはTCP/IP間のどちらで暗号化されるかに応じて、次の処理を行います。

  • Oracle GoldenGateで証跡ファイルが作成されるたびに、新しい暗号化鍵が自動的に生成されます。この暗号化鍵で証跡の内容を暗号化します。マスター・キーは、暗号化鍵を暗号化します。この暗号化鍵を暗号化するプロセスは鍵ラップと呼ばれています(詳細は、米国標準委員会のANS X9.102標準を参照してください)。

  • ネットワーク間のデータを暗号化する場合、Oracle GoldenGateではマスター・キーに基づいた暗号関数を使用してセッション鍵を生成します。

Oracle GoldenGateでは、自動ログイン・ウォレット(ファイル拡張子.sso)と呼ばれる、ユーザーの操作なしで必要なパスワードを提供できる不明瞭化されたコンテナを使用します。

マスター・キーとウォレットを使用したデータ暗号化は、iSeries、z/OSまたはNonStopプラットフォームではサポートされていません。

この項では、次のタスクについて説明します。

11.2.1項「ウォレットの作成とマスター・キーの追加」

11.2.2項「パラメータ・ファイルでの暗号化パラメータの指定」

11.2.3項「マスター・キーの更新」

11.2.4項「失効したマスター・キーの削除」

11.2.1 ウォレットの作成とマスター・キーの追加

ウォレットはプラットフォームに依存しない形式で作成されます。ウォレットは、Oracle GoldenGate環境内のすべてのシステムからアクセス可能な共有ファイル・システム上に格納できます。あるいは、Oracle GoldenGate環境内の各システムで同じウォレットを使用することも可能です。各システム上のウォレットを使用する場合は、1つのシステム(通常はソース・システム)でウォレットを作成し、それをOracle GoldenGate環境内の他のすべてのシステムにコピーする必要があります。マスター・キーを追加、変更または削除するたびに、これを実行する必要があります。

次の手順では、ソース・システムでウォレットを作成し、それをOracle GoldenGate環境内の他のシステムにコピーする方法を説明します。

  1. (オプション)Oracle GoldenGateインストール・ディレクトリのdirwltサブディレクトリ以外の場所にウォレットを格納するには、GLOBALSファイルでWALLETLOCATIONパラメータを使用して目的の場所を指定します。(GLOBALSファイルの詳細は、4.4.2項を参照してください。)

    WALLETLOCATION directory_path
    
  2. GGSCIでCREATE WALLETコマンドを使用して、マスター・キー・ウォレットを作成します。

    CREATE WALLET
    
  3. GGSCIでADD MASTERKEYコマンドを使用して、マスター・キーをウォレットに追加します。

    ADD MASTERKEY
    
  4. INFO MASTERKEYコマンドを発行して、追加した鍵が現在のバージョンであることを確認します。新規インストールの場合、バージョンは1です。

    INFO MASTERKEY
    
  5. VERSIONオプションを指定してINFO MASTERKEYコマンドを発行します(versionには現在のバージョン番号を指定します)。バージョン番号とそのバージョンのAESハッシュ値を記録します。

    INFO MASTERKEY VERSION version
    
  6. 他のすべてのOracle GoldenGateシステムにウォレットをコピーします。

  7. ウォレットをコピーした各システム上で、VERSIONオプションを指定してINFO MASTERKEYコマンドを発行します(versionには記録しておいたバージョン番号を指定します)。各ウォレットで、StatusCurrentになっていることを確認し、AESハッシュ値を記録しておいたコピー元の値と比較します。すべてのウォレットで、同じ鍵バージョンとハッシュ値が表示される必要があります。

    INFO MASTERKEY VERSION version
    

11.2.2 パラメータ・ファイルでの暗号化パラメータの指定

次の手順では、証跡内およびネットワーク間のデータをマスター・キーとウォレット方式で暗号化するために必要なパラメータを追加します。

  1. 次に示すパラメータ・ファイルに、次の項目を追加します。

    • 証跡データを暗号化する手順: プライマリExtractグループとデータ・ポンプのパラメータ・ファイルで、暗号化対象の証跡またはファイルを指定するパラメータの前に、ENCRYPTTRAILパラメータ文を追加します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。構文は次のとおりです。

      ENCRYPTTRAIL {AES128 | AES192 | AES256} 
      
    • TCP/IP間のデータを暗号化する手順: データ・ポンプ(ポンプが使用されていない場合はプライマリExtract)のパラメータ・ファイルで、RMTHOSTOPTIONSパラメータのENCRYPTオプションを使用します。構文は次のとおりです。

      RMTHOSTOPTIONS host, MGRPORT port, ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH}
      
      RMTHOSTOPTIONS ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH}
      

    説明:

    • RMTHOSTOPTIONSは、パッシブExtractを含むExtractに使用されます。パッシブExtractの詳細は、11.8項「ターゲット・システムからの接続開始の使用」を参照してください。

    • オプションなしのENCRYPTTRAILは、256鍵バイト置換を指定します。このフォーマットは安全ではないため、本番環境では使用しないでください。以前のOracle GoldenGateバージョンとの下位互換性を維持するためにのみ使用します。

    • AES128の場合、AES-128暗号化アルゴリズムで暗号化されます。

    • AES192の場合、AES-192暗号化アルゴリズムで暗号化されます。

    • AES256の場合、AES-256暗号化アルゴリズムで暗号化されます。

    • BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。プラットフォームでサポートされている場合には、AESを使用します。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するために使用する他、z/OS上のDB2、DB2 for iおよびNonStop上のSQL/MXで使用します。これらのプラットフォームでは、AESはサポートされていません。

  2. 証跡データを復号化してから出力証跡に書き込む場合は、データ・ポンプでDECRYPTTRAILパラメータを使用します。そうしないと、データ・ポンプで処理が必要なデータは自動的に復号化され、後で再暗号化されてから出力証跡に書き込まれます。(Replicatでは、パラメータ入力なしでデータが自動的に復号化されます。)

    DECRYPTTRAIL
    

注意:

受信した証跡データを復号化してから再暗号化して任意の出力証跡またはファイルに書き込むよう、明示的に指定できます。まず、データを復号化するDECRYPTTRAILを入力し、次にENCRYPTTRAILと出力証跡の指定を入力します。DECRYPTTRAILENCRYPTTRAILの前に入力されている必要があります。復号化と再暗号化を明示的に指示することにより、必要に応じてAESアルゴリズムを証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。あるいは、1番目のプロセスと2番目のプロセス間の暗号化にはマスター・キーとウォレット方式を使用し、2番目のプロセスと3番目のプロセス間の暗号化にはENCKEYS方式を使用することも可能です。

11.2.3 マスター・キーの更新

次の手順では、暗号化鍵ウォレット内のマスター暗号化鍵を更新します。マスター・キーを更新すると、鍵の新しいバージョンが作成されます。名前は同じままですが、ビット順序が変更されます。セキュリティ・ポリシーの一環として、現在のマスター・キーを定期的に更新し、失効を回避してください。

マスター・キーの更新済バージョンはすべてウォレット内に残ります(ただし、DELETE MASTERKEYコマンドで削除対象とマークされてからPURGE WALLETコマンドでウォレットが消去されるまで)。詳細は、11.2.4項「失効したマスター・キーの削除」を参照してください。

ウォレットが共有記憶域で(共有ウォレットとして)一元管理されていない場合、更新されたウォレットは、Oracle GoldenGate構成内でウォレットを使用する他のすべてのシステムにコピーする必要があります。これを行うには、Oracle GoldenGateを停止する必要があります。次の手順では、これらの作業を正しい順序で実行する方法を示します。

  1. Extractを停止します。

    STOP EXTRACT group
    
  2. ターゲット・システムで、各Replicatに対して次のコマンドを発行します(At EOFが戻されるまで)。

    SEND REPLICAT group STATUS
    
  3. ソース・システムで、データ・ポンプを停止します。

    STOP EXTRACT group
    
  4. ターゲット・システムで、Replicatグループを停止します。

    STOP REPLICAT group
    
  5. ソース・システムで、次のコマンドを発行してウォレットを開きます。

    OPEN WALLET
    
  6. ソース・システムで、次のコマンドを発行して現在の鍵のバージョンを確認します。バージョンを記録します。

    INFO MASTERKEY
    
  7. ソース・システムで、次のコマンドを発行してマスター・キーを更新します。

    RENEW MASTERKEY
    
  8. ソース・システムで、次のコマンドを発行して新しいバージョンが現在のものであることを確認します。

    INFO MASTERKEY
    

    注意:

    共有ウォレットを使用している場合は、手順12に進みます。各システム上のウォレットを使用している場合は、次の手順を続行します。

  9. ソース・システムで、次のコマンドを発行します(versionにはマスター・キーの新しいバージョンを指定します)。ハッシュ値を記録します。

    INFO MASTERKEY VERSION version
    
  10. すべてのターゲット・システム上で、以前のウォレットと同じ場所に、ソース・システムの更新されたウォレットをコピーします。

  11. 各ターゲットで、次のコマンドを発行します(versionにはマスター・キーの新しいバージョン番号を指定します)。各ウォレットで、StatusCurrentになっていることを確認し、新しいハッシュ値を記録しておいたコピー元の値と比較します。すべてのウォレットで、同じ鍵バージョンとハッシュ値が表示される必要があります。

    INFO MASTERKEY VERSION version
    
  12. Extractを再起動します。

    START EXTRACT group
    
  13. データ・ポンプを再起動します。

    START EXTRACT group
    
  14. Replicatを再起動します。

    START REPLICAT group
    

11.2.4 失効したマスター・キーの削除

次の手順では、マスター・キーの失効バージョンを削除します。セキュアなOracle GoldenGateウォレットを維持するための全体的なポリシーの一環として、失効した鍵は削除してください。ウォレット内で保持する鍵のバージョンの数とその保存期間を定めたポリシーを作成しておくことをお薦めします。


注意:

Oracle GoldenGateの共有ウォレットを使用したデプロイの場合、マスター・キーの古いバージョンは、マスター・キーが更新された後、すべてのプロセスが最新バージョンを使用するまで保持される必要があります。保持期間はデプロイのトポロジ、レイテンシおよびデータ・ロードによって異なります。24時間の最小の待機時間は控えめな見積りですが、すべてのプロセスが新しい鍵の使用を開始するのにかかる時間を決定するには、テストを実行する必要がある場合があります。すべてのプロセスで最新のバージョンが使用されていることを確認するには、マスター・キーを更新した直後に各Extractのレポート・ファイルを表示して、古い鍵でマイニングされた最新のSCNを確認します。その後で、Replicatのレポート・ファイルをモニターし、このSCNがすべてのReplicatグループで適用されていることを確認します。この時点で、マスター・キーの旧バージョンを削除できます。

ウォレットが中央の記憶域に配置され、Oracle GoldenGateインストール環境全体でそのウォレットを使用できる場合、次の手順は共有ウォレットに対して1回実行するだけで済みます。Oracle GoldenGateプロセスを停止する必要はありません。

ウォレットが中央の記憶域にない(つまり、各Oracle GoldenGateシステムにコピーが存在する)場合は、次のいずれかを実行します。

  • Oracle GoldenGateプロセスを停止できる場合は、ウォレットの変更手順を1度だけ実行して、更新されたウォレットを他のシステムにコピーしてから、Oracle GoldenGateプロセスを再起動します。

  • Oracle GoldenGateプロセスを停止できない場合は、必ず各システム上でまったく同じ方法を使用してウォレットの変更手順を実行する必要があります。

    次の手順には、両方のシナリオに対応する説明が含まれています。

  1. ソース・システムで、次のコマンドを発行して、削除対象のマスター・キーのバージョンを確認します。通常、最も古いバージョンが削除対象です。対象のバージョンを記録します。

    INFO MASTERKEY
    
  2. ソース・システムで、次のコマンドを発行してウォレットを開きます。

    OPEN WALLET
    
  3. 次のコマンドを発行して失効したマスター・キーを削除します。特定のバージョン、指定範囲のバージョン、または現在のものを含むすべてのバージョンを削除するオプションが用意されています。すべてのバージョンを削除するには、トランザクション・アクティビティとOracle GoldenGateプロセスを停止する必要があります。

    DELETE MASTERKEY {VERSION version | RANGE FROM begin_value TO end_value}
    

    注意:

    DELETE MASTERKEYは、削除対象の鍵のバージョンをマークするだけで、実際の削除は行いません。

  4. DELETE MASTERKEYコマンドから戻されたメッセージを確認し、正しいバージョンが削除対象としてマークされていることを確かめます。間違ってマークされたバージョンのマークを解除するには、次の手順に進む前に、UNDELETE MASTERKEY VERSION versionコマンドを使用します。必要に応じて、INFO MASTERKEYコマンドを実行すると、マークされた削除対象を確認できます。

  5. 正しいバージョンが削除対象としてマークされていることが確認できたら、次のコマンドを発行して、それらをウォレットから消去します。これは永久削除なので、元に戻せません。

    PURGE WALLET
    

    次の手順:

    • ウォレットが共有記憶域に配置されている場合、手順はこれで終了です。

    • 各システム上にウォレットが配置され、Oracle GoldenGateプロセスを停止できない場合は、Oracle GoldenGateシステムごとに前の手順を繰り返します。

    • 各システム上にウォレットが配置され、Oracle GoldenGateプロセスを停止できる場合は、次の手順を続行してプロセスを停止し、ウォレットを正しい順序で他のシステムにコピーします。

  6. Extractを停止します。

    STOP EXTRACT group
    
  7. GGSCIで、各データ・ポンプExtracに対して次のコマンドを発行します(At EOFが戻され、ローカル証跡内のすべてのデータが処理されたことが確認されるまで)。

    SEND EXTRACT group STATUS
    
  8. データ・ポンプを停止します。

    STOP EXTRACT group
    
  9. ターゲット・システムで、各Replicatに対して次のコマンドを発行します(At EOFが戻されるまで)。

    SEND REPLICAT group STATUS
    
  10. Replicatグループを停止します。

    STOP REPLICAT group
    
  11. すべてのターゲット・システム上で、以前のウォレットと同じ場所に、ソース・システムの更新されたウォレットをコピーします。

  12. Extractを再起動します。

    START EXTRACT group
    
  13. データ・ポンプを再起動します。

    START EXTRACT group
    
  14. Replicatを再起動します。

    START REPLICAT group
    

11.3 ENCKEYS方式を使用したデータ暗号化

このデータ暗号化方式を使用するには、暗号化鍵を生成してローカルのENCKEYSファイルに格納するよう、Oracle GoldenGateを構成します。この方式では永久鍵を使用します(永久鍵を変更するには、11.6項「ENCKEYSファイルへの暗号化鍵の移入」の指示に従ってアルゴリズムを再生成する必要があります)。ENCKEYSファイルは、オペレーティング・システムの一般的なファイル権限の割当て方法で保護されている必要があります。

次の手順では、AES暗号化鍵を生成し、それをENCKEYSファイルに格納する方法について説明します。

11.3.1 ENCKEYS方式を使用したデータ暗号化

  1. 暗号化鍵を生成して、ENCKEYSファイルに格納します。詳細は、11.6項「ENCKEYSファイルへの暗号化鍵の移入」を参照してください。作成したENCKEYSファイルを、中間システムとすべてのターゲット・システムのOracle GoldenGateインストール・ディレクトリに必ずコピーしてください。

  2. 次に示すパラメータ・ファイルに、次の項目を追加します。

    • 証跡データを暗号化する手順: プライマリExtractグループとデータ・ポンプのパラメータ・ファイルで、暗号化対象の証跡またはファイルを指定するパラメータの前に、KEYNAMEオプションを指定してENCRYPTTRAILパラメータを追加します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。構文は次のとおりです。

      ENCRYPTTRAIL {AES128 | AES192 | AES256} KEYNAME keyname 
      
    • TCP/IP間のデータを暗号化する手順: データ・ポンプ(ポンプが使用されていない場合はプライマリExtract)のパラメータ・ファイルで、RMTHOSTOPTIONSパラメータに、ENCRYPTオプションとKEYWORD句を追加します。構文は次のいずれかです。

      RMTHOSTOPTIONS host, MGRPORT port, ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname
      
      RMTHOSTOPTIONS ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname
      

    説明:

    • RMTHOSTOPTIONSは、Extractに使用されます。パッシブExtractの詳細は、11.8項「ターゲット・システムからの接続開始の使用」を参照してください。

    • ENCRYPTTRAILでオプションを指定しない場合、すべてのデータベース・タイプでAES128がデフォルトとして使用されます(ただし、iSeries、z/OSおよびNonStopプラットフォームではBLOWFISHがデフォルトです)。

    • AES128の場合、AES-128暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • AES192の場合、AES-192暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • AES256の場合、AES-256暗号化アルゴリズムで暗号化されます。iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

    • BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。プラットフォームでサポートされている場合には、AESを使用します。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するために使用する他、z/OS上のDB2、DB2 for iおよびNonStop上のSQL/MXで使用します。これらのプラットフォームでは、AESはサポートされていません。

    • KEYNAME keynameでは、ENCKEYSファイルにある暗号化鍵の論理参照名を指定します。


      注意:

      RMTHOSTは、Extractがパッシブ構成でない場合に使用します。詳細は、11.8項「ターゲット・システムからの接続開始の使用」を参照してください。

  3. TCP/IPを通じて暗号化されるデータで静的Collectorを使用する場合、Collectorの起動文字列に次のパラメータを挿入します。

    -KEYNAME keyname
    -ENCRYPT algorithm
    

    指定した鍵名とアルゴリズムは、RMTHOSTKEYNAMEおよびENCRYPTオプションで指定されたものと一致する必要があります。

11.3.2 ENCKEYS方式を使用したデータ復号化

TCP/IP接続を通じて暗号化されたデータは、送信先で証跡に書き込まれる前に自動的に復号化されます(証跡暗号化が指定されていない場合)。

証跡内で暗号化されたデータは暗号化されたままです(DECRYPTTRAILパラメータが使用されていない場合)。Replicatで暗号化データをターゲットに適用できるようにするには、あらかじめDECRYPTTRAILが必要です。データ・ポンプでは、暗号化データをそのまま出力証跡に渡します(DECRYPTTRAILおよびENCRYPTTRAILパラメータが使用されていない場合)。データ・ポンプでデータを処理する必要がある場合は、次のようにデータの復号化と暗号化を行います。

データ・ポンプで処理するためにデータを復号化する手順

データ・ポンプのパラメータ・ファイルにDECRYPTTRAILパラメータを追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります(11.3.1項「ENCKEYS方式を使用したデータ暗号化」を参照)。

DECRYPTTRAIL {AES128 | AES192 | AES256} KEYNAME keyname

データ・ポンプで処理した後にデータを暗号化する手順

データ・ポンプが出力証跡またはファイルにデータを書き込む前にそのデータを暗号化するには、対象の証跡またはファイルを指定するパラメータの前にENCRYPTTRAILパラメータを使用します。証跡またはファイルを指定するパラメータは、EXTTRAILRMTTRAILEXTFILEおよびRMTFILEです。ENCRYPTTRAILパラメータと証跡またはファイルの指定は、DECRYPTTRAILパラメータの後に配置する必要があります。詳細は、11.3.1項「ENCKEYS方式を使用したデータ暗号化」を参照してください。


注意:

ENCRYPTTRAILで指定するアルゴリズムは、証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。

Replicatで処理するためにデータを復号化する手順

Replicatの読み取る証跡が暗号化されている場合は、Replicatのパラメータ・ファイルにDECRYPTTRAILパラメータ文を追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります。詳細は、11.3.1項「ENCKEYS方式を使用したデータ暗号化」を参照してください。

11.3.3 ENCKEYS方式を使用したデータ暗号化の例

次の例では、様々な証跡またはファイルに対して暗号化を有効化/無効化する方法を示しています。この例では、Extractで2つのローカル証跡に書き込みますが、暗号化する必要があるのはそのうちの1つのみです。

Extract構成で、証跡bbは暗号化されない証跡なので、そのEXTTRAILパラメータは、証跡aaを暗号化するENCRYPTTRAILパラメータの前に配置されます。あるいは、証跡bbを指定するEXTTRAILパラメータの前にNOENCRYPTTRAILパラメータを使用し、次に、証跡aaを指定するEXTTRAILパラメータの前にENCRYPTTRAILパラメータを使用することもできます。

encrypt_trail_2.jpgの説明が続きます
図encrypt_trail_2.jpgの説明

この例では、データ・ポンプ1pumpでデータを処理できるよう、暗号化データを復号化する必要があります。そのため、データ・ポンプのパラメータ・ファイルでDECRYPTTRAILパラメータが使用されています。データを再暗号化して出力するには、ENCRYPTTRAILパラメータをDECRYPTTRAILの後(ただし出力証跡の指定の前)に使用する必要があります。データ・ポンプでデータを処理する必要がない場合は、DECRYPTTRAILおよびENCRYPTTRAILパラメータを省略して、暗号化された状態のままReplicatに渡すことができます。

例11-1 Extractのパラメータ・ファイル

EXTRACT capt
USERIDALIAS ogg
DISCARDFILE /ogg/capt.dsc, PURGE
-- Do not encrypt this trail.
EXTTRAIL /ogg/dirdat/bb
TABLE SALES.*;
-- Encrypt this trail with AES-192.
ENCRYPTTRAIL AES192 KEYNAME mykey1
EXTTRAIL /ogg/dirdat/aa
TABLE FIN.*;

例11-2 データ・ポンプ1のパラメータ・ファイル

EXTRACT 1pump
USERIDALIAS ogg
DISCARDFILE /ogg/1pmp.dsc, PURGE
-- Decrypt the trail this pump reads. Use encryption key mykey1.
DECRYPTTRAIL AES192 KEYNAME mykey1
-- Encrypt the trail this pump writes to, using AES-192.
RMTHOSTOPTIONS myhost1, MGRPORT 7809
ENCRYPTTRAIL AES192 KEYNAME mykey2
RMTTRAIL /ogg/dirdat/cc
TABLE FIN.*;

例11-3 データ・ポンプ2のパラメータ・ファイル

EXTRACT 2pump
USERIDALIAS ogg
DISCARDFILE /ogg/2pmp.dsc, PURGE
RMTHOST myhost2, MGRPORT 7809
RMTTRAIL /ogg/dirdat/dd
TABLE SALES.*;

例11-4 Replicat1(myhost1上)のパラメータ・ファイル

REPLICAT 1deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/1deliv.dsc, PURGE
-- Decrypt the trail this Replicat reads. Use encryption key mykey2.
DECRYPTTRAIL AES192 KEYNAME mykey2
MAP FIN.*, TARGET FIN.*;

例11-5 Replicat 2(myhost2上)のパラメータ・ファイル

REPLICAT 2deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/2deliv.dsc, PURGE
MAP SALES.*, TARGET SALES.*;

11.4 資格証明ストアでのアイデンティティ管理

この項では、Oracle GoldenGateの資格証明ストアを使用して、暗号化されたデータベース・パスワードとユーザーIDを管理し、それらを別名と関連付ける方法について説明します。コマンドまたはパラメータ・ファイルでは、実際のユーザーIDやパスワードではなく別名を指定するため、暗号化鍵のユーザー入力は必要ありません。資格証明ストアはOracle Credential Store Framework (CSF)内の自動ログイン・ウォレットとして実装されます。

資格証明ストアを使用するもう1つのメリットは、複数のOracle GoldenGateインストール環境で同じ資格証明ストアを使用しながら、それぞれのローカル資格証明に対する管理を保持できることです。資格証明ストアは、ドメインと呼ばれる論理コンテナにパーティション化できます(Oracle GoldenGateのインストール環境ごとに1つのドメインを使用するなど)。ドメインを使用すると、別名をセットで1つ(Extractはext、Replicatはrepというように)作成し、各ドメインの同じ別名に異なるローカル資格証明を割り当てられます。たとえば、ユーザーogg1の資格証明をDOMAIN system1ALIAS extとして格納し、ユーザーogg2の資格証明をDOMAIN system2ALIAS extとして格納できます。

資格証明ストアのセキュリティ機能は、iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。これらのプラットフォームと、サポートされている他のプラットフォームの詳細は、11.5項「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照してください。

資格証明ストアを使用するには、次の手順を実行します。

11.4.1 資格証明ストアの作成とデータ移入

  1. (オプション)Oracle GoldenGateインストール・ディレクトリのdircrdサブディレクトリ以外の場所に資格証明ストアを格納するには、GLOBALSファイルでCREDENTIALSTORELOCATIONパラメータを使用して目的の場所を指定します。(GLOBALSファイルの詳細は、4.4.2項を参照してください。)

  2. Oracle GoldenGateインストール・ディレクトリからGGSCIを実行します。

  3. 次のコマンドを発行して、資格証明ストアを作成します。

    ADD CREDENTIALSTORE
    
  4. 次のコマンドを発行して、資格証明の各セットを資格証明ストアに追加します。

    ALTER CREDENTIALSTORE ADD USER userid,
      [PASSWORD password]
      [ALIAS alias]
      [DOMAIN domain]
    

    説明:

    • useridはユーザー名です。資格証明ストアに配置できるユーザー名のインスタンスは1つのみです(ALIASまたはDOMAINオプションが使用されていない場合)。

    • passwordはパスワードです。このオプションを使用すると、パスワードはエコーされます(不明瞭化されません)。セキュリティ上の理由から、このオプションを省略し、コマンドでパスワードの入力を求めるプロンプトを表示できるようにして、入力時にパスワードを不明瞭化することをお薦めします。

    • aliasはユーザー名の別名です。ログイン資格証明が必要なパラメータとコマンドでは、資格証明のかわりに別名を使用します。ALIASオプションを省略すると、別名はデフォルトでユーザー名に設定されます。パラメータまたはコマンド入力でユーザー名を使用したくない場合は、ALIASを使用して、ユーザー名とは別の名前を指定します。

    • domainは、指定された別名を含むドメインです。デフォルトのドメインはOracle GoldenGateです。

この手順で使用されているコマンドとその他の資格証明ストア・コマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

11.4.2 パラメータ・ファイルまたはコマンドへの別名の指定

次のコマンドおよびパラメータでは、ログイン資格証明のかわりに別名を使用できます。

表11-1 パラメータおよびコマンドへの資格証明の別名の指定

資格証明の対象 使用するパラメータまたはコマンド

Oracle GoldenGateデータベース・ログイン脚注 1 

USERIDALIAS alias

Oracle ASMインスタンスのOracle GoldenGateデータベース・ログイン

TRANLOGOPTIONS ASMUSERALIAS alias

ダウンストリームOracleマイニング・データベースのOracle GoldenGateデータベース・ログイン

TRANLOGOPTIONS MININGUSERALIAS alias

{CREATE | ALTER} USER name IDENTIFIED BY passwordのパスワード置換

DDLOPTIONS DEFAULTUSERPASSWORDALIAS alias

GGSCIからのOracle GoldenGateデータベース・ログイン

DBLOGIN USERIDALIAS alias

GGSCIからダウンストリームOracleマイニング・データベースへのOracle GoldenGateデータベース・ログイン

MININGDBLOGIN USERIDALIAS alias

脚注 1 USERIDALIASに必要な構文要素は、データベース・タイプによって異なります。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

11.5 コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化

この項では、コマンドまたはパラメータ・ファイルで指定されるデータベース・パスワードの暗号化方法を説明します。この方法では、平文のパスワードを入力として使用し、不明瞭化されたパスワード文字列と参照キーを生成して、その両方をコマンドまたはパラメータ・ファイルで使用できます。この暗号化方法は、Oracle GoldenGateプロセスからデータベースにアクセスするにはログインが求められるすべてのデータベースに対応しています。

データベースによっては、この方法のかわりに資格証明ストアを使用できる場合があります。詳細は、11.4項「資格証明ストアでのアイデンティティ管理」を参照してください。

コマンドまたはパラメータ・ファイルで暗号化パスワードを使用するには、次の手順を実行します。

11.5.1 パスワードの暗号化

  1. GGSCIを実行します。

  2. ENCRYPT PASSWORDコマンドを発行します。

    ENCRYPT PASSWORD password algorithm ENCRYPTKEY {key_name | DEFAULT}
    

    説明:

    • passwordは平文のログイン・パスワードです。パスワードは引用符で囲まないでください。パスワードに大/小文字の区別がある場合は、そのように入力してください。

    • algorithmでは、使用する暗号化アルゴリズムを指定します。

      • AES128の場合、AES-128暗号が使用されます(鍵サイズは128ビットです)。

      • AES192の場合、AES-192暗号が使用されます(鍵サイズは192ビットです)。

      • AES256の場合、AES-256暗号が使用されます(鍵サイズは256ビットです)。

      • BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。プラットフォームでサポートされている場合には、AESを使用します。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するために使用する他、z/OS上のDB2、DB2 for iおよびNonStop上のSQL/MXで使用します。これらのプラットフォームでは、AESはサポートされていません。

    • ENCRYPTKEY key_nameは、ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。鍵の名前は、ENCKEYSファイルにある実際の鍵を参照するために使用されます。AES暗号化を行うには、ユーザー定義の鍵とENCKEYSファイルを使用する必要があります。鍵とENCKEYSファイルを作成するには、11.6項「ENCKEYSファイルへの暗号化鍵の移入」を参照してください。

    • ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateで事前定義済のBlowfish鍵が生成されます。このタイプの鍵は安全ではないため、プラットフォームでAESがサポートされている場合は、本番環境では使用しないでください。このオプションはz/OS上のDB2、DB2 for i、およびSQL/MXでのみ使用してください(BLOWFISHが指定されている場合)。AESをDEFAULTとともに使用すると、ENCRYPT PASSWORDはエラーを戻します。

      アルゴリズムを指定しない場合、z/OS上のDB2およびNonStop SQL/MX以外のすべてのデータベース・タイプではAES128がデフォルトになり、z/OS上のDB2およびNonStop SQL/MXではBLOWFISHがデフォルトになります。

    次に、様々なオプションを指定したENCRYPT PASSWORDの例を示します。

    ENCRYPT PASSWORD mypassword AES256 ENCRYPTKEY mykey1
    ENCRYPT PASSWORD mypassword BLOWFISH ENCRYPTKEY mykey1
    ENCRYPT PASSWORD mypassword BLOWFISH ENCRYPTKEY DEFAULT
    
  3. 暗号化パスワードは、ENCRYPT PASSWORDコマンドの実行時に画面に出力されます。暗号化パスワードをコピーして、コマンドまたはパラメータに貼り付けます(11.5.2項の手順を参照)。

11.5.2 パラメータ・ファイルまたはコマンドへの暗号化パスワードの指定

ENCRYPT PASSWORDコマンド(11.5項を参照)で生成した暗号化パスワードをコピーし、表11-2に示すようにOracle GoldenGateの適切なパラメータ文またはコマンドに貼り付けます。オプションについては表の後で説明します。

表11-2 パラメータおよびコマンドへの暗号化パスワードの指定

パスワードの対象 使用するパラメータまたはコマンド

Oracle GoldenGateデータベース・ログイン脚注 1 

USERID user, PASSWORD password, &
algorithm ENCRYPTKEY {keyname | DEFAULT}

Oracle ASMインスタンスのOracle GoldenGateデータベース・ログイン

TRANLOGOPTIONS ASMUSER SYS@ASM_instance_name, &
ASMPASSWORD password, &
algorithm ENCRYPTKEY {keyname | DEFAULT}

ダウンストリームOracleマイニング・データベースのOracle GoldenGateデータベース・ログイン

[MININGUSER {/ | user}[, MININGPASSWORD password]&
[algorithm ENCRYPTKEY {key_name | DEFAULT}]&
[SYSDBA]]

{CREATE | ALTER} USER name IDENTIFIED BY passwordのパスワード置換

DDLOPTIONS DEFAULTUSERPASSWORD password &
algorithm ENCRYPTKEY {keyname | DEFAULT}

Oracle TDE共有秘密鍵のパスワード

DBOPTIONS DECRYPTPASSWORD passwordFoot 2  algorithm &
ENCRYPTKEY {keyname | DEFAULT}

GGSCIからのOracle GoldenGateデータベース・ログイン

DBLOGIN USERID user, PASSWORD password, &
algorithm ENCRYPTKEY {keyname | DEFAULT}

GGSCIからダウンストリームOracleマイニング・データベースへのOracle GoldenGateデータベース・ログイン

MININGDBLOGIN USERID user, PASSWORD password,&
algorithm ENCRYPTKEY {keyname | DEFAULT}

脚注 1 USERIDに必要な構文要素は、データベース・タイプによって異なります。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

脚注 2 これは共有秘密鍵です。

説明:

  • userは、Oracle GoldenGateプロセスまたは(Oracleのみ)ホスト文字列のデータベース・ユーザー名です。Oracle ASMの場合、ユーザー名はSYSである必要があります。

  • passwordは、ENCRYPT PASSWORDコマンドの結果からコピーした暗号化パスワードです。

  • algorithmは、パスワードの暗号化に使用した暗号化アルゴリズムを、AES128AES192AES256またはBLOWFISHの中から指定します。デフォルトの鍵を使用し、アルゴリズムを指定しない場合は、AES128がデフォルトになります。

  • ENCRYPTKEY keynameでは、ENCKEYS参照ファイルにある、ユーザーが作成した暗号化鍵の論理参照名を指定します。ENCRYPT PASSWORDKEYNAME keynameオプションとともに使用した場合に使用します。

  • ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDKEYNAME DEFAULTオプションとともに使用した場合に使用します。

次に、パラメータおよびコマンドで暗号化パスワードを使用する例を示します。

SOURCEDB db1 USERID ogg,&
PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES128, ENCRYPTKEY securekey1

USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
BLOWFISH, ENCRYPTKEY securekey1

USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
BLOWFISH, ENCRYPTKEY DEFAULT

TRANLOGOPTIONS ASMUSER SYS@asm1, &
ASMPASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES128, ENCRYPTKEY securekey1

DBLOGIN USERID ogg, PASSWORD &
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES128, ENCRYPTKEY securekey1

DDLOPTIONS DEFAULTUSERPASSWORD &
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES 256 ENCRYPTKEY mykey

DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES 256 ENCRYPTKEY mykey

DDLOPTIONS PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC, &
AES 256 ENCRYPTKEY mykey

11.6 ENCKEYSファイルへの暗号化鍵の移入

次のセキュリティ機能を使用する場合、暗号化鍵を生成して格納する必要があります。

この手順では、次の操作を実行します。

  • 1つ以上の暗号化鍵を作成します。

  • ソース・システムのENCKEYS参照ファイルに鍵を格納します。

  • 各ターゲット・システムにENCKEYSファイルをコピーします。

独自の鍵を定義するか、Oracle GoldenGateのKEYGENユーティリティを実行してランダムな鍵を作成できます。

11.6.1 独自の鍵の定義

任意のツールを使用します。鍵の値は、次のいずれかの形式で最大256ビット(32バイト)です。

  • 引用符で囲んだ英数字の文字列("Dailykey"など)

  • 接頭辞0xを付けた16進文字列(0x420E61BE7002D63560929CCA17A4E1FBなど)

11.6.2 KEYGENを使用した鍵の生成

ソース・システムでディレクトリをOracle GoldenGateのホーム・ディレクトリに変更し、次のシェル・コマンドを発行します。必要に応じて、複数の鍵を作成できます。鍵の値は画面に戻されます。これらをコピーしてENCKEYSファイルに貼り付けることができます。

KEYGEN key_length n

説明:

  • key lengthは、最大256ビット(32バイト)の暗号化鍵の長さです。

  • nは、生成する鍵の数を示します。

例:

KEYGEN 128 4

11.6.3 ENCKEYS参照ファイルの作成とデータ移入

  1. ソース・システムで、新しいASCIIテキスト・ファイルを開きます。

  2. 生成した鍵の値ごとに、任意の論理名に続けて鍵の値を入力します。

    • 鍵の名前には、空白または引用符のない1から24個の英数字文字列を指定できます。

    • 行を分けて複数の鍵の定義を配置します。

    • 鍵の名前または値は、引用符で囲まないでください。囲むとテキストとして解釈されます。

      次のサンプルのENCKEYSファイルを参考用として使用してください。

      暗号化鍵名 暗号化鍵値
      ## Key name
      superkey
      secretkey
      superkey1
      superkey2
      superkey3
      
      Key value
      0x420E61BE7002D63560929CCA17A4E1FB
      0x027742185BBF232D7C664A5E1A76B040
      0x42DACD1B0E94539763C6699D3AE8E200
      0x0343AD757A50A08E7F9A17313DBAB045
      0x43AC8DCE660CED861B6DC4C6408C7E8A
      

  3. Oracle GoldenGateのインストール・ディレクトリに、このファイルを拡張子なしで、すべて大文字のENCKEYSという名前で保存します。

  4. ENCKEYSファイルを、すべてのシステムのOracle GoldenGateインストール・ディレクトリにコピーします。すべてのENCKEYSファイルに含まれる鍵の名前および値は同一である必要があり、同一でないとデータ交換に失敗し、ExtractおよびCollectorは次のメッセージとともに中断します。

    GGS error 118 – TCP/IP Server with invalid data.
    

11.7 GGSCIコマンド・セキュリティの構成

Oracle GoldenGateでコマンド・セキュリティを確立して、Oracle GoldenGate機能へのアクセスを許可するユーザーを制御できます。たとえば、特定のユーザーにINFOコマンドおよびSTATUSコマンドの発行を許可する一方で、STARTコマンドおよびSTOPコマンドの使用を拒否できます。セキュリティ・レベルは、オペレーティング・システムのユーザー・グループによって定義されます。

Oracle GoldenGateコマンドに対するセキュリティを実装するには、Oracle GoldenGateディレクトリにCMDSECファイルを作成します。このファイルがない場合、すべてのユーザーにすべてのOracle GoldenGateコマンドに対するアクセス権が付与されます。


注意:

ggsciプログラム自体のセキュリティは、オペレーティング・システムのセキュリティ制御機能によって制御されます。

11.7.1 コマンド・セキュリティの設定

  1. 新しいASCIIテキスト・ファイルを開きます。

  2. 次の構文および例を参照して、制限するコマンドごとに1つ以上のセキュリティ・ルールを作成します(1行に1つのルール)。ルールは、個別性の最も高いもの(ワイルドカードのないもの)から最も低いものへと指定します。セキュリティ・ルールは、CMDSECファイルの一番上から下に向かって処理されます。条件が満たされる最初のルールは、アクセスを許可するかどうかを決定するルールです。

    次の各構成要素を空白またはタブ文字で区切ります。

    command_name command_object OS_group OS_user {YES | NO}
    

    説明:

    • command_nameは、GGSCIコマンド名またはワイルドカードです(STARTSTOP、*など)。

    • command_objectは、任意のGGSCIコマンド・オブジェクトまたはワイルドカードです(EXTRACTREPLICATMANAGERなど)。

    • OS_groupは、WindowsまたはUNIXのユーザー・グループ名です。UNIXシステムでは、グループ名のかわりに数値のグループIDを指定できます。ワイルドカードを使用すると、すべてのグループを指定できます。

    • OS_userは、WindowsまたはUNIXのユーザー名です。UNIXシステムでは、ユーザー名のかわりに数値のユーザーIDを指定できます。ワイルドカードを使用すると、すべてのユーザーを指定できます。

    • YES | NOでは、コマンドに対するアクセス権を付与するか、または禁止するかを指定します。

  3. このファイルをOracle GoldenGateのホーム・ディレクトリにCMDSECという名前(UNIXシステムでは大文字を使用)で保存します。

次の例は、UNIXシステムでのCMDSECファイルの適切な実装を示しています。

表11-3 サンプルのCMDSECファイルとその説明

ファイルの内容 説明
#GG command security

コメント行

STATUS REPLICAT * Smith NO

STATUS REPLICATがユーザーSmithに対して拒否されます。

STATUS * dpt1 * YES

先行するルールを除き、すべてのSTATUSコマンドがdpt1のすべてのユーザーに対して許可されます。

START REPLICAT root * YES

START REPLICATが、rootグループのすべてのメンバーに対して許可されます。

START REPLICAT * * NO

先行するルールを除き、START REPLICATがすべてのユーザーに対して拒否されます。

* EXTRACT 200 * NO

すべてのEXTRACTコマンドが、IDが200のすべてのグループに対して拒否されます。

* * root root YES

rootユーザーに対して任意のコマンドが許可されます。

* * * * NO

すべてのユーザーに対してすべてのコマンドが拒否されます。この行によって、先行するルールで明示的にアクセスを許可または拒否していない他のすべてのユーザーのセキュリティに対応します。そうしないと、先行する明示的な許可または拒否を除き、すべてのユーザーに対してすべてのコマンドが許可されます。


次の不適切な例は、CMDSECファイルの作成時に避ける必要のある設定を示しています。

表11-4 不適切なCMDSECのエントリ

ファイルの内容 説明
STOP * dpt2 * NO

すべてのSTOPコマンドが、グループdpt2のすべてのユーザーに対して拒否されます。

STOP * * Chen YES

すべてのSTOPコマンドがChenに対して許可されます。


表11-4のエントリ順序では、論理エラーが発生します。1番目のルール(1行目)によって、すべてのSTOPコマンドがグループdpt2のすべてのメンバーに対して拒否されます。2番目のルール(2行目)によって、すべてのSTOPコマンドがユーザーChenに対して許可されます。このとき、Chenは、dpt2グループのメンバーであるため、このコマンドを発行する権限を付与される必要があっても、2番目のルールによってすべてのSTOPコマンドに対するアクセスを拒否されます。

このセキュリティ・ルールを適切に構成する方法は、ユーザー固有のルールを、それよりも一般的な1つ以上のルールの前に設定することです。したがって、エラーを修正するには、2つのSTOPルールの順序を逆にします。

11.7.2 CMDSECファイルの保護

GGSCIプログラムとCMDSECファイルのセキュリティは、オペレーティング・システムのセキュリティ制御機能によって制御されます。CMDSECファイルは、セキュリティの根源であるため、保護する必要があります。読取りアクセスは必要に応じて付与してかまいませんが、書込みアクセスと削除アクセスは、Oracle GoldenGate Administratorsにのみ許可することをお薦めします。

11.8 ターゲット・システムからの接続開始の使用

信頼できるイントラネット・ゾーン内にターゲット・システムが存在し、信頼度がより低いゾーンにソース・システムが存在する場合、ソース・システムから接続を開始すると(Oracle GoldenGateの標準的な方法)、セキュリティ・ポリシーに違反する可能性があります。また、信頼度が低いゾーンに存在するシステムに、信頼できるゾーンのシステムのポートまたはIPアドレスに関する情報(Oracle GoldenGateのExtractパラメータ・ファイルに通常含まれている情報など)が含まれる場合も、セキュリティ・ポリシーに違反する可能性があります。

この種のイントラネット構成では、パッシブ/別名Extract構成を使用できます。接続は、別名Extractグループによって、信頼できるゾーン内部のターゲット・システムから開始されます。このグループは、ソース・システムの標準Extractグループに対する別名として機能し、この場合はパッシブExtractと呼ばれます。2つのシステム間で接続が確立されると、データはパッシブExtractグループによって通常どおり処理され、ネットワークを通じて転送されます。

図11-1 信頼できるネットワーク・ゾーンからの接続の開始

図11-1の説明が続きます
「図11-1 信頼できるネットワーク・ゾーンからの接続の開始」の説明

  1. Oracle GoldenGateユーザーが信頼できるシステムで別名Extractを起動するか、AUTOSTARTまたはAUTORESTARTパラメータによって別名Extractが自動的に起動されます。

  2. 信頼できるシステムのGGSCIは、信頼度の低いシステムのManagerにメッセージを送信して、関連付けられたパッシブExtractを起動します。信頼できるシステムのManagerのホスト名(またはIPアドレス)とポート番号が、信頼度の低いシステムに送信されます。

  3. 信頼度の低いシステムで、ManagerがパッシブExtractを起動すると、パッシブExtractは開いているポート(ManagerのDYNAMICPORTLISTパラメータのルールに準拠)を検出し、そのポートでリスニングを行います。

  4. 信頼度の低いシステムのManagerは、そのポートを信頼できるシステムのGGSCIに戻します。

  5. 信頼できるシステムのGGSCIは、同じシステムのManagerにリクエストを送信し、同じシステムのCollectorプロセスを起動します。

  6. ターゲットのManagerは、Collectorプロセスを起動して、そのプロセスに信頼度の低いシステムでExtractがリスニングしているポート番号を渡します。

  7. 信頼できるシステムのCollectorは、信頼度の低いシステムのパッシブExtractに対する接続をオープンします。

  8. データは、ネットワークを通じてパッシブExtractからターゲットのCollectorに送信され、Replicatで処理するために通常どおり証跡に書き込まれます。

11.8.1 パッシブExtractグループの構成

信頼度の低いソース・システムのパッシブExtractグループは、ネットワークを通じたデータの送信を担当するExtractグループの種類に応じて、次のいずれかになります。

  • トランザクション・ログを読み取ってそのデータをターゲットに送信する単独Extractグループ。

  • プライマリExtractから提供されるローカル証跡を読み取ってそのデータをターゲットに送信するデータ・ポンプExtractグループ。この場合、プライマリExtract(単なるデータ・ポンプ)に対する特別な構成要件はありません。

Extractグループをパッシブ・モードで作成するには、標準のADD EXTRACTコマンドおよびオプションを使用しますが、他のコマンド・オプションに対して任意の位置にPASSIVEキーワードを追加します。例:

ADD EXTRACT fin, TRANLOG, BEGIN NOW, PASSIVE, DESC 'passive Extract'
ADD EXTRACT fin, PASSIVE, TRANLOG, BEGIN NOW, DESC 'passive Extract'

パッシブExtractグループのパラメータを構成するには、通常の方法でパラメータ・ファイルを作成します。ただし、次の点が異なります。

  • RMTHOSTパラメータは除外します(通常は、このパラメータでターゲットのManagerのホストおよびポート情報を指定します)。

  • オプションのRMTHOSTOPTIONSパラメータを使用して、圧縮および暗号化のルールを指定します。RMTHOSTOPTIONSオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

Extractグループの構成の詳細は、第14章「オンライン変更同期の構成」を参照してください。

11.8.2 別名Extractグループの構成

信頼できるターゲットの別名Extractグループは、データ処理アクティビティを実行しません。その唯一の目的は、信頼度の低いソースに対する接続の開始および終了です。この役割において、別名Extractグループは、パラメータ・ファイルを使用せず、処理チェックポイントも書き込みません。チェックポイント・ファイルの用途は、パッシブExtractグループが実行されているかどうかを判別することと、リモート接続に必要な情報を記録することに限定されます。

別名モードでExtractグループを作成するには、次のオプションのみを指定してADD EXTRACTコマンドを使用します。

ADD EXTRACT group
, RMTHOST {host_name | IP_address}
, MGRPORT port
[, RMTNAME name]
[, DESC 'description']

RMTHOSTの指定によって、このグループが別名Extractとして識別され、情報がチェックポイント・ファイルに書き込まれます。host_nameIP_addressオプションでは、ソース・システムの名前またはIPアドレスを指定します。MGRPORTでは、Managerが稼働しているソース・システムのポートを指定します。

別名Extractの名前は、パッシブExtractと同じ名前にすることも、異なる名前にすることもできます。名前が異なる場合、オプションのRMTNAMEを使用して、パッシブExtractの名前を指定します。RMTNAMEが使用されない場合、Oracle GoldenGateでは、名前が同一であると仮定され、接続の確立時に使用される別名Extractのチェックポイント・ファイルにその名前が書き込まれます。

TCP/IP接続のエラー処理は、ターゲット・システムのTCPERRSファイルによって指示されます。このファイルのエラーに対するレスポンス値は、RETRYに設定することをお薦めします。デフォルトはABENDです。このファイルには、再試行の回数および各試行間の遅延を設定するオプションも含まれます。TCP/IPのエラー処理とTCPERRSファイルの詳細は、第15章「処理エラーへの対処」を参照してください。

11.8.3 パッシブ・プロセスとエイリアス・プロセスの起動および停止

パッシブ/別名Extract構成でOracle GoldenGateの抽出を開始または停止するには、ターゲットのGGSCIで別名Extractグループを起動または停止する必要があります。

START EXTRACT alias_group_name

または

STOP EXTRACT alias_group_name

コマンドは、ソース・システムに送信され、パッシブExtractグループが起動または停止します。これらのコマンドをパッシブExtractグループに対して直接発行しないでください。KILL EXTRACTコマンドは、パッシブExtractグループに対して直接発行できます。

ManagerパラメータのAUTOSTARTおよびAUTORESTARTを使用して自動的にプロセスを起動または再起動する場合、ソース・システムではなくターゲット・システムで使用してください。最初に別名Extractが起動され、次にパッシブExtractに起動コマンドが送信されます。

11.8.4 抽出アクティビティの管理

抽出処理が開始されたら、ソース・システムでGGSCIからパッシブExtractグループに対してコマンドを発行することで、通常どおりその処理を管理および監視できます。INFOVIEW REPORTなどのGGSCIの標準監視コマンドを、ソース・システムまたはターゲット・システムから発行できます。別名Extractグループに対して発行された監視コマンドは、パッシブExtractグループに転送されます。コマンドでは、別名Extractグループの名前がパッシブExtractグループの名前で置き換えられます。たとえば、INFO EXTRACT aliasは、INFO EXTRACT passiveになります。コマンドの結果は、コマンドが発行されたシステムに表示されます。

11.8.5 パッシブ/エイリアスExtract使用時のその他の考慮事項

パッシブ/別名Extract構成を使用する場合、次のルールが適用されます。

  • この構成では、Extractは1つのターゲット・システムにのみ書込みを行うことができます。

  • この構成は、通常の方法で(THREADSオプションを使用してREDOスレッドの数を指定して)Extractグループを作成することで、Oracle RACインストール環境で使用できます。

  • ALTER EXTRACTコマンドは、別名Extractに対して使用できません(このグループはデータ処理を実行しないため)。

  • パッシブまたは別名Extractグループに対してDELETE EXTRACTコマンドを使用するには、ローカルGGSCIからコマンドを発行します。

  • Extractのパラメータ・ファイルのRMTTASKで指定され、一部の初期ロード方式で使用されるリモート・タスクは、この構成ではサポートされません。リモート・タスクでは、ソース・システムから接続を開始する必要があり、ExtractとReplicat間の直接接続が使用されます。