赞
踩
可以将服务器实例配置为使用安全连接。有关在MySQL中使用安全连接的一般信息,请参阅使用加密连接。本节介绍如何将群集配置为使用加密连接。另一种安全可能性是配置哪些服务器可以访问集群,请参阅创建服务器的允许列表。
如果使用的是通信堆栈,则在将群集配置为使用加密连接后,必须将服务器添加到。例如,当使用商业版本的MySQL时,默认情况下会启用SSL,您需要为所有实例配置该选项。请参阅创建服务器的允许列表。XCOM许可列表许可列表
使用设置集群时,如果服务器实例提供加密,则会在种子实例上自动启用加密。将该选项传递给方法以指定不同的SSL模式。集群的SSL模式只能在创建时设置。该选项是一个字符串,用于配置要使用的SSL模式,默认为。支持以下模式:dba.createCluster()memberSslModedba.createCluster()member SslModeAUTO
例如,要设置要使用的集群,请发出: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设置不会更改:
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选项定义用于内部复制帐户的身份验证类型。此选项采用以下值之一:
重要的
ClusterSets继承在主群集上定义的memberAuthType。ClusterSet中的所有副本群集也将使用在主群集上定义的memberAuthType。
SSL证书是使用以下选项定义的:
以下示例创建一个集群cluster1,该集群将客户端SSL连接和组复制从一台服务器到另一台服务器打开的连接设置为VERIFY_IDENTITY,并将内部复制帐户的身份验证设置为需要客户端证书:
- cluster = dba.createCluster("cluster1", { "memberSslMode": "VERIFY_IDENTITY", "memberAuthType":"certSubject",
- "certIssuer":"/CN=MyCertAuthority", "certSubject": "/CN=mysql-1.local"});
以下示例显示如何使用“memberAuthType”将实例添加到集群:“certSubject”:
cluster.addInstance("mysql-2.local", {"certSubject": "/CN=mysql-2.local"});
创建服务器的白名单
createCluster()、addInstance()和rejoinInstance()方法使您可以选择指定一个已批准服务器的列表,称为allowlist。通过以这种方式显式指定allowlist,您可以提高集群的安全性,因为只有allowlist中的服务器才能连接到集群。
您还可以在运行的集群上定义allowList,使用cluster.setOption()为集群的所有成员指定allowList;使用cluster.setSInstanceOption()指定单个成员的allowList。参见第7.5.1节“InnoDB集群的设置选项”。
使用ipAllowlist选项(以前是ipWhitelist,现在已弃用)在实例上配置group_replication_ip_allowlist系统变量。默认情况下,如果未明确指定,则allowlist会自动设置为服务器具有网络接口的专用网络地址。若要配置allowlist,请在使用该方法时使用ipAllowlist选项指定要添加的服务器。必须以IPv4格式指定IP地址。以逗号分隔的列表形式传递服务器,列表中用引号括起来。例如:
mysql-js> cluster.addInstance("icadmin@ic-3:3306", {ipAllowlist: "203.0.113.0/24, 198.51.100.110"})
这将实例配置为仅接受来自地址为203.0.113.0/24和198.51.100.110的服务器的连接。allowlist还可以包括主机名,只有当另一台服务器发出连接请求时才能解析这些主机名。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/1006210
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。