11.4. 保护代理服务
代理节点应至少有两个接口(物理或虚拟):一个公共和一个私有接口。您可以使用防火墙或服务绑定来帮助保护公共接口。面向公众的服务是一种 HTTP Web 服务器,用于处理端点客户端请求、验证它们并执行适当的操作。私有接口不需要任何侦听的服务,而是用来建立与私有存储网络上的存储节点的传出连接。
11.4.1. HTTP 侦听端口 复制链接链接已复制到粘贴板!
director 将 Web 服务配置为在非 root 用户(没有 UID 0)用户下运行。使用大于 1024 的端口号,避免以 root 用户身份运行任何部分 web 容器。通常,使用 HTTP REST API (和执行自动身份验证)的客户端会检索从身份验证响应所需的完整 REST API URL。OpenStack REST API 允许客户端向一个 URL 进行身份验证,然后重定向为为实际服务使用完全不同的 URL。例如:客户端可以对 https://identity.cloud.example.org:55443/v1/auth 进行身份验证,并使用其身份验证密钥和存储 URL (代理节点或负载均衡器的 URL)获得响应。https://swift.cloud.example.org:44443/v1/AUTH_8980
11.4.2. 负载均衡器 复制链接链接已复制到粘贴板!
如果无法使用 Apache 的选项不可行,或者您想要卸载 TLS 工作的性能,则可能会使用专用的网络设备负载均衡器。这是使用多个代理节点时提供冗余和负载平衡的常见方法。
如果您选择卸载 TLS,请确保负载均衡器和代理节点之间的网络链接位于私有(V) LAN 段中,以便网络中的其他节点(可能被破坏)不能有线tap (sniff)未加密的流量。如果发生此类漏洞,攻击者就可以访问端点客户端或云管理员凭证,并访问云数据。
您使用的身份验证服务将决定如何在对端点客户端的响应中配置不同的 URL,允许它们使用负载均衡器而不是单独的代理节点。