权限管理
内部权限管理
1. 修改cassandra.yaml中authentication相关的两个配置节点,分别修改为
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
authorizer:org.apache.cassandra.auth.CassandraAuthorizer
2. 配置dse_auth keyspace的replication: 你需要配置dse_auth keyspace的replication factor来预防一个潜在的登录问题。不要使用默认的replication factor: 1,如果你配置使用了如下权限设置:
authenticator: com.datastax.bdp.cassandra.auth.KerberosAuthenticator
authenticator: com.datastax.bdp.cassandra.auth.PasswordAuthenticator
authorizer: com.datastax.bdp.cassandra.auth.CassandraAuthorizer
在一个多节点的集群中,使用默认值1会阻止用户登录当存储用户数据的节点DOWN了的话。所以与dse_auth相关的Query,cassandra都是使用QUORUM的一致性级别的。
修改步骤如下:
1. 打开cassandra.yaml
2. 修改auth_replication_options 节点,如:
Example for SimpleStrategy:
auth_replication_options:
replication_factor: 3
Example for NetworkTopologyStrategy:
auth_replication_options:
DC1: 3
DC2: 3
3. 如果修改已经存在的集群要注意以下几点:确保每个节点中的配置文件都有修改,重启所有节点,在每个节点上运行nodetool repair
NOTE:
Cassandra: dse_auth.users
PasswordAuthenticator: hashed passwords 存于 dse_auth.credentials
CassandraAuthorizer: 权限存于dse_auth.permissions
使用Authentication
当你完成以上的权限相关配置后就不能使用空的用户名与密码使用CQLSH或者CASSSANDRA-CLI了。可以先使用超级用户来登录 :<客户端启动命令> -u cassandra -p cassandra.
这里要注意的是,你需要用HELP命令查看一下确实的命令使用方式,官方文档虽然说是-u -p, 但实际上我使用下来是-u -pw, -p是-port。因为cassandra版本在不段的更新中,每次更新你都应该去看一下安装目录里的NEWS,看一下有哪些变动。
-u cassandra -pw cassandra 是默认的超级管理员。
1. 创建一个新的超级用户,用户名不能再是cassandra
2. 登录这个超级用户
3. 更新cassandra用户的密码,并不要再使用这个帐户了
4. 取消掉cassandra用户超级管理员的角色