この章の内容は次のとおりです。
次のセキュリティ機能を使用して、Oracle GoldenGate環境および処理対象のデータを保護できます。
| セキュリティ機能 | 保護の対象 | サポートされるデータベース | 説明 |
|---|---|---|---|
データ暗号化 次の2つの方法が用意されています。 |
|
マスター・キーとウォレット方式は、これをサポートしているプラットフォームで推奨される方法です。iSeries、z/OSおよびNonStopプラットフォームでは使用できません。
|
ファイル内、データ・リンク経由およびTCP/IP間のデータを暗号化します。次のいずれかの方法を使用します。 |
資格証明ストアのアイデンティティ管理 「資格証明ストアでのアイデンティティ管理」を参照してください |
データベースへのログイン用にOracle GoldenGateプロセスに割り当てられたユーザーIDとパスワード(資格証明) |
資格証明ストアは、この機能をサポートしているプラットフォームで推奨されるパスワード管理方法です。iSeries、z/OSおよびNonStopプラットフォームでは使用できません。 |
ユーザー資格証明は、セキュアなウォレット・ストレージで管理されます。コマンドやパラメータでは、資格証明の別名を指定します。 |
パスワード暗号化 「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照してください |
コマンドおよびパラメータ・ファイルに指定され、Oracle GoldenGateプロセスがデータベースへのログインに使用するパスワード |
Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。iSeries、z/OSおよびNonStopプラットフォームでは、Blowfishを使用する必要があります。その他のプラットフォームで推奨されるパスワード管理方法は、資格証明ストアです。 |
パスワードを暗号化し、その暗号化されたパスワードをコマンドまたはパラメータ入力で指定できるようにします。次のいずれかの方法を使用します。
|
コマンドの認証 「GGSCIコマンド・セキュリティの構成」を参照してください |
GGSCIを通じて発行されるOracle GoldenGateコマンド |
Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。 |
オペレーティング・システムで保護されたファイル内に認証許可を格納します。 |
信頼できる接続 「ターゲット・システムからの接続開始の使用」を参照してください |
ファイアウォールの先にある信頼されないOracle GoldenGateホスト・マシンへのTCP/IP接続 |
Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。 |
次のいずれかの方法を使用します。
|
Managerセキュリティ |
Managerのアクセス・ルール。 |
Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます。 |
次を保護することができます。
|
CryptoEngine |
要件に適合する暗号化ライブラリを選択できます。ポータビリティ(Classic)、ポータビリティおよびFIPS-140標準の準拠(FIPS140)、または拡張スループット(Native)。 |
Oracle GoldenGateでサポートされているすべてのデータベースとプラットフォームで使用できます(ClassicおよびFIPS140)。 Oracle GoldenGateでサポートされているLinux.x64およびWindows.x64上のすべてのデータベースで使用できます(Native)。 |
Oracle GoldenGateプロセスで使用する暗号化ライブラリを選択します。 |
脚注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ビットの可変長です。
このデータ暗号化方式を使用するには、マスター・キー・ウォレットを作成してマスター・キーをウォレットに追加します。この方式では、データが証跡内またはTCP/IP間のどちらで暗号化されるかに応じて、次の処理を行います。
証跡ファイルがOracle GoldenGateで作成されるたびに、新規の暗号化鍵が自動的に生成されます。この暗号化鍵で証跡の内容を暗号化します。マスター・キーは、暗号化鍵を暗号化します。この暗号化鍵を暗号化するプロセスは鍵ラップと呼ばれています(詳細は、米国標準委員会のANS X9.102標準を参照してください)。
ネットワーク間でデータを暗号化するため、Oracle GoldenGateではマスター鍵に基づく暗号化機能を使用してセッション鍵が生成されます。
Oracle GoldenGateでは、自動ログイン・ウォレット(ファイル拡張子.sso)と呼ばれる、ユーザーの操作なしで必要なパスワードを提供できる不明瞭化されたコンテナを使用します。
マスター・キーとウォレットを使用したデータ暗号化は、iSeries、z/OSまたはNonStopプラットフォームではサポートされていません。
この項では、次のタスクについて説明します。
ウォレットはプラットフォームに依存しない形式で作成されます。ウォレットは、Oracle GoldenGate環境内のすべてのシステムからアクセス可能な共有ファイル・システム上に格納できます。あるいは、Oracle GoldenGate環境内の各システムで同じウォレットを使用することも可能です。各システム上のウォレットを使用する場合は、1つのシステム(通常はソース・システム)でウォレットを作成し、それをOracle GoldenGate環境内の他のすべてのシステムにコピーする必要があります。マスター・キーを追加、変更または削除するたびに、これを実行する必要があります。
次の手順では、ソース・システムでウォレットを作成し、それをOracle GoldenGate環境内の他のシステムにコピーする方法を説明します。
次の手順では、証跡内およびネットワーク間のデータをマスター・キーとウォレット方式で暗号化するために必要なパラメータを追加します。
注意:
受信した証跡データを復号化してから再暗号化して任意の出力証跡またはファイルに書き込むよう、明示的に指定できます。まず、データを復号化するDECRYPTTRAILを入力し、次にENCRYPTTRAILと出力証跡の指定を入力します。DECRYPTTRAILはENCRYPTTRAILの前に入力されている必要があります。復号化と再暗号化を明示的に指示することにより、必要に応じてAESアルゴリズムを証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。あるいは、1番目のプロセスと2番目のプロセス間の暗号化にはマスター・キーとウォレット方式を使用し、2番目のプロセスと3番目のプロセス間の暗号化にはENCKEYS方式を使用することも可能です。
次の手順では、暗号化鍵ウォレット内のマスター暗号化鍵を更新します。マスター・キーを更新すると、鍵の新しいバージョンが作成されます。名前は同じままですが、ビット順序が変更されます。セキュリティ・ポリシーの一環として、現在のマスター・キーを定期的に更新し、失効を回避してください。
マスター・キーの更新済バージョンはすべてウォレット内に残ります(ただし、DELETE MASTERKEYコマンドで削除対象とマークされてからPURGE WALLETコマンドでウォレットが消去されるまで)。詳細は、「失効したマスター・キーの削除」を参照してください。
ウォレットが共有記憶域で(共有ウォレットとして)一元管理されていない場合、更新されたウォレットは、Oracle GoldenGate構成内でウォレットを使用する他のすべてのシステムにコピーする必要があります。これを行うには、Oracle GoldenGateを停止する必要があります。次の手順では、これらの作業を正しい順序で実行する方法を示します。
次の手順では、マスター・キーの失効バージョンを削除します。セキュアなOracle GoldenGateウォレットを維持するための全体的なポリシーの一環として、失効した鍵は削除してください。ウォレット内で保持する鍵のバージョンの数とその保存期間を定めたポリシーを作成しておくことをお薦めします。
注意:
Oracle GoldenGateの共有ウォレットを使用したデプロイの場合、マスター・キーの古いバージョンは、マスター・キーが更新された後、すべてのプロセスが最新バージョンを使用するまで保持される必要があります。待機する時間は、トポロジ、レイテンシ、およびデプロイのデータ・ロードにより異なります。24時間の最小の待機時間は控えめな見積りですが、すべてのプロセスが新しい鍵の使用を開始するのにかかる時間を決定するには、テストを実行する必要がある場合があります。すべてのプロセスが最新バージョンを使用しているかどうかを判定するには、マスター・キーの更新後すぐに各Extractのレポート・ファイルを表示して、古い鍵でマイニングされた最後のSCNを確認します。次に、Replicatレポート・ファイルを監視し、このSCNがすべてのReplicatグループにより適用されたことを確認します。この時点で、マスター・キーの旧バージョンを削除できます。
ウォレットが中央の記憶域に配置され、Oracle GoldenGateインストール環境全体でそのウォレットを使用できる場合、次の手順は共有ウォレットに対して1回実行するだけで済みます。Oracle GoldenGateプロセスを停止する必要はありません。
ウォレットが中央の記憶域にない(つまり、各Oracle GoldenGateシステムにコピーが存在する)場合は、次のいずれかを実行します。
Oracle GoldenGateプロセスを停止できる場合は、ウォレットの変更手順を1度だけ実行して、更新されたウォレットを他のシステムにコピーしてから、Oracle GoldenGateプロセスを再起動します。
Oracle GoldenGateプロセスを停止できない場合は、必ず各システム上でまったく同じ方法を使用してウォレットの変更手順を実行する必要があります。
次の手順には、両方のシナリオに対応する説明が含まれています。
このデータ暗号化方式を使用するには、暗号化鍵を生成してローカルのENCKEYSファイルに格納するよう、Oracle GoldenGateを構成します。この方式では永久鍵を使用します(永久鍵を変更するには、ENCKEYSファイルへの暗号化鍵の移入の指示に従ってアルゴリズムを再生成する必要があります)。ENCKEYSファイルは、オペレーティング・システムの一般的なファイル権限の割当て方法で保護されている必要があります。
次の手順では、AES暗号化鍵を生成し、それをENCKEYSファイルに格納する方法について説明します。
TCP/IP接続を通じて暗号化されたデータは、送信先で証跡に書き込まれる前に自動的に復号化されます(証跡暗号化が指定されていない場合)。
証跡内で暗号化されたデータは暗号化されたままです(DECRYPTTRAILパラメータが使用されていない場合)。Replicatで暗号化データをターゲットに適用できるようにするには、あらかじめDECRYPTTRAILが必要です。データ・ポンプでは、暗号化データをそのまま出力証跡に渡します(DECRYPTTRAILおよびENCRYPTTRAILパラメータが使用されていない場合)。データ・ポンプでデータを処理する必要がある場合は、次のようにデータの復号化と暗号化を行います。
データ・ポンプで処理するためにデータを復号化する手順
データ・ポンプのパラメータ・ファイルにDECRYPTTRAILパラメータを追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります(「ENCKEYS方式を使用したデータ暗号化」を参照)。
DECRYPTTRAIL {AES128 | AES192 | AES256 | BLOWFISH}
データ・ポンプで処理した後にデータを暗号化する手順
データ・ポンプが出力証跡またはファイルにデータを書き込む前にそのデータを暗号化するには、対象の証跡またはファイルを指定するパラメータの前にENCRYPTTRAILパラメータを使用します。証跡またはファイルを指定するパラメータは、EXTTRAIL、RMTTRAIL、EXTFILEおよびRMTFILEです。ENCRYPTTRAILパラメータと証跡またはファイルの指定は、DECRYPTTRAILパラメータの後に配置する必要があります。「ENCKEYS方式を使用したデータ暗号化」を参照してください
注意:
ENCRYPTTRAILで指定するアルゴリズムは、証跡ごとに変更できます。たとえば、ローカル証跡の暗号化にはAES 128を、リモート証跡の暗号化にはAES 256をそれぞれ使用できます。
Replicatで処理するためにデータを復号化する手順
Replicatの読み取る証跡が暗号化されている場合は、Replicatのパラメータ・ファイルにDECRYPTTRAILパラメータ文を追加します。復号化アルゴリズムと鍵は、証跡の暗号化に使用したものと一致している必要があります。「ENCKEYS方式を使用したデータ暗号化」を参照してください
次の例では、様々な証跡またはファイルに対して暗号化を有効化/無効化する方法を示しています。この例では、Extractで2つのローカル証跡に書き込みますが、暗号化する必要があるのはそのうちの1つのみです。
Extract構成で、証跡bbは暗号化されない証跡なので、そのEXTTRAILパラメータは、証跡aaを暗号化するENCRYPTTRAILパラメータの前に配置されます。あるいは、証跡bbを指定するEXTTRAILパラメータの前にNOENCRYPTTRAILパラメータを使用し、次に、証跡aaを指定するEXTTRAILパラメータの前にENCRYPTTRAILパラメータを使用することもできます。
この例では、データ・ポンプ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 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 -- Encrypt the trail this pump writes to, using AES-192. RMTHOSTOPTIONS myhost1, MGRPORT 7809 ENCRYPTTRAIL AES192 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 MAP FIN.*, TARGET FIN.*;
例11-5 Replicat 2(myhost2上)のパラメータ・ファイル
REPLICAT 2deliv USERIDALIAS ogg ASSUMETARGETDEFS DISCARDFILE /ogg/2deliv.dsc, PURGE MAP SALES.*, TARGET SALES.*;
この項では、Oracle GoldenGateの資格証明ストアを使用して、暗号化されたデータベース・パスワードとユーザーIDを管理し、それらを別名と関連付ける方法について説明します。コマンドまたはパラメータ・ファイルでは、実際のユーザーIDやパスワードではなく別名を指定するため、暗号化鍵のユーザー入力は必要ありません。資格証明ストアはOracle Credential Store Framework (CSF)内の自動ログイン・ウォレットとして実装されます。
資格証明ストアを使用するもう1つのメリットは、複数のOracle GoldenGateインストール環境で同じ資格証明ストアを使用しながら、それぞれのローカル資格証明に対する管理を保持できることです。資格証明ストアは、ドメインと呼ばれる論理コンテナにパーティション化できます(Oracle GoldenGateのインストール環境ごとに1つのドメインを使用するなど)。ドメインを使用すると、別名をセットで1つ(Extractはext、Replicatはrepというように)作成し、各ドメインの同じ別名に異なるローカル資格証明を割り当てられます。たとえば、ユーザーogg1の資格証明をDOMAIN system1にALIAS extとして格納し、ユーザーogg2の資格証明をDOMAIN system2にALIAS extとして格納できます。
資格証明ストアのセキュリティ機能は、iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。これらのプラットフォームと、サポートされている他のプラットフォームの詳細は、「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照してください
資格証明ストアを使用するには、次の手順を実行します。
この手順で使用されているコマンドとその他の資格証明ストア・コマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
次のコマンドおよびパラメータでは、ログイン資格証明のかわりに別名を使用できます。
表11-1 パラメータおよびコマンドへの資格証明の別名の指定
| 資格証明の対象 | 使用するパラメータまたはコマンド |
|---|---|
Oracle GoldenGateデータベース・ログイン脚注 3 |
USERIDALIAS
|
Oracle ASMインスタンスのOracle GoldenGateデータベース・ログイン |
TRANLOGOPTIONS ASMUSERALIAS
|
ダウンストリームOracleマイニング・データベースのOracle GoldenGateデータベース・ログイン |
TRANLOGOPTIONS MININGUSERALIAS
|
|
DDLOPTIONS DEFAULTUSERPASSWORDALIAS
|
GGSCIからのOracle GoldenGateデータベース・ログイン |
DBLOGIN USERIDALIAS
|
GGSCIからダウンストリームOracleマイニング・データベースへのOracle GoldenGateデータベース・ログイン |
MININGDBLOGIN USERIDALIAS
|
脚注3
USERIDALIASに必要な構文要素は、データベース・タイプによって異なります。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
この項では、コマンドまたはパラメータ・ファイルで指定されるデータベース・パスワードの暗号化方法を説明します。この方法では、平文のパスワードを入力として使用し、不明瞭化されたパスワード文字列と参照キーを生成して、その両方をコマンドまたはパラメータ・ファイルで使用できます。この暗号化方法は、Oracle GoldenGateプロセスからデータベースにアクセスするにはログインが求められるすべてのデータベースに対応しています。
データベースによっては、この方法のかわりに資格証明ストアを使用できる場合があります。「資格証明ストアでのアイデンティティ管理」を参照してください
コマンドまたはパラメータ・ファイルで暗号化パスワードを使用するには、次の手順を実行します。
ENCRYPT PASSWORDコマンド(「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照)で生成した暗号化パスワードをコピーし、表11-2に示すようにOracle GoldenGateの適切なパラメータ文またはコマンドに貼り付けます。オプションについては表の後で説明します。
表11-2 パラメータおよびコマンドへの暗号化パスワードの指定
| パスワードの対象 | 使用するパラメータまたはコマンド |
|---|---|
Oracle GoldenGateデータベース・ログイン脚注 4 |
USERID |
Oracle ASMインスタンスのOracle GoldenGateデータベース・ログイン |
TRANLOGOPTIONS ASMUSER SYS@ |
ダウンストリームOracleマイニング・データベースのOracle GoldenGateデータベース・ログイン |
[MININGUSER {/ |
|
|
DDLOPTIONS DEFAULTUSERPASSWORD |
Oracle TDE共有秘密鍵のパスワード |
DBOPTIONS DECRYPTPASSWORD |
GGSCIからのOracle GoldenGateデータベース・ログイン |
DBLOGIN USERID |
GGSCIからダウンストリームOracleマイニング・データベースへのOracle GoldenGateデータベース・ログイン |
MININGDBLOGIN USERID |
脚注4
USERIDに必要な構文要素は、データベース・タイプによって異なります。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
脚注5
これは共有秘密です。
説明:
userは、Oracle GoldenGateプロセスまたは(Oracleのみ)ホスト文字列のデータベース・ユーザー名です。Oracle ASMの場合、ユーザー名はSYSである必要があります。
passwordは、ENCRYPT PASSWORDコマンドの結果からコピーした暗号化パスワードです。
algorithmは、パスワードの暗号化に使用した暗号化アルゴリズムを、AES128、AES192、AES256またはBLOWFISHの中から指定します。デフォルトの鍵を使用し、アルゴリズムを指定しない場合は、AES128がデフォルトになります。
ENCRYPTKEY keynameでは、ENCKEYS参照ファイルにある、ユーザーが作成した暗号化鍵の論理参照名を指定します。ENCRYPT PASSWORDをKEYNAME keynameオプションとともに使用した場合に使用します。
ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME 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
次のセキュリティ機能を使用する場合、暗号化鍵を生成して格納する必要があります。
ENCRYPTTRAIL (詳細は、ENCKEYS方式を使用したデータ暗号化を参照してください)
ENCRYPT PASSWORDとENCRYPTKEY keyname (「コマンドまたはパラメータ・ファイルで使用するパスワードの暗号化」を参照)
RMTHOSTまたはRMTHOSTOPTIONSとENCRYPT (「ENCKEYS方式を使用したデータ暗号化」を参照)
この手順では、次の操作を実行します。
1つ以上の暗号化鍵を作成します。
ソース・システムのENCKEYS参照ファイルに鍵を格納します。
各ターゲット・システムにENCKEYSファイルをコピーします。
独自の鍵を定義するか、Oracle GoldenGateのKEYGENユーティリティを実行してランダムな鍵を作成できます。
任意のツールを使用します。鍵の値は、次のいずれかの形式で最大256ビット(32バイト)です。
引用符で囲んだ英数字の文字列("Dailykey"など)
接頭辞0xを付けた16進文字列(0x420E61BE7002D63560929CCA17A4E1FBなど)
ソース・システムでディレクトリをOracle GoldenGateのホーム・ディレクトリに変更し、次のシェル・コマンドを発行します。必要に応じて、複数の鍵を作成できます。鍵の値は画面に戻されます。これらをコピーしてENCKEYSファイルに貼り付けることができます。
KEYGENkey_lengthn
説明:
key lengthは、最大256ビット(32バイト)の暗号化鍵の長さです。
nは、生成する鍵の数を示します。
例:
KEYGEN 128 4
Oracle GoldenGateでコマンド・セキュリティを確立して、Oracle GoldenGate機能へのアクセスを許可するユーザーを制御できます。たとえば、特定のユーザーにINFOコマンドおよびSTATUSコマンドの発行を許可する一方で、STARTコマンドおよびSTOPコマンドの使用を拒否できます。セキュリティ・レベルは、オペレーティング・システムのユーザー・グループによって定義されます。
Oracle GoldenGateコマンドに対するセキュリティを実装するには、Oracle GoldenGateディレクトリにCMDSECファイルを作成します。このファイルがない場合、すべてのユーザーにすべてのOracle GoldenGateコマンドに対するアクセス権が付与されます。
注意:
ggsciプログラム自体のセキュリティは、オペレーティング・システムのセキュリティ制御機能によって制御されます。
次の例は、UNIXシステムでのCMDSECファイルの適切な実装を示しています。
表11-3 サンプルのCMDSECファイルとその説明
| ファイルの内容 | 説明 |
|---|---|
#GG command security |
コメント行 |
STATUS REPLICAT * Smith NO |
|
STATUS * dpt1 * YES |
先行するルールを除き、すべての |
START REPLICAT root * YES |
|
START REPLICAT * * NO |
先行するルールを除き、 |
* EXTRACT 200 * NO |
すべての |
* * root root YES |
|
* * * * NO |
すべてのユーザーに対してすべてのコマンドが拒否されます。この行によって、先行するルールで明示的にアクセスを許可または拒否していない他のすべてのユーザーのセキュリティに対応します。そうしないと、先行する明示的な許可または拒否を除き、すべてのユーザーに対してすべてのコマンドが許可されます。 |
次の不適切な例は、CMDSECファイルの作成時に避ける必要のある設定を示しています。
表11-4 不適切なCMDSECのエントリ
| ファイルの内容 | 説明 |
|---|---|
STOP * dpt2 * NO |
すべての |
STOP * * Chen YES |
すべての |
表11-4のエントリ順序では、論理エラーが発生します。1番目のルール(1行目)によって、すべてのSTOPコマンドがグループdpt2のすべてのメンバーに対して拒否されます。2番目のルール(2行目)によって、すべてのSTOPコマンドがユーザーChenに対して許可されます。このとき、Chenは、dpt2グループのメンバーであるため、このコマンドを発行する権限を付与される必要があっても、2番目のルールによってすべてのSTOPコマンドに対するアクセスを拒否されます。
このセキュリティ・ルールを適切に構成する方法は、ユーザー固有のルールを、それよりも一般的な1つ以上のルールの前に設定することです。したがって、エラーを修正するには、2つのSTOPルールの順序を逆にします。
信頼できるイントラネット・ゾーン内にターゲット・システムが存在し、信頼度がより低いゾーンにソース・システムが存在する場合、ソース・システムから接続を開始すると(Oracle GoldenGateの標準的な方法)、セキュリティ・ポリシーに違反する可能性があります。また、信頼度が低いゾーンに存在するシステムに、信頼できるゾーンのシステムのポートまたはIPアドレスに関する情報(Oracle GoldenGateのExtractパラメータ・ファイルに通常含まれている情報など)が含まれる場合も、セキュリティ・ポリシーに違反する可能性があります。
この種のイントラネット構成では、パッシブ/エイリアスExtract構成を使用できます。接続は、エイリアスExtractグループによって、信頼できるゾーン内部のターゲット・システムから開始されます。このグループは、ソース・システムの標準Extractグループに対するエイリアスとして機能し、この場合はパッシブExtractと呼ばれます。2つのシステム間で接続が確立されると、データはパッシブExtractグループによって通常どおり処理され、ネットワークを通じて転送されます。
AUTOSTARTまたはAUTORESTARTパラメータによって別名Extractが自動的に起動されます。DYNAMICPORTLISTパラメータのルールに準拠)を検出し、そのポートでリスニングを行います。信頼度の低いソース・システムのパッシブ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グループの構成の詳細は、「オンライン変更同期の構成」を参照してください
信頼できるターゲットの別名Extractグループは、データ処理アクティビティを実行しません。その唯一の目的は、信頼度の低いソースに対する接続の開始および終了です。この役割において、別名Extractグループは、パラメータ・ファイルを使用せず、処理チェックポイントも書き込みません。チェックポイント・ファイルの用途は、パッシブExtractグループが実行されているかどうかを判別することと、リモート接続に必要な情報を記録することに限定されます。
別名モードでExtractグループを作成するには、次のオプションのみを指定してADD EXTRACTコマンドを使用します。
ADD EXTRACTgroup, RMTHOST {host_name|IP_address} , MGRPORTport[, RMTNAMEname] [, DESC 'description']
RMTHOSTの指定によって、このグループが別名Extractとして識別され、情報がチェックポイント・ファイルに書き込まれます。host_nameとIP_addressオプションでは、ソース・システムの名前またはIPアドレスを指定します。MGRPORTでは、Managerが稼働しているソース・システムのポートを指定します。
別名Extractの名前は、パッシブExtractと同じ名前にすることも、異なる名前にすることもできます。名前が異なる場合、オプションのRMTNAMEを使用して、パッシブExtractの名前を指定します。RMTNAMEが使用されない場合、Oracle GoldenGateでは、名前が同一であると仮定され、接続の確立時に使用される別名Extractのチェックポイント・ファイルにその名前が書き込まれます。
TCP/IP接続のエラー処理は、ターゲット・システムのTCPERRSファイルによって指示されます。このファイルのエラーに対するレスポンス値は、RETRYに設定することをお薦めします。デフォルトはABENDです。このファイルには、再試行の回数および各試行間の遅延を設定するオプションも含まれます。TCP/IPのエラー処理とTCPERRSファイルの詳細は、処理エラーへの対処を参照してください。
パッシブ/別名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に起動コマンドが送信されます。
抽出処理が開始されたら、ソース・システムでGGSCIからパッシブExtractグループに対してコマンドを発行することで、通常どおりその処理を管理および監視できます。INFOやVIEW REPORTなどのGGSCIの標準監視コマンドを、ソース・システムまたはターゲット・システムから発行できます。別名Extractグループに対して発行された監視コマンドは、パッシブExtractグループに転送されます。コマンドでは、別名Extractグループの名前がパッシブExtractグループの名前で置き換えられます。たとえば、INFO EXTRACTaliasは、INFO EXTRACT passiveになります。コマンドの結果は、コマンドが発行されたシステムに表示されます。
パッシブ/別名Extract構成を使用する場合、次のルールが適用されます。
この構成では、Extractは1つのターゲット・システムにのみ書込みを行うことができます。
この構成は、通常の方法で(THREADSオプションを使用してREDOスレッドの数を指定して)Extractグループを作成することで、Oracle RACインストール環境で使用できます。
ALTER EXTRACTコマンドは、別名Extractに対して使用できません(このグループはデータ処理を実行しないため)。
パッシブまたは別名Extractグループに対してDELETE EXTRACTコマンドを使用するには、ローカルGGSCIからコマンドを発行します。
Extractのパラメータ・ファイルのRMTTASKで指定され、一部の初期ロード方式で使用されるリモート・タスクは、この構成ではサポートされません。リモート・タスクでは、ソース・システムから接続を開始する必要があり、ExtractとReplicat間の直接接続が使用されます。
ManagerパラメータのACCESSRULEを使用して、Managerにセキュリティ・アクセス・ルールを設定できます。パッシブExtractまたはディレクタを使用している場合、リモート・ホストからのGGSCIアクセスを許可します。ACCESSRULEは、Managerプロセスおよびその制御下のプロセスへの接続アクセスを制御します。パラメータ・ファイルで複数のACCESSRULE文を指定して複数のルールを設定し、優先度を制御できます。優先度を設定するには、重要度が最も高いものから低いものへの順序でルールのリストを作成するか、PRIオプションを使用して、各ルールの優先度を明示的に設定するかのいずれかを行えます。
次のオプションの1つを指定する必要があります。
IPADDR、login_IDまたはPROGRAM
たとえば、次のアクセス・ルールにはPRIオプションを使用して明示的に優先度レベルが割り当てられています。これらのルールでは、任意のユーザーにCollectorプロセス(SERVERプログラム)へのアクセスを許可し、さらにIPアドレス122.11.12.13にGGSCIコマンドへのアクセスを許可します。他のすべてのOracle GoldenGateプログラムへのアクセスは拒否されます。
ACCESSRULE, PROG *, DENY, PRI 99 ACCESSRULE, PROG SERVER, ALLOW, PRI 1 ACCESSRULE, PROG GGSCI, IPADDR 122.11.12.13, PRI 1
もう1つの例として、次のアクセス・ルールではすべてのプログラムへのアクセス権をユーザーJOHNに付与し、パスワードを復号化するための暗号化鍵を指定します。PASSWORDで指定されたパスワードがENCKEYSルックアップ・ファイル内のいずれかに一致する場合、接続が許可されます。
ACCESSRULE, PROG *, USER JOHN, PASSWORD OCEAN1, ENCRYPTKEY lookup1
ACCESSRULEオプションの詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください