我在Kubernetes上部署了一个Cassandra集群作为有状态集。在Cassandra中实现安全性是可能的吗?
发布于 2021-05-14 22:36:52
是。在您的Docker入口点中,使用sed注入您希望使用的任何身份验证类:
sed -i "s/authorizer: CassandraAuthorizer/authorizer: ${AUTHORIZER_CLASS}/" ${CASSANDRA_CONF}/cassandra.yaml
sed -i "s/authenticator: PasswordAuthenticator/authenticator: ${AUTHENTICATOR_CLASS}/" ${CASSANDRA_CONF}/cassandra.yaml这将创建默认的cassandra/cassandra角色,您可以使用它来创建新角色。
如何处理Cassandra客户端到节点加密?
这就有点棘手了。基本上,您需要将证书或密钥库和密钥库的密码注入到映像中(从密码/秘密存储或其他安全位置)。然后,您的入口点应该在cassandra.yaml的末尾添加/更新以下standard SSL settings
if [ "${SSL_ENABLED}" == "true" ]; then
cat << EOF >> ${CASSANDRA_CONF}/cassandra.yaml
client_encryption_options:
enabled: ${SSL_ENABLED}
optional: ${SSL_OPTIONAL}
keystore: ${CASSANDRA_CONF}/server-keystore.jks
keystore_password: ${KEYSTORE_PASSWORD}
EOF
fi如果您还需要双向安全套接字层(需要require_client_auth: true集)或节点到节点加密,则还需要以相同的方式注入或构建Java信任库。
https://stackoverflow.com/questions/67531837
复制相似问题