Elasticsearch 入門(四)開啟 Elasticsearch 安全功能(使用Xpack)
elasticsearch 在7.1版本之后可以免費使用x-pack,不需要額外付費
從 Elastic Stack 6.8 和 7.1 開始,我們在默認分發包中免費提供多項安全功能,例如 TLS 加密通信、基於角色的訪問控制 (RBAC),等等。
在 Elasticsearch 主節點上配置 TLS
1.首先在之前的docker-compose文件上加上
....
image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
environment:
- "xpack.security.enabled=true"
....
- 啟動容器后進入容器
docker exec -it containerid bash - cd 命令更改至 master 目錄,然后運行下列命令:
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass "" vi config/elasticsearch.yaml
將下列代碼行粘貼到文件末尾。
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
- 手動生成密碼。
bin/elasticsearch-setup-passwords interactive
第 2 步:Elasticsearch 集群密碼 一旦主節點開始運行,便可以為集群設置密碼了。在新終端中,我們必須通過 cd 命令更改至主節點目錄。然后我們運行命令 bin/elasticsearch-setup-passwords auto。這將會為不同的內部堆棧用戶生成隨機密碼。或者,您也可以跳過 auto 參數,改為通過 interactive 參數手動定義密碼。請記錄這些密碼,我們很快就會再次用到這些密碼。
- 保存記錄好的密碼
在 Kibana 中配置基於角色的訪問控制 (RBAC)
- 進入
Kibana容器docker exec -it containerid bash - 文本編輯器打開
config/kibana.yml文件 - 找到類似下面的代碼行
#elasticsearch.username: "user"
#elasticsearch.password: "pass"
對 username 和 password 字段取消注釋,方法是刪除代碼行起始部分的 # 符號。將 "user" 更改為 "kibana",然后將 "pass" 更改為 setup-passwords 命令告訴我們的任何 Kibana 密碼。保存文件,然后我們便可通過運行 bin/kibana 啟動 Kibana 了。
