cassandra权威指南读书笔记--安全
认证和授权
driver,JMX和cassandra服务器支持SSL/TLS,cassandra节点间也支持SSL/TLS.
密码认证器
cassandra还支持自定义,可插拔的认证机制。
默认的认证器:org.apache.cassandra.auth.AllowAllAuthenticator
密码认证:org.apache.cassandra.auth.PasswordAuthenticator
配置在cassandra.yaml 的authenticator,cassandra 2.2及以后的版本,就得带上CassandraRoleManager.
Cassandra还通过IInternodeAuthenticator接口实现节点之间的可插拔认证机制(默认是AllowAllInternodeAuthenticator,不需要任何认证)
配置cqlsh自动登录
在安装主目录下创建一个名为.cqlshrc的文件。通过以下类似代码输入登录凭证:
;Sample ~/.cqlshrc file.
[authentication]
username = xxxxx
password = xxxxx
确保文件安全
可以在cqlsh中使用login切换用户
cassandra@cqlsh> login username 'password'
username@cqlsh>
也可不输入密码,shell会提示,然后隐藏输入。所有的输入都会保存在.cassandra/cqlsh_history
客户端驱动认证
客户端认证需要实现com.datastax.driver.core.AuthProvider接口。默认实现是PlainTextAuthProvider。调用Cluster.Builder.withCredentials()时会注册PlainTextAuthProvider的实例。
授权
默认授权:org.apache.cassandra.auth.AllowAllAuthorizer
基于角色的访问控制:org.apache.cassandra.auth.CassandraAuthorizer
配置在cassandra.yaml 的authorizer
同样是可插拔的
cassandra支持给某个用户赋予另一个用户的所有权限:grant xxx to xxx
cassandra把用户和角色存储在system_auth中.
加密
3.0开始,才支持客户端与服务器的加密,以及服务器之间的加密来保护数据安全。
cassandra使用TLS(Transport Layer Security)对传输数据加密。TLS是一种加密协议,保护通信安全,防窃听和篡改。TLS使用非对称加密(公钥私钥,密钥交换算法)。
客户端发送自己支持的密码套件,服务器选择一个生成对称密钥,用于通信。
可以自签名证书配置在服务器客户端(公私钥)。
cassandra提供密钥库和密钥对的密码配置,还提供LDAP(LightWeight Directory Access Protocol)
一般默认安全的配置就够了,有需要看官方文档。
JMX安全性
默认只开启本机访问。
修改cassandra-env.sh,把LOCAL_JMX设置为yes,添加
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=xxx"
jmxremote.access 可以配置权限,比如读写MBean权限
xxx readonly
xxx readwrite \
create javax.management.monitor.*,javax.management.timer.* \
修改完重启cassandra
SSL配置
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=xxx"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=xxx"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=xxx"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=xxx"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true"
PermissionsCacheMBean
默认,cassandra会缓存角色和权限相关信息。缓存配置在cassandra.yaml 的permission_validity_in_ms,默认2秒。PermissionsCacheMBean允许你覆盖这个值,另外还提供一个命令取消缓存中的所有权限(当改变集群中的权限时,想要立即生效,就可以这样清除缓存)
cassandra权威指南读书笔记--安全的更多相关文章
- cassandra权威指南读书笔记--客户端
DataStax驱动最成熟.默认,驱动程序会使用第一个连接的节点作为支持的版本协议.如果集群存在高低版本的节点(比如升级场景),如果驱动先连接不同不同版本的节点,可能会出现不兼容.驱动支持压缩客户端和 ...
- cassandra权威指南读书笔记--性能调优
cassandra自带测试工具cassandra-stress.nodetool proxyhistograms可以在多个节点运行,发现最慢的协调节点.nodetool tablehistograms ...
- cassandra权威指南读书笔记--监控&维护
cassandra SLF4J API记录日志,具体采用Logback实现.在终端启动cassandra时,可以向程序输入-f,就能在终端看到这个输出.Java Mangement Extension ...
- cassandra权威指南读书笔记--读写数据
写cassandra除了轻量级事务,不支持别的事务.cassandra是追加写,写的速度非常快.cassandra还有hint日志,这个数据库总是可写的,而且单个列的写操作是原子的.hint并不是一定 ...
- cassandra权威指南读书笔记--配置cassadnra
配置集群时,要求所有节点的集群名,分区器,snitch必须相同.种子节点最好相同. 种子节点:最好每个DC,配置2个,这样即使一个DC中一个种子节点挂了,仍然有一个中子节点可用.种子节点被认为是最先加 ...
- cassandra权威指南读书笔记--Cassandra架构(3)
分阶段事件驱动架构 SEDASEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stage,不同资源消耗的Stage使用不同数量的线程来处 ...
- cassandra权威指南读书笔记--Cassandra架构(2)
环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...
- cassandra权威指南读书笔记--Cassandra架构(1)
结构 集群-->数据中心-->机架-->节点. cassandra尽可能将数据副本存在多个数据中心,然后读取(查询路由到)尽可能在本地数据中心. 为了去中心化和分区容错性,使用gos ...
- cassandra权威指南读书笔记--数据建模
没有join操作.有轻量级事务和批处理,但是没有外键等.反规范化.3.0支持物化视图,允许在一个表上创建数据的多个物化视图.使用cassandra要从查询入手,而不是先从数据模型开始.先对查询建模,然 ...
随机推荐
- java13编程基础之数组深入
大纲一维数组概述数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们. 这些按序排列 ...
- dede织梦技巧:教你彻底解决dede按权重排序的问题(转)
dede排序对网站来说一直存在问题,默认是按照最新发布时间排序.这样排序有个问题,一旦更新之后即被视为最新发布,于是原本做好的排序瞬间就乱了. 这种时候,按权重排序是个很好的选择,但按权重排序到处存在 ...
- Serverless 如何应对 K8s 在离线场景下的资源供给诉求
本文整理自腾讯云云原生产品团队的专家产品经理韩沛在 Techo 开发者大会云原生专题的分享内容--Kubernetes 混部与弹性容器.本次分享主要分为三部分:基于 K8s 的应用混部.提升应用混部效 ...
- Java线程安全与锁优化,锁消除,锁粗化,锁升级
线程安全的定义 来自<Java高并发实战>"当多个线程访问一个对象的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法的时候进行任何 ...
- Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)
jdk-8u251-windows-x64 和 jdk-8u271-linux-x64.tar 链接:https://pan.baidu.com/s/1gci6aSIFhEhjY8F48qH39Q 提 ...
- 使用msys2在window下构建和使用Linux的软件
目录 前言 安装 使用 总结 前言 在window下构建Linux编译环境是很常见的,以前用过mingw弄过差不多的环境. 但是使用msys2后就根本停不下来咯,太好用咯. 安装 去官网下载吧,安装跟 ...
- 【ORACLE】awr报告问题分析
本文转自:http://www.linuxidc.com/Linux/2015-10/123959.htm 感谢分享 1.问题说明 运维人员都有"节日休假恐怖症",越到节日.休假和 ...
- 【CRS】vipca最后一步执行报错CRS-0215
当我们在安装Clusterware 的时候, 需要在第二节点上vipca , 配置到最后安装的时候, 安装到 75% 左右,报错: CRS-0215 : Could not start res ...
- oracle关闭监听log.xml文件生成步骤
1.查看sqlnet.ora文件是否存在 cd $ORACLE_HOME/network/admin ls 如果不存在,copy一个过来 cp samples/sqlnet.ora . 2.修改sql ...
- 与图论的邂逅05:最近公共祖先LCA
什么是LCA? 祖先链 对于一棵树T,若它的根节点是r,对于任意一个树上的节点x,从r走到x的路径是唯一的(显然),那么这条路径上的点都是并且只有这些点是x的祖先.这些点组成的链(或者说路径)就是x的 ...