认证和授权
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权威指南读书笔记--安全的更多相关文章

  1. cassandra权威指南读书笔记--客户端

    DataStax驱动最成熟.默认,驱动程序会使用第一个连接的节点作为支持的版本协议.如果集群存在高低版本的节点(比如升级场景),如果驱动先连接不同不同版本的节点,可能会出现不兼容.驱动支持压缩客户端和 ...

  2. cassandra权威指南读书笔记--性能调优

    cassandra自带测试工具cassandra-stress.nodetool proxyhistograms可以在多个节点运行,发现最慢的协调节点.nodetool tablehistograms ...

  3. cassandra权威指南读书笔记--监控&维护

    cassandra SLF4J API记录日志,具体采用Logback实现.在终端启动cassandra时,可以向程序输入-f,就能在终端看到这个输出.Java Mangement Extension ...

  4. cassandra权威指南读书笔记--读写数据

    写cassandra除了轻量级事务,不支持别的事务.cassandra是追加写,写的速度非常快.cassandra还有hint日志,这个数据库总是可写的,而且单个列的写操作是原子的.hint并不是一定 ...

  5. cassandra权威指南读书笔记--配置cassadnra

    配置集群时,要求所有节点的集群名,分区器,snitch必须相同.种子节点最好相同. 种子节点:最好每个DC,配置2个,这样即使一个DC中一个种子节点挂了,仍然有一个中子节点可用.种子节点被认为是最先加 ...

  6. cassandra权威指南读书笔记--Cassandra架构(3)

    分阶段事件驱动架构 SEDASEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stage,不同资源消耗的Stage使用不同数量的线程来处 ...

  7. cassandra权威指南读书笔记--Cassandra架构(2)

    环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...

  8. cassandra权威指南读书笔记--Cassandra架构(1)

    结构 集群-->数据中心-->机架-->节点. cassandra尽可能将数据副本存在多个数据中心,然后读取(查询路由到)尽可能在本地数据中心. 为了去中心化和分区容错性,使用gos ...

  9. cassandra权威指南读书笔记--数据建模

    没有join操作.有轻量级事务和批处理,但是没有外键等.反规范化.3.0支持物化视图,允许在一个表上创建数据的多个物化视图.使用cassandra要从查询入手,而不是先从数据模型开始.先对查询建模,然 ...

随机推荐

  1. java的多线程:java安全问题产生的原因与JMM的关系

    一.多线程产生安全问题 1.Java内存模型 共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见. 从抽象的角度来看,JMM定义了线程和主内存 ...

  2. 小米11和iPhone11 哪个好

    小米11:搭载最新一代三星的AMOLED屏幕,120Hz屏幕刷新iPhone11采用6.1英寸的分辨率1792828的LCD屏幕小米手机爆降800 优惠力度空前机会不容错过https://www.xi ...

  3. 关于c语言的知识点不足的地方

    在最近的一次c语言考试之前,自己根据老师说的会出原题的卷子的总结 关于代码的自动对齐,dev c++ CTRL+shift+A/a 关于运算顺序的csdn上有,常考的有/ %等 上地址 https:/ ...

  4. Faceto_object_programdesign

    一面向对象程序设计思想 1 和面向过程关注点不同 过程: 程序执行流程和逻辑 (局部功能) 对象: 程序中的对象 (程序结构) 2 对象 现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件 ...

  5. Solon rpc 之 SocketD 协议 - 消息上报模式

    Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 Soc ...

  6. TeamView WaitforConnectFailed错误原因

    更新到最新版本并重启如下服务 检查TCP IPV4是否选中

  7. kafka 异步双活方案 mirror maker2 深度解析

    mirror maker2背景 通常情况下,我们都是使用一套kafka集群处理业务.但有些情况需要使用另一套kafka集群来进行数据同步和备份.在kafka早先版本的时候,kafka针对这种场景就有推 ...

  8. 【C++】《C++ Primer 》第五章

    第五章 语句 一.简单语句 表达式语句:一个表达式末尾加上分号,就变成了表达式语句. 空语句:只有一个单独的分号,记得注释说明提高代码可读性. 复合语句(块):用花括号 {}包裹起来的语句和声明的序列 ...

  9. 基础Markdown语法

    Markdown语法 1.标题 //标题语法 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 ...

  10. YYDS: Webpack Plugin开发

    目录 导读 一.cdn常规使用 二.开发一个webpack plugin 三.cdn优化插件实现 1.创建一个具名 JavaScript 函数(使用ES6的class实现) 2.在它的原型上定义 ap ...