Client/Server用のTLSの構成
Client/Server用のTLSを構成すると、TimesTenのクライアントとサーバーの間でセキュアなネットワーク通信を確保できます。詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』のTimesTen Client/Server用のTransport Layer Securityを参照してください。
Client/Server用のTLSを使用する場合は、サーバー側とクライアント側の両方に構成要件があります。次の各項では、それらの要件について説明します。
サーバーの構成要件
次の各セクションでは、サーバーの構成要件について説明します。各項では、Kubernetesクラスタ内のサーバー用のTLSを構成する方法の例も示します。
メタデータ・ファイルとKubernetes機能の概要
Client/ServerのTLSサポートには、/ttconfig/csWallet
メタデータ・ファイルが必要です。(/ttconfig
ディレクトリは、TimesTenデータベースのコンテナ内にあります)。このファイルには、TLS証明書の作成時に生成されたcwallet.sso
ファイル(Oracleウォレット)が含まれている必要があります。このファイルは、サーバーに必要なOracleウォレットです。このファイルは、/scratch/ttuser/instance_dir/instance1/conf/serverWallet
ディレクトリに配置したものです。該当する証明書の作成方法は、「レプリケーションおよびClient/Server用のTLS証明書の作成」を参照してください。このウォレットには、TimesTenデータベースとClient/Serverアプリケーションの間のTLS暗号化を構成するために使用される資格証明を格納します。
さらに、サーバー側の接続属性も設定する必要があります。こうした属性は、db.ini
メタデータ・ファイルで定義できます。TimesTenコンテナの/ttconfig
ディレクトリにdb.ini
ファイルを配置した後で、オペレータはdb.ini
ファイルの内容をTimesTenコンテナに配置されたtimesten_home
/conf/sys.odbc.ini
ファイルにコピーします。(timesten_home
は、TimesTenインスタンス・ディレクトリであることに注意してください。このインスタンス・ディレクトリは、TimesTenコンテナ内の/tt/home/timesten/instances/instance1
です。)
必須のサーバー側属性は、Wallet
、CipherSuites
およびEncryption
です。これらの属性の詳細は、「サーバー側属性用のConfigMapの作成」を参照してください。『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』のTLSのサーバー属性も参照してください。
csWallet
とdb.ini
メタデータ・ファイルに加えて、その他のサポートされているメタデータ・ファイルを使用することもできます。サポートされているメタデータ・ファイルの詳細は、「構成メタデータの詳細について」を参照してください。
これらのメタデータ・ファイルは、Kubernetesの1つ以上の機能(たとえば、Kubernetes Secret、ConfigMapまたは初期化コンテナ)に含めることができます。これにより、メタデータ・ファイルがTimesTenコンテナの/ttconfig
ディレクトリに確実に移入されます。この/ttconfig
ディレクトリにメタデータ・ファイルを配置する方法についての要件はありません。「/ttconfigディレクトリの移入」を参照してください。
次の例では、Kubernetes SecretにcsWallet
メタデータ・ファイルを含めます。また、db.ini
、adminUser
およびschema.sql
メタデータ・ファイルを作成して、それらのメタデータ・ファイルをConfigMapに含めます。
csWalletメタデータ・ファイル用のKubernetes Secretの作成
この項では、cs-tls
Kubernetes Secretを作成します。cs-tls
Secretには、csWallet
メタデータ・ファイルを格納します。
Linux開発ホストで、次のことを実行します。
cs-tls
Kubernetes Secretの作成とデプロイが完了しました。この後、csWallet/cwallet.sso
ファイルは、TimesTenコンテナの/ttconfig
ディレクトリから使用できるようにします。また、ファイルはTimesTenコンテナの/tt/home/timesten/csWallet
ディレクトリから使用できるようにします。
サーバー側属性用のConfigMapの作成
この項では、cs-tls
ConfigMapを作成します。このConfigMapには、db.ini
、adminUser
および schema.sql
メタデータ・ファイルが含まれます。
Linux開発ホストで、次のことを実行します。
cs-tls
ConfigMapの作成とデプロイが完了しました。
TimesTenClassicオブジェクトの作成
この項では、TimesTenClassicオブジェクトを作成します。TimesTenClassicオブジェクト・タイプの詳細は、「TimesTenClassicオブジェクト・タイプについて」を参照してください。
次のステップを実行します。
KubernetesクラスタにTimesTenClassicオブジェクトを正常に作成しました。TimesTenデータベースをデプロイするプロセスが開始されますが、まだ完了していません。
クライアントの構成要件
次の各セクションでは、TLSのクライアント要件について説明します。
クライアント・ウォレットのコピー
ttCreateCerts
ユーティリティを使用してTLS証明書を作成したときに、/scratch/ttuser/instance_dir/instance1/conf/ clientWallet
ディレクトリ内にcwallet.sso
ウォレット・ファイルが生成されました。このファイルは、TimesTenクライアントのインスタンスを実行しているアプリケーション・コンテナにコピーする必要があります。TLS証明書の作成方法は、「レプリケーションおよびClient/Server用のTLS証明書の作成」を参照してください。
この例では、kubectl
cp
コマンドを使用して、Linux開発ホストからTimesTenクライアントのインスタンスを実行しているアプリケーション・コンテナに/scratch/ttuser
/
instance_dir/instance1/conf/clientWallet/cwallet.sso
ファイルをコピーします。
TimesTenクライアントのインスタンスを実行しているアプリケーション・コンテナにcwallet.sso
クライアント・ウォレット・ファイルが正常にコピーされました。
クライアント側属性の構成
Client/Server用のTLSのクライアント側属性を設定する必要があります。属性は、timesten_home
/conf/sys.odbc.ini
のクライアントDSN定義で設定することも、適切なClient/Server接続文字列で設定することもできます。詳細は、「Client/Serverドライバの使用について」を参照してください。
Client/Server用のTLSに必要なクライアント側属性は次のとおりです。
-
wallet
:cwallet.sso
クライアント・ウォレット・ファイルを格納するディレクトリです。このディレクトリは、TimesTenクライアントのインスタンスを実行しているアプリケーション・コンテナ内にあります。デフォルトのディレクトリはありません。この例では、このディレクトリを示すためにclientWallet
ディレクトリを作成しました。(詳細は、「クライアント・ウォレットのコピー」を参照)。この例の場合、clientWallet
ディレクトリへのフルパスは/tt/home/timesten/clientWallet
です。そのため、この例では、このディレクトリを示すために/tt/home/timesten/clientWallet
を使用しています。 -
ciphersuites
: 暗号スイートの設定です。有効な値は、SSL_ECDHE_ECDSA_WITH_AES_128_GCM_256
またはSSL_ECDHE_ECDSA_WITH_AES_256_GCM_384
です。または、その両方をカンマで区切って優先する順に並べます。デフォルト設定はありません。TLSを使用する場合は、サーバーとクライアントの設定に1つ以上の共通スイートが含まれている必要があります。この例では、SSL_ECDHE_ECDSA_WITH_AES_128_GCM_256
を指定します。暗号スイートの設定の詳細は、Oracle TimesTen In-Memory Databaseセキュリティ・ガイドのClient/Server用のTLSの構成を参照してください。 -
encryption
: クライアントの暗号化設定です。この例では、required
の設定を指定します。有効な暗号化設定の詳細は、Oracle TimesTen In-Memory Databaseセキュリティ・ガイドのClient/Server用のTLSの構成を参照してください。
この例では、接続文字列を使用して、cstsl
データベースにsampleuser
ユーザーとして接続します。sampleuser
ユーザーはオペレータが作成したもので、すでにcstsl
データベースに存在しています。次に、クライアントでttIsqlCS
からsqlgetconnectattr
コマンドを使用して、TLSがサーバーとクライアントで正しく構成されていて、TLSが使用されていることを確認します。
データベースに正常に接続したことと、Client/Server用のTLSが使用されていることの確認が完了しました。