ElasticSearch 7配置密码认证

我们直接安装的ES默认是没有账号与密码的,输入ES服务器的ip:端口,直接就能返回结果,非常不安全,因此选择设置密码

1.1 在ES节点上设置用户密码

1.1.1 在其中一个节点上生成认证文件

1.1.1.1 生成CA证书

$ cd /home/admin/local/elasticsearch

##生成 ca 证书

$ ./bin/elasticsearch-certutil ca

全部回车不用管密码

##用 ca 证书签发节点证书

$ ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

全部回车不用管密码

/*

在上面生成证书的时候设置了密码,会导致无法启动ES,报错:

ElasticsearchSecurityException[failed to load SSL configuration [xpack.security.transport.ssl]]; nested: ElasticsearchException[failed to create trust manager]; nested: ElasticsearchException[failed to initialize SSL TrustManager]; nested: IOException[keystore password was incorrect]; nested: UnrecoverableKeyException[failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.];

Likely root cause: java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

*/

$ cd /home/admin/local/elasticsearch/config/

$ mkdir certs

$ mv /home/admin/local/elasticsearch/elastic-certificates.p12 config/certs/

$ mv /home/admin/local/elasticsearch/elastic-stack-ca.p12 config/certs/

并且将certs目录也复制到其他节点的对应目录里(所有节点都用同一份)

1.1.2 修改所有ES节点的配置文件
vi  /usr/local/ElasticSearch/config/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.1.3 重启各ES节点

启动命令:elasticsearch -d

1.1.4 设置密码

必须确保集群状态正常才行,否则密码设置会失败。

在其中一个节点上设置密码即可:

$ ./elasticsearch-setup-passwords interactive

$ Please confirm that you would like to continue [y/N] 输入y

下面是输入对应用户的密码

1.1.5  验证

http://IP:9200/_cat/nodes?pretty

输入用户elastic 和之前设置的密码 

1.2 配置kibana用户密码

由于ES设置了密码,kibana也无法无密码访问了,也需要对kibana进行相应设置。

2.2.1 修改配置文件

vi /usr/local/kibana/config/kibana.yml

添加:

elasticsearch.username: "kibana"

elasticsearch.password: "之前设置的密码"

2.2.2 重启kibana
#启动

/usr/local/kibana/bin/kibana &

2.2.3 登录验证

登录成功,但是,信息无法查看。权限没开通,返回如下信息。

{"statusCode":403,"error":"Forbidden","message":"Forbidden"}

用超级用户elastic用户可成功登录。

点击左下角的管理按钮->Security->Users,可以看到我们之前配置过密码的用户:

这些默认用户的角色无法修改,可自己新建角色和用户,来满足自己的使用需求。

2.3 在kibana里创建程序账号

想建一个有增删改查权限的程序账号,提供给程序使用。

2.3.1 创建角色

#给该角色授予操作所有索引的读写权限及创建索引的权限

 点击下面的'create role'创建角色。

 

2.3.2 创建用户

需要赋予该用户kibana_admin权限,否则新用户没权限登录,报错:

{"statusCode":403,"error":"Forbidden","message":"Forbidden"}

#不在页面配置的话,也可以直接用命令创建角色及账号。

#创建角色

curl  --user elastic:密码    -H "Content-Type: application/json" -XPUT http://172.18.252.101:10412/_security/role/DmlRole -d '{
"indices": [
    {
      "names": [
        "*"
      ],
      "privileges": [
        "read",
"write",
"create_index"
      ]
    }
  ]
}'


注释:

names:指定索引

privileges:权限类别

#创建账号

curl  --user elastic:密码   -H "Content-Type: application/json"  -XPOST http://172.18.252.101:10412/_security/user/ProgramUser -d '{

  "password" : "密码",

  "roles" : ["DmlRole","kibana_admin"]

}'

Elasticsearch是一个开源的分布式搜索和分析引擎,它提供了强大的全文搜索功能和实时数据分析能力。Elasticsearch中,密码是用于保护集群和数据的安全性的重要组成部分。 Elasticsearch密码可以通过以下几种方式进行设置和管理: 1. 内置用户认证Elasticsearch提供了内置的用户认证功能,可以通过配置用户名和密码来限制对集群的访问。可以使用内置的超级用户账号(如"elastic")来创建和管理其他用户账号,并为每个账号分配相应的角色和权限。 2. 安全插件:Elasticsearch还提供了一些安全插件,如X-Pack Security插件,它提供了更加细粒度的访问控制和安全功能,包括基于角色的访问控制、SSL/TLS加密通信、审计日志等。 3. 第三方认证和授权:除了内置的用户认证功能外,Elasticsearch还支持与第三方认证和授权系统集成,如LDAP、Active Directory等,以便更好地与企业现有的身份验证系统进行整合。 需要注意的是,为了确保Elasticsearch集群的安全性,建议采取以下措施: 1. 使用强密码:设置复杂且不易猜测的密码,包括字母、数字和特殊字符的组合,以增加密码的安全性。 2. 定期更换密码:定期更换密码可以降低密码泄露的风险,建议每隔一段时间更换一次密码。 3. 限制访问权限:根据实际需求,为每个用户分配适当的角色和权限,限制其对集群和数据的访问权限。 4. 加密通信:启用SSL/TLS加密通信,确保数据在传输过程中的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值