MySQL InnoDB集群部署及管理全教程(一)_Doker 多克的博客-CSDN博客MySQL InnoDB集群部署及管理全教程(二)_Doker 多克的博客-CSDN博客
MySQL InnoDB集群部署及管理全教程(三)_Doker 多克的博客-CSDN博客
六、 保护 InnoDB 集群
可以将服务器实例配置为使用安全连接。有关在MySQL中使用安全连接的一般信息,请参阅使用加密连接。本节介绍如何将群集配置为使用加密连接。另一种安全可能性是配置哪些服务器可以访问集群,请参阅创建服务器的允许列表。
使用设置集群时,如果服务器实例提供加密,则会在种子实例上自动启用加密。将该选项传递给方法以指定不同的SSL模式。集群的SSL模式只能在创建时设置。该选项是一个字符串,用于配置要使用的SSL模式,默认为。支持以下模式:dba.createCluster()memberSslModedba.createCluster()member SslModeAUTO
- DISABLED:确保已禁用群集中种子实例的SSL加密。
- AUTO:如果服务器实例支持SSL加密,则自动启用SSL加密;如果服务器不支持,则禁用加密。
- REQUIRED:为群集中的种子实例启用SSL加密。如果无法启用,则会引发错误。
- VERIFY_CA:类似,但还要根据配置的CA证书验证服务器证书颁发机构(CA)证书。如果找不到有效的匹配CA证书,则连接尝试失败。必需的
- VERIFY_IDENTITY:类似,但还可以通过检查客户端用于连接到服务器的主机名与服务器发送给客户端的证书中的标识来执行主机名身份验证。验证_CA
例如,要设置要使用的集群,请发出:REQUIRED
mysql-js> var myCluster = dba.createCluster({memberSslMode: 'REQUIRED'})
如果选择使用VERIFY_CA或VERIFY_IDENTITY模式,则必须在每个群集实例上使用ssl_CA和/或ssl_capath选项手动提供CA证书。有关这些模式的更多信息,请参阅--ssl mode=mode。
当使用Cluster.addInstance()和Cluster.requestInstance()操作时,会根据用于群集的设置启用或禁用实例上的SSL加密。将memberSslMode选项与这些操作一起使用,可以将实例设置为使用不同的加密模式。
当使用dba.createCluster()和approveFromGR选项采用现有的组复制组时,所采用的集群上的SSL设置不会更改:
- memberSslMode不能与approveFromGR一起使用。
- 如果采用的集群的SSL设置与MySQL Shell支持的SSL设置不同,即用于组复制恢复和组通信的SSL,则这两种设置都不会修改。这意味着您无法向集群添加新实例,除非您手动更改所采用集群的设置。
MySQL Shell始终为群集启用或禁用SSL以进行组复制恢复和组通信,请参阅使用安全套接字层(SSL)保护组通信连接。在向集群添加新实例时,如果种子实例的这些设置不同(例如,由于dba.createCluster()使用approveFromGR),则会执行验证并发出错误。必须为群集中的所有实例启用或禁用SSL加密。执行验证以确保在向集群添加新实例时保持此不变量。
dba.deploySandboxInstance()命令尝试部署默认支持SSL加密的沙箱实例。如果不可能,则在没有SSL支持的情况下部署服务器实例。
MySQL Shell始终为群集启用或禁用SSL以进行组复制恢复和组通信,请参阅使用安全套接字层(SSL)保护组通信连接。在向集群添加新实例时,如果种子实例的这些设置不同(例如,由于dba.createCluster()使用approveFromGR),则会执行验证并发出错误。必须为群集中的所有实例启用或禁用SSL加密。执行验证以确保在向集群添加新实例时保持此不变量。
dba.deploySandboxInstance()命令尝试部署默认支持SSL加密的沙箱实例。如果不可能,则在没有SSL支持的情况下部署服务器实例。
保护集群成员之间的通信
从MySQL Shell 8.0.33开始,可以将集群和副本集群配置为使用SSL加密复制通道,并允许副本验证主机身份和使用SSL证书进行身份验证。
使用dba.createCluster()创建集群时,可以使用memberAuthType选项定义用于内部复制帐户的身份验证类型。此选项采用以下值之一:
- PASSWORD:帐户仅使用密码进行身份验证。
- CERT_ISSUER:帐户使用客户端证书进行身份验证,该证书必须与预期的颁发者匹配。该值相当于VERIFY_CA。
- CERT_SUBJECT:帐户使用客户端证书进行身份验证,该证书必须与预期的颁发者和使用者相匹配。该值相当于VERIFY_IDENTITY。
- CERT_ISSUER_PASSWORD:帐户使用PASSWORD和CERT_ISSUE值的组合进行身份验证。
- CERT_SUBJECT_PASSWORD:帐户使用PASSWORD和CERT_SUBJECT值的组合进行身份验证。