移動中のデータの保護

Oracle GoldenGateは、次の機能を使用して、転送中または移動中のデータを保護します。
  • ネイティブHTTP認可を使用したストリーミング・プロトコルがサポートされています。これには、最初のWebSocket確立リクエストにヘッダーが含まれており、セキュアなWebSocket (WSS)プロトコルです。Oracle GoldenGateサーバーは、認可ヘッダーをチェックして、リクエスト側ユーザーに関連付けられたロールがWebSocket確立リクエストに割り当てられたロール以上であるかどうかに基づいてリクエストを承認または拒否します。Oracle GoldenGateでは、TLS 1.2およびTLS 1.3認証がサポートされています。異なるTLS暗号化オプションから選択し、関連する暗号スイートを適用できます。

  • ターゲット開始パスは、Demilitarized Zone (DMZ)での作業時のデータ移行をサポートします。

「分散パス・ストリーミング・プロトコル」も参照してください。

TLSおよびmTLSサポートを使用したセキュアな通信

Transport Layer Security (TLS)プロトコルは、セキュアなデータ転送を確保することで、ネットワークを介したセキュアな通信を提供します。サーバー(GoldenGateインスタンス)とクライアント(GoldenGate Webインタフェース、AdminClientおよびその他のアプリケーションを含む)間のデータ交換は認証され、暗号化されます。暗号化アルゴリズムを使用してデータを暗号化し、権限のない者が送信中の情報にアクセスまたは変更できないようにします。

TLSは、サーバーのアイデンティティを検証して、通信が意図した相手とのものであり、悪意のある者との通信ではないことを確認します。HTTPSおよびWSSでは、TLSプロトコルが使用されます。HTTPSリクエストはREST-APIコールを介して行われ、WSSは分散パスによる証跡ファイルのセキュアなルーティングに使用されます。

相互TLS (mTLS)は、通信セッションでクライアントとサーバーの両方を認証することでセキュリティの追加レイヤーを追加するTLSプロトコルの機能拡張です。これは従来のTLSの機能拡張であり、双方向の信頼を提供し、なりすまし攻撃に対する追加の防御となります。クライアント/サーバーのハンドシェイク中に、サーバーは、クライアントがサーバーのアイデンティティを検証できるように、自分のアイデンティティを証明するデジタル証明書をクライアントに提示します。クライアントも、サーバーがクライアントのアイデンティティを検証できるように、自分のアイデンティティを証明するデジタル証明書サーバーに提示します。

セキュアなデプロイメントでは、次のいずれかの状況で分散パス・プロセスによってmTLSが使用され、WSSプロトコルを使用して証跡ファイルが送信されます。

  • 分散サービスからレシーバ・サービスへの証跡データの送信

  • ターゲット開始分散パスを使用した証跡データの送信。この場合、レシーバ・サービスは分散サービスに、ネットワーク経由で証跡ファイルを送信するようにリクエストします。

分散クライアント(DistClient)デジタル証明書を提示してDistClient認証を使用すると、mTLSを使用したセキュアなネットワーク通信が可能になります。

Oracle GoldenGateにはセキュアなデプロイメントをお薦めします。これには、サーバーの証明書、秘密キー、および認証局からの署名証明書(CA証明書)が必要です。DistClient証明書、秘密キー、および認証局からの署名証明書(CA証明書)は、いつでも適用できます。

ただし、NGINXをセキュアでないデプロイメントで使用して、分散パスのTLSサポートを引き続き提供することもできます。TLSはNGINXで終了します。NGINX証明書はクライアントによって検証されることになります。ただし、Oracle GoldenGateのデフォルトのNGINX構成では、クライアント証明書はオプションです。

詳細は、「ターゲット開始パス」および「Oracle GoldenGateのリバース・プロキシのサポート」を参照してください。

ノート:

リバース・プロキシを使用する場合、mTLSはサポートされません。

Oracle環境におけるTransport Layer Securityの機能: TLSハンドシェイク

Transport Layer Securityによるネットワーク接続を開始する場合、クライアントとサーバーは、認証の前にTLSハンドシェイクを実行します。

ハンドシェイク・プロセスは次のようになります。
  1. クライアントおよびOracle GoldenGateインスタンスは、データ転送に使用される暗号スイートおよび暗号化アルゴリズムを確立します。

  2. Oracle GoldenGateインスタンスは自分の証明書をクライアントに送信し、クライアントは、Oracle GoldenGateインスタンスの証明書が信頼できるCAによって署名されているかどうかを検証します。このステップでは、Oracle GoldenGateインスタンスのアイデンティティが検証されます。

  3. 同様に、クライアント認証が必要な場合は、クライアントが自分の証明書をOracle GoldenGateインスタンスに送信します。Oracle GoldenGateインスタンスは、クライアントの証明書が信頼できるCAによって署名されているかどうかを検証します。

  4. クライアントとOracle GoldenGateインスタンスは、公開キー暗号化を使用してキー情報を交換します。この情報に基づき、双方でセッション・キーが生成されます。キーは、少なくとも2者(通常はクライアントとOracle GoldenGateインスタンス)によって共有され、単一の通信セッション中のデータ暗号化に使用されます。セッション・キーは通常、ネットワーク・トラフィックを暗号化するために使用されます。クライアントとOracle GoldenGateインスタンスは、セッションの開始時にセッション・キーをネゴシエーションでき、そのキーは、そのセッションの関係者間のすべてのネットワーク・トラフィックを暗号化するために使用されます。クライアントとOracle GoldenGateインスタンスが新しいセッションで再び通信する場合は、新しいセッション・キーをネゴシエーションします。クライアントとOracle GoldenGateインスタンスとの間の以降のすべての通信は、このセッション・キーと、ネゴシエーションされた暗号スイートを使用して、暗号化および復号化されます。

認証プロセスは次のとおりです。
  1. クライアントで、ユーザーがTLSを使用してOracle GoldenGateへのネットワーク接続を開始します。

  2. TLSは、クライアントとOracle GoldenGateの間のハンドシェイクを実行します。

  3. ハンドシェイクが成功すると、GoldenGateインスタンスは、ユーザーがOracle GoldenGateインスタンスにアクセスするための適切な認可を持っているかどうかを検証します。

Oracle GoldenGateでのTransport Layer Securityを使用した認証

Oracle GoldenGateインスタンスとクライアント間の通信を保護するために、Oracle GoldenGateのTLS機能を使用して次のことを実行できます。
  • TLSを使用してOracle GoldenGateインスタンスとクライアント間の接続を暗号化します

  • TLS経由で通信するように構成されている他のOracle GoldenGateインスタンスに対して、クライアントまたはその他のOracle GoldenGateインスタンスを認証します。

TLSの確立後、Oracle GoldenGateインスタンスは、証跡を送信するための適切な権限があることを確認するためにクライアントを認証する必要があります。次の認証モードが使用されます。
  • Oracle GoldenGateインスタンスは、ターゲット側で少なくともオペレータ・ロールを持つユーザーIDおよびパスワードを使用してクライアントを認証します。ユーザーIDとパスワードは、クライアント側に別名として格納されています。別名は、分散パスの作成時に使用されます。

    オペレータ・ロール・ユーザーの設定について学習し、リモート・デプロイメント間の分散パス接続を作成する際にこのユーザーID、パスワードの別名を使用する場合は、「外部RootCA証明書を使用した2つのデプロイメントの接続」を参照してください。

  • Oracle GoldenGateインスタンスは、対応する証明書ユーザーがターゲット側に作成されているとみなして、クライアント証明書を使用してクライアント・リクエストを認証します。クライアント側とサーバー側の証明書を作成するステップは、「セキュアなデプロイメント用の証明書の作成」を参照してください。

  • Oracle GoldenGateインスタンスは、IAMなどの外部識別プロバイダ(IdP)を使用する場合、OAuthを使用してクライアントを認証します。「外部IDプロバイダへのユーザー認証および認可の委任」を参照してください。

TLS暗号スイート

暗号スイートは、次のタスクごとに1つのアルゴリズムを指定します。
  • キー交換

  • バルク暗号化

  • メッセージ認証コード(MAC)

TLS 1.2および1.3のデフォルトの暗号スイートは、弱い暗号を除いてサポートされています。

セキュリティ要件を満たすためにTLS 1.3を使用することをお薦めします。

TLS 1.2のデフォルトの暗号スイートは、弱い暗号を除いてサポートされています。

ターゲット開始パス

マイクロサービスのターゲット開始パスにより、Receiver Serviceはターゲット・デプロイメントおよびプル証跡ファイルのDistribution Serviceへのパスを開始できます。この機能を使用すると、Receiver ServiceはDMZ (Demilitarized Zone)パスまたはクラウドからオンプレミスなどの環境にターゲット開始パスを作成できます。この場合、ソースOracle GoldenGateデプロイメントのDistribution Serviceは、ネットワーク・セキュリティ・ポリシーのために、ターゲット環境でReceiver Serviceへのネットワーク接続を開けません。

分散サービスがレシーバ・サービスへの接続を開始できないときに、レシーバ・サービスが分散サービスを実行しているホストへの接続を開始できる場合は、レシーバ・サービスが、Oracle GoldenGateを使用してファイアウォールまたはDemilitarized (DMZ)ゾーンを通過して分散サービスへのセキュアまたは非セキュアなターゲット開始パスを確立し、リクエストされた証跡ファイルを取り出します。Receiver Serviceエンドポイントには、証跡ファイルの取得がReceiver Serviceによって開始されたことが表示されます。

パス(読取り専用)はターゲット・デプロイメントのレシーバ・サービスで作成され、プロパティTARGET_INITIATEDがあります。このパスは、分散サービスからもアクセスできます。パス情報はターゲット・システムに格納されます。通信が失われると、ターゲット・ホスト上のレシーバ・サービスでは、接続を再開するためにパス定義が必要になります。この情報は、パスの実行時に分散サービスと共有されます。このパスは、ソース・デプロイメントでは一時的になります。一時的なパスは、パス構成の統合とターゲットからソースへの接続開始の強化に役立ちます。

パスが停止または切断されると、分散サービスはパス定義を含むすべてのパス情報を削除します。ただし、チェックポイント・ファイルは保持されます。これは、古い証跡を消去できるかどうかを決定するためにチェックポイントが使用されるためです。意図的にパスを削除した場合を除いて、古い証跡は消去しないことをお薦めします。

関連トピック: