在 HADR 环境中配置本机加密

加密 Db2 HADR 配置时,一定要记住加密的数据库不止一个。 主数据库和备用数据库都需要进行加密,才能提供最高水平的安全性。

准备工作

可以将已加密的主数据库与未加密的备用数据库配合运行。 但是,仅当备用数据库不需要访问主数据库上任何已加密的文件时,才建议使用此配置。 已归档的事务日志文件就是此类加密文件的一个示例。

虽然主数据库和备用数据库都有独立的唯一数据加密密钥,但它们还必须访问同一个主密钥 (MK)。 此访问可确保在执行 MK 轮换时,以及主数据库和备用数据库需要访问共享的加密文件时,可以在数据库之间传送 MK 标签。

建议让 HADR 环境中的所有数据库都可以访问同一个密钥库。 这可以是共享文件系统上的 PKCS12 密钥库,也可以是集中式密钥库(如 KMIP 密钥管理器或 PKCS11 硬件安全模块)。 建议不要使用单独的 PKCS12 密钥库,因为它们必须手动保持同步。 在使用集中式密钥库的情况下,可能每个数据库都配置为将同一密钥库的不同克隆处理为其主密钥库。

另外,还建议您考虑对 HADR 通信实施加密,以确保数据不会暴露。 有关设置指示信息,请参阅 配置 TLS 以获取主 HADR 服务器与备用 HADR 服务器之间的通信

过程

要为加密数据库实现 HADR 关系,请完成下列步骤:

  1. 为主数据库和备用数据库创建并配置公共密钥库,并将 MK 放入密钥库中。 将密钥库保存在可由主数据库和备用数据库访问的共享密钥库服务上。
    对于非加密数据库,请 配置 Db2 以识别密钥库。 您还可以将旧的本地密钥库迁移到主节点上新的集中式 KMIPPKCS #11 密钥库。
  2. 备份主数据库:
    db2 backup db <dbname>
  3. 在主节点上停止 HADR 服务:
    db2 stop hadr on db <dbname>
  4. 取消激活备用节点上的数据库:
    db2 deactivate db <dbname>
  5. 删除备用数据库:
    db2 drop db <dbname>
  6. 使用 ENCRYPT 选项复原备用节点上的数据库,指定 MK 的加密选项和标签:
    ddb2 restore db <dbname> encrypt
  7. 为备用机修改 HADR 配置参数:
    db2 update db cfg for <dbname> USING HADR_LOCAL_HOST <hostname> HADR_LOCAL_SVC <servicename> HADR_SYNCMODE <syncmode> HADR_TARGET_LIST <principalhostname:principalservicename|auxhostnameN:auxservicenameN>  HADR_REMOTE_HOST <principalhostname> HADR_REMOTE_SVC <principalservicename> HADR_REMOTE_INST <principalinstname>
  8. 启动加密备用数据库:
    db2 start hadr on db <dbname> as standby
  9. 通过主数据库重新输入 HADR 环境:
    db2 start hadr on db <dbname> as primary
  10. 当备用数据库赶上主数据库时,请在备用数据库上运行以下命令以将其接管为新的主数据库:
    db2 takeover hadr on db <dbname>
  11. 以新的主数据库为起点,重复步骤 2 至 10。
  12. 使用辅助待机代替待机,对每个辅助待机重复步骤 2 至 9。

结果

您的 Db2 HADR 配置的主服务器和备用服务器现已正确加密。