4 TimesTen Kubernetesオペレータのセキュリティ

TimesTen Kubernetesオペレータのセキュリティ機能および要件があります。

TimesTen Kubernetesオペレータの概要

Kubernetesは、コンテナ化されたワークロードおよびサービスを管理するためのオープンソース・プラットフォームです。Kubernetesは、クラスタ内の複数のホストのリソースを管理し、これらのホストで必要に応じてコンテナを実行します。

TimesTenには、TimesTenClassicタイプまたはTimesTenScaleoutタイプのKubernetesオブジェクトを管理するKubernetesオペレータがあります。TimesTenは、管理者の操作が不要な自動化された方法でデプロイ、監視、管理および制御ができるようになります。

『Oracle TimesTen In-Memory Database Kubernetesオペレータ・ユーザーズ・ガイド』Oracle TimesTen Kubernetesオペレータの概要を参照してください。

TimesTen Kubernetesオペレータの権限

TimesTenオペレータは、ユーザーのかわりにTimesTenを実行するポッドとコンテナを作成して管理します。そうしたコンテナ内のTimesTenは、TimesTenエージェントによって監視および制御されます。

オペレータには、Kubernetesクラスタの権限が必要です。service_account.yamlファイルは、TimesTenオペレータに含まれるファイルです。service_account.yamlファイルを実行すると、特定の権限セットを持つKubernetesロールが定義されます。オペレータは、このロールに付与された権限で実行されます。『Oracle TimesTen In-Memory Database Kubernetesオペレータ・ユーザーズ・ガイド』サービス・アカウントおよびCRDの作成を参照してください。

TimesTenオペレータには、その他のオブジェクトをKubernetesクラスタ内で作成および監視するための適切な権限が付与されている必要があります。service_account.yamlファイルには、デフォルトの権限が含まれています。

TimesTen Kubernetesオペレータのユーザーの認可

KubernetesクラスタのTimesTenClassicオブジェクトまたはTimesTenScaleoutオブジェクトを作成、変更および削除できるKubernetesユーザーのセットは、クラスタのロール・ベース・アクセス制御(RBAC)構成に制御されます。

セキュア・インストールを実現するために、シークレット・オブジェクトを取得するためのKubernetes RBAC権限を持つユーザーのセットを制限する必要があります。(シークレットについては、「TimesTen Kubernetesオペレータの暗号化」を参照してください。)

TimesTenエージェントは、TimesTenインスタンスを作成し、デフォルトでtimestenユーザーとして実行し、TimesTenを起動します。timestenユーザーは、TimesTenインスタンスのインスタンス管理者です。オペレータは、TimesTenを実行しているコンテナ内の一連のオープン・ポートを、TimesTenが使用するポートに制限します。

TimesTen Kubernetesオペレータの暗号化

TimesTenオペレータのみが暗号化してTimesTenエージェントと通信できるようにします。

  • TimesTenオペレータとTimesTenエージェントの間の通信は、オペレータで作成した自己署名付き証明書を使用したTLSによってセキュリティ保護します。こうした証明書は、Oracleウォレット内にあり、オペレータが作成したKubernetesシークレットによってエージェントに転送されます。TimesTenオペレータは、顧客が指定したKubernetesネームスペースで実行されます。そうしたシークレットは、そのネームスペースで作成されます。

  • TimesTenエージェント(およびTimesTen自体)を実行するコンテナは、シークレットにアクセスできるため、そのシークレットに含まれる証明書にアクセスできます。これにより、オペレータとエージェントのみが該当する証明書にアクセスできることが保証され、別のユーザーがエージェントを使用してTimesTenを制御することを防止します。

  • オブジェクトの作成時に、オペレータはTimesTenClassicオブジェクトまたはTimesTenScaleoutオブジェクトごとに異なる自己署名証明書を作成します。これらの証明書はopensslを使用して作成され、Oracle Walletに格納されます。

  • オペレータは、各ウォレットを異なるKubernetesシークレットに格納します。オペレータがKubernetesに対して(TimesTenエージェントを実行する)Podおよびコンテナを作成するように指示すると、SecretのコンテンツはTimesTenエージェントのファイル・システムにファイルとしてマウントされます。これにより、オペレータとTimesTenエージェント間で証明書がセキュアに通信されるようになります。

  • TimesTenエージェントは、HTTPS接続のみを受け入れ、その接続の認証に自己署名証明書を使用するように構成されています。エージェントは、ポート8443でリスニングし、その他の通信形式を受け入れないように構成されています。

  • TimesTenでは、クライアント/サーバー通信およびレプリケーション・エージェント間の通信用のTLSもサポートしています。『Oracle TimesTen In-Memory Database Kubernetesオペレータ・ユーザーズ・ガイド』データ伝送の暗号化の使用を参照してください。