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
という名前のシークレットを作成するには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic jgroups-secret \ --from-file=jgroups.jceks
$ oc create secret generic jgroups-secret \ --from-file=jgroups.jceks
シークレットをデフォルトのサービスアカウントにリンクします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc secrets link default jgroups-secret
$ oc secrets link default jgroups-secret
シークレットをコンテナーにマウントします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set volumes dc/datagrid \ --add -t secret \ --secret-name='jgroups-secret' \ --mount-path='/keystores/jgroups'
$ 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
環境変数でクラスターへの参加時に使用するノードのパスワードを設定します。