gpt4 book ai didi

azure - azure 上的 cassandra,如何配置安全组

转载 作者:行者123 更新时间:2023-12-02 04:39:18 25 4
gpt4 key购买 nike

我刚刚安装了cassandra的datastax集群。我有一个关于安全组以及如何限制访问的问题。目前,vnet 和所有虚拟机都没有安全组。这样每个人都可以连接到集群。当我尝试在子网上设置安全组时,问题就开始了。这是因为 cassandra 节点的 http 通信(我认为)使用公共(public) ip,而不是内部 ip。我在 opscenter 中收到一个错误,指出 http 连接已关闭。

问题是我如何限制对集群的访问(针对特定 IP),但提供对所有 cassandra 节点的访问以使其工作。

最佳答案

在任何公共(public)云(无论是 Azure、GCE 还是 AWS 等)内运行时,锻炼安全性是一种很好的做法。启用节点间 SSL 是一个非常好的主意,因为这将保护节点间八卦通信的安全。然后,您还应该引入内部身份验证(至少),以便您需要用户/密码才能登录 cqlsh。我还建议使用客户端到节点 SSL,1-way 对于大多数情况来说应该足够了。

我对 Azure 不太确定,但我知道 AWS 和 GCE 实例只会有一个本地内部路由 IP(通常在 10.0.0.0/8 专用范围内),而公共(public) IP 将通过 NAT。您通常会使用公共(public) IP 作为broadcast_address,特别是当您跨内部 IP 不路由的不同可用区域运行时。您还可能正在运行一个可能通过公共(public) IP 连接的客户端应用程序,因此您也希望将 broadcast_rpc_address 设置为公共(public)。这两个都可以在 cassandra.yaml 中找到。 listen_addressrpc_address 都是节点将绑定(bind)到的 IP,因此它们必须在本地可用(即,您无法将进程绑定(bind)到未在接口(interface)上配置的 IP)在节点上)。

摘要

  • 使用节点间 SSL
  • 使用客户端到节点 SSL
  • 至少使用内部身份验证(还支持 Ldap 和 Kerberos)

有用的文档

我强烈建议您遵循此处的文档。如果遇到障碍(无论什么应用程序),引入安全性可能会有点棘手。我总是首先确保集群在没有安全措施的情况下运行正常,然后一次引入一件事,然后测试、验证,然后引入下一件事。不要一次配置所有内容!

Firewall ports

Client to node SSL - 注意对于单向,require_client_auth: true 应为 false

Node to node SSL

Preparing SSL certificates

Unified authentication (内部、LDAP、Kerberos 等)

注意在生成 SSL key 和证书时,通常您只需生成一对,并在拥有节点到节点 SSL 时在所有节点上使用它。否则,如果您引入新节点,则必须将新证书导入到所有节点中,这并不是真正可扩展的。根据我与使用大型集群的组织合作的经验,这就是他们管理事物的方式。客户端应用程序也可能只使用相同的 key 或至少使用不同的 key 。

更多信息/阅读

支持 2 路 SSL,但不如 1 路常见。这通常有点复杂,并通过 cassandra.yaml

中的 require_client_auth: true 开启

如果您使用 OpsCenter for SSL,文档(如下)将涵盖相关内容。请注意,本质上它在两个地方:

  • opscenter 与代理和集群之间的 SSL(与上面的客户端到节点 SSL 相同)
  • OpsCenter 与代理之间的 SSL

OpsCenter SSL configuration

我希望这可以帮助您实现您需要的目标!

关于azure - azure 上的 cassandra,如何配置安全组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com