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オペレータ・ユーザーズ・ガイド』のデータ伝送の暗号化の使用を参照してください。