11.2. JGroups 暗号化の設定
Data Grid for OpenShift は JGroups テクノロジーを使用して、以下のオプションを使用してクラスター化されたサーバー間のトラフィックを保護します。
- 認証
クラスターへの参加時にノードがパスワードで認証する必要がある JGroups
AUTHプロトコルを使用します。JGROUPS_CLUSTER_PASSWORD環境変数を使用して認証を設定します。この環境変数は、クラスターへの参加時に使用するノードのパスワードを設定します。パスワードはクラスター全体で同じである必要があります。- 対称の暗号化
JGroups
SYM_ENCRYPTプロトコルを使用して、JGroups キーストア(.jceks)でトラフィックを保護します。これはデフォルトの暗号化プロトコルです。JGroups
AUTHプロトコルは対称暗号化では任意です。JGroups キーストアには、通信のセキュリティーを確保するために、クラスターの各ノードが使用する認証情報が含まれます。
- 非対称の暗号化
JGroups
ASYM_ENCRYPTプロトコルを使用して、公開鍵/秘密鍵の暗号化でトラフィックのセキュリティを保護します。JGroups
AUTHプロトコルと非対称暗号化が必要です。コーディネーターノードはシークレットキーを生成します。ノードがクラスターに参加すると、コーディネーターからシークレットキーを要求し、その公開鍵を提供します。コーディネーターは公開鍵で秘密鍵を暗号化し、ノードに返します。次にノードはシークレットを復号化してインストールし、クラスター内の他のノードとセキュアに通信できるようにします。
11.2.1. 対称暗号化の設定 リンクのコピーリンクがクリップボードにコピーされました!
対称暗号化を使用するには、以下を実行します。
トラフィックを暗号化する認証情報を含めて JGroups キーストア(
.jceks)を作成します。Java keytool を使用して JGroups キーストアを生成できます。
JGroups キーストアをシークレットとして OpenShift にデプロイします。
- OpenShift クラスターにログインします。
JGroups キーストアのシークレットを作成します。たとえば、名前が
jgroups.jceksのキーストアからjgroups-secretという名前のシークレットを作成するには、以下を実行します。$ oc create secret generic jgroups-secret \ --from-file=jgroups.jceksシークレットをデフォルトのサービスアカウントにリンクします。
$ oc secrets link default jgroups-secretシークレットをコンテナーにマウントします。
$ oc set volumes dc/datagrid \ --add -t secret \ --secret-name='jgroups-secret' \ --mount-path='/keystores/jgroups'
-
クラスター内のノードごとに、
JGROUPS_ENCRYPT_PROTOCOL環境変数の値をSYM_ENCRYPTに設定します。 以下の環境変数と JGroups キーストアを使用するように、クラスターの各ノードを設定します。
JGROUPS_ENCRYPT_KEYSTORE- クラスタートラフィックを暗号化するために JGroups キーストアを指定します。
JGROUPS_ENCRYPT_KEYSTORE_DIR- JGroups キーストアが存在するディレクトリーを指定します。
JGROUPS_ENCRYPT_SECRET- キーストアの OpenShift シークレットと同じものを指定します。
JGROUPS_ENCRYPT_NAME- キーストアのユーザー名と同じものを指定します。
JGROUPS_ENCRYPT_PASSWORD- キーストアのパスワードと同じものを指定します。
-
必要な場合は、
JGROUPS_CLUSTER_PASSWORD環境変数でクラスターへの参加時に使用するノードのパスワードを設定します。