文件系统加密: 要启用先前未加密文件系统的加密,需要执行以下步骤
在
config.ini
文件的[ndbd default]
部分设置所需的数据节点参数,如下所示[ndbd default] EncryptedFileSystem= 1
这些参数必须在所有数据节点上按显示设置。
对所有数据节点执行滚动初始启动(或重新启动)(参见 第 25.6.5 节,“执行 NDB Cluster 的滚动重启”):使用
--initial
启动每个数据节点;此外,还需为每个数据节点进程提供以下选项之一:--filesystem-password
或--filesystem-password-from-stdin
,以及密码。当您在命令行上提供密码时,将显示类似于以下内容的警告> ndbmtd -c 127.0.0.1 --filesystem-password=ndbsecret ndbmtd: [Warning] Using a password on the command line interface can be insecure. 2022-08-22 16:17:58 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:17:58 [ndbd] INFO -- Angel allocated nodeid: 5
--filesystem-password
可以接受来自文件、tty
或stdin
的密码;--filesystem-password-from-stdin
仅接受来自stdin
的密码。后者可以防止密码在进程命令行或文件系统中泄露,并允许从其他安全应用程序中传递密码。您也可以将密码放在
my.cnf
文件中,该文件可以被数据节点进程读取,但不能被系统的其他用户读取。使用与前面示例相同的密码,该文件的相关部分应如下所示[ndbd] filesystem-password=ndbsecret
您也可以通过在
my.cnf
文件中使用--filesystem-password-from-stdin
选项来提示启动数据节点进程的用户在启动时提供加密密码,如下所示[ndbd] filesystem-password-from-stdin
在这种情况下,系统将提示用户在启动数据节点进程时提供密码,如下所示
> ndbmtd -c 127.0.0.1 Enter filesystem password: ********* 2022-08-22 16:36:00 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:36:00 [ndbd] INFO -- Angel allocated nodeid: 5 >
无论使用哪种方法,加密密码的格式都与用于加密备份的密码相同(参见 第 25.6.8.2 节,“使用 NDB Cluster 管理客户端创建备份”);在启动每个数据节点进程时必须提供密码;否则,数据节点进程无法启动。这在数据节点日志中用以下消息表示
> tail -n2 ndb_5_out.log 2022-08-22 16:08:30 [ndbd] INFO -- Data node configured to have encryption but password not provided 2022-08-22 16:08:31 [ndbd] ALERT -- Node 5: Forced node shutdown completed. Occurred during startphase 0.
重新启动后,每个数据节点都清除其磁盘上的状态,并以加密形式重建它。
文件系统密码轮换: 要更新数据节点使用的加密密码,请执行数据节点的滚动初始重启,并在使用 --filesystem-password
或 --filesystem-password-from-stdin
重新启动时,为每个数据节点提供新密码。
文件系统解密: 要从加密的文件系统中删除加密,请执行以下操作
要查看文件系统加密是否已正确配置,您可以使用针对 ndbinfo
config_values
和 config_params
表的查询,类似于以下查询
mysql> SELECT v.node_id AS Node, p.param_name AS Parameter, v.config_value AS Value
-> FROM ndbinfo.config_values v
-> JOIN ndbinfo.config_params p
-> ON v.config_param=p.param_number
-> WHERE p.param_name='EncryptedFileSystem';
+------+----------------------+-------+
| Node | Parameter | Value |
+------+----------------------+-------+
| 5 | EncryptedFileSystem | 1 |
| 6 | EncryptedFileSystem | 1 |
| 7 | EncryptedFileSystem | 1 |
| 8 | EncryptedFileSystem | 1 |
+------+----------------------+-------+
4 rows in set (0.10 sec)
在这里,EncryptedFileSystem
在所有数据节点上都等于 1
,这意味着此集群已启用文件系统加密。