11.2. 配置 JGroups 加密
用于 OpenShift 的数据网格使用 JGroups 技术保护集群服务器间的流量,并带有以下选项:
- 身份验证
使用需要节点在加入集群时使用密码进行身份验证的Groups
AUTH协议。您可以使用
JGROUPS_CLUSTER_PASSWORD环境变量配置身份验证。此环境变量设置在加入集群时要使用的节点密码。整个集群中的密码必须相同。- 对称加密
使用 JGroups
SYM_ENCRYPT协议保护来自 JGroups 密钥存储的流量(.jceks)。这是默认的加密协议。JGroups
AUTH协议具有对称加密的可选功能。JGroups 密钥存储包含集群中各个节点用于安全通信的凭据。
- 非对称加密
使用 JGroups
ASYM_ENCRYPT协议保护带有公钥/私钥加密的流量。利用非对称加密,需要 JGroups
AUTH协议。协调器节点会生成 secret 密钥。当节点加入集群时,它会从协调器请求 secret 密钥并提供其公钥。协调器使用公钥加密 secret 密钥并将其返回到节点。然后,节点会解密并安装 secret,以便它可以安全地与集群中的其他节点通信。
11.2.1. 设置对称加密 复制链接链接已复制到粘贴板!
要使用对称加密,请执行以下操作:
创建一个Groups 密钥存储(
.jceks),其中包含用于加密流量的凭据。您可以使用 Java keytool 生成 JGroups 密钥存储。
将 JGroups 密钥存储作为机密部署到 OpenShift。
- 登录您的 OpenShift 集群。
为 JGroups 密钥存储创建机密。例如,若要从名为
jgroups.jceks的密钥存储创建名为jgroups-secret的 secret,请执行以下操作:oc create secret generic jgroups-secret \ --from-file=jgroups.jceks
$ oc create secret generic jgroups-secret \ --from-file=jgroups.jceksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 链接到 default 服务帐户。
oc secrets link default jgroups-secret
$ oc secrets link default jgroups-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 挂载到容器。
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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将集群中每个节点的
JGROUPS_ENCRYPT_PROTOCOL环境变量设置为SYM_ENCRYPT。 配置集群中的每个节点,使其使用具有以下环境变量的 JGroups 密钥存储:
JGROUPS_ENCRYPT_KEYSTORE- Specifes the JGroups 密钥存储用于加密集群流量。
JGROUPS_ENCRYPT_KEYSTORE_DIR- 指定 JGroups 密钥存储所在的目录。
JGROUPS_ENCRYPT_SECRET- 匹配密钥存储的 OpenShift 机密。
JGROUPS_ENCRYPT_NAME- 匹配密钥存储的用户名。
JGROUPS_ENCRYPT_PASSWORD- 匹配密钥存储密码。
-
如果需要,在使用
JGROUPS_CLUSTER_PASSWORD环境变量加入集群时,为节点设置密码。