有没有办法限制对 Cassandra 的访问?在 mysql 中,用户需要用户名和密码才能获得访问权限,包括工作台等工具。是否有任何这样的系统,或者 CLI 和 cqlsh 工具是否可以访问 Cassandra?
2 回答
您使用的是哪个版本的 Cassandra?对于 1.2.2 及更高版本,您可以使用文档 ( http://www.datastax.com/docs/1.2/security/native_authentication )中描述的 PasswordAuthenticator 和 CassandraAuthorizer 进行身份验证:
1- 将 cassandra.yaml 身份验证器设置更改为 PasswordAuthenticator:
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
您还需要将 auhorizer 设置为 CassandraAuthorizer:
authorizer: com.datastax.bdp.cassandra.auth.CassandraAuthorizer
2-配置键空间的复制因子
system_auth
。3-重新启动卡桑德拉。
用于启动受支持客户端的默认超级用户名和密码 (cassandra) 存储在 Cassandra 中。例如,要启动 cqlsh:
./cqlsh -u cassandra -p cassandra
您现在可以设置用户帐户并授权用户访问数据库对象,方法是使用 CQL 授予他们对这些对象的权限。
当然,您需要阅读有关如何“更改超级用户密码”的信息(在上面的链接中)。
完成此操作后,可以调用 cassandra-cli 以了解 cqlsh 在上述示例中的情况:
./cassandra-cli -u username -pw password
有关概述,您还应该查看文档:DataStax Enterprise 和 Apache Cassandra 中的内部身份验证和授权安全性快速浏览
这是我发现的唯一与身份验证相关的资源:
在 1.2.2 版本中,我们提供了内部身份验证和授权,让您可以在 Cassandra 内部管理登录 ID 和密码,以及从授权(即权限)的角度来看谁可以在数据库集群中做什么。
到处走走,这把我带到了:http ://www.datastax.com/docs 上的 DataStax Enterprise 3.0 文档安全管理部分
DataStax Enterprise 3.0 包括许多用于保护数据的功能。安全框架为企业级数据库提供高级数据保护。您可以使用这些功能保护 DataStax Community 或 DataStax Enterprise 集群。
使用登录帐户和密码进行内部身份验证 基于 GRANT/REVOKE 范例的对象权限管理 使用 SSL 对从客户端到 Cassandra 集群的数据进行客户端到节点加密
DataStax Enterprise 为企业提供额外的安全性,不包含在 DataStax 社区中,以获取关键任务数据:
Kerberos 身份验证:一种网络身份验证协议,允许通过非安全网络进行通信的节点使用票证以安全的方式相互证明其身份。您还可以将 Kerberos 设置为使用 LDAP 进行身份验证。
透明数据加密:对从系统内存中的 memtable 刷新到磁盘上的 SSTables(静态数据)的数据进行编码,使未经授权的用户无法读取。无需用户干预即可进行加密和解密。
数据审计:管理员创建集群活动详细审计跟踪的能力。
顺便说一句,DataStax 社区 - DataStax 企业版和 DataStax 社区版的比较说:
DataStax 社区版:包含用于实时数据管理的最新版本的 Cassandra 数据库,以及免费版本的 DataStax OpsCenter。不支持生产系统。
包括 DataStax 社区版:
安全功能 一般安全功能
而不是 DataStax Enterprise 提到:
安全功能 一般和高级安全功能
总之,看一下,安全功能是从 1.2.2 版本开始实施的,根据您需要的安全部件,您可能根本不需要付费。
其他参考: Apache Cassandra 1.2 文档 -包含以下资源的安全部分: