背景: 防止elasticsearch存储的数据信息泄露
注意点:
1.1 设置访问的网络
network.host: 0.0.0.0 #建议指定特定的主机,而不是所有的主机都可以访问
1.2 开启x-pack
X-Pack是Elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,可以轻松的启用或者关闭相关功能
演示:启用x-pack
注意:elasticsearch的权限控制使用RBAC,基于角色进行权限控制,和k8s的权限控制类似
nohup ./bin/elasticsearch -E node.name=test -E cluster.name=test0 -E path.data=node0_data -E http.port=9200 -E xpack.security.enabled=true -E cluster.initial_master_nodes=test &
设置密码
./bin/elasticsearch-setup-passwords interactive
kibana开启密码认证:
elasticsearch.username: "kibana_system"
elasticsearch.password: "123qwe"
1.3 内部通信安全
集群内部通过9300端口进行通信
1.1 加密数据 避免数据抓包,敏感信息泄露
1.2 验证身份 避免impostor Node
解决方案:
1.1 为节点创建证书
TLS: CA签发X.509的证书
证书认证级别:
certificate 节点加入时需要使用相同CA签发的证书
Full Verification 节点加入集群需要相同CA签发的证书,还需要验证Host name或IP地址
No Ver 任何节点都可以加入集群,开发环境1.2 生成节点证书
1) 创建CA
/bin/elasticsearch-certutil ca
2) 通过CA文件为节点签发证书
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12查看当前目录,就会存在我们刚创建的CA和签发的证书文件
elastic-stack-ca.p12
elastic-certificates.p12节点创建证书目录
mkdir -p config/certs
将证书复制到证书目录配置节点间通讯
编辑配置文件/etc/elasticsearch/elasticsearch.yml,取消掉下面几行的注释(注意证书路径)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate # 证书认证级别
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 # --填写证书路径
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 #--填写证书路径
1.4 外部通信安全
外部通信安全
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.authc.api_key.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12