主コンテンツへ
Oracle® TimesTen In-Memory Databaseセキュリティ・ガイド
リリース18.1
E98622-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

この章では、TimesTen Kubernetesオペレータのセキュリティ機能および要件について説明します。内容は次のとおりです。

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

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

TimesTen Kubernetesオペレータの詳細は、Oracle TimesTen In-Memory Database Kubernetesオペレータ・ユーザーズ・ガイドを参照してください。

TimesTen Kubernetesオペレータの権限

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

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

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

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

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

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

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

TimesTen Kubernetesオペレータの暗号化

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

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

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

  • オブジェクトの作成時に、オペレータはTimesTenClassicオブジェクトごとに異なる自己署名証明書を作成します。こうした証明書は、標準のJava keytoolコマンドによって作成され、pkcs12キーストアに格納されます。

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

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