保护 AWS 上的 Cassandra 数据库

Securing Cassandra Database on AWS

我最近在 AWS 上创建了一个 Cassandra 集群。我还写了一个客户端程序来访问它。一切正常。但是,我担心安全问题。在我的客户端程序中,我只需要知道集群的 IP 地址,然后我就可以连接到它并对其进行 运行 查询。这对安全不是很不利吗?人们通常如何安全地执行此操作?

谢谢

默认情况下,Cassandra 安装时会禁用所有安全功能。您可以启用四个主要功能:

  • Internal Authentication:这允许 username/password 访问您的集群。您可以按照link,并在您的cassandra.yaml中设置authenticator: PasswordAuthenticator来启用。
  • Internal Authorization:这会在 Cassandra 中启用权限安全。再次检查 link 中的信息,并在 cassandra.yaml 中设置 authorizer: CassandraAuthorizer 以启用。
  • Client-to-Node encryption:这可以保护您的客户端应用程序和集群之间的传输数据。
  • Node-to-Node encryption:这可以保护集群中不同节点之间的数据。

至少,我建议启用内部身份验证和授权。 SSL 加密稍微复杂一些(尽管这样做仍然是个好主意),但可能需要根据您的公司政策和数据的敏感性。这当然是将适当的 AWS 安全组应用于您的集群的补充。

您应该已经为您的集群定义了一个安全组,即使它们是默认的。检查 Security Groups for Your VPC

至少,您应该限制public 访问服务所需的端口。

老实说,我只会将它与您的 IP 号码联系起来 ,直到您更好地掌握实施的整体安全要求。

最好有两个安全组,一个给Cassandra,一个给应用。 Cassandra 节点仅分配内部 IP,没有 public IP,并且仅从应用程序安全组限制对 Cassandra 端口的访问。这确保只有应用程序可以访问 Cassandra。

您还应该启用 Cassandra 身份验证和授权,遵循 official security guide