基於x-pack的使用者管理(一)
阿新 • • 發佈:2020-07-15
基於x-pack的使用者管理(一)
“域”(realms)
Elasticsearch安全管理外掛通過使用者認證、使用者授權、加密通訊、審計日誌、IP過濾等多種手段來保證叢集的安全。x-pack的安全外掛可以通過使用者名稱密碼、證書、令牌和其他多種方法實現使用者認證。Elasticsearch支援通過多種服務實現使用者鑑定,這些方式通稱為“域”(realms)。
常見的realms有:
- native
- ldap
- active_directory
- file
- pki
- file
- saml
- oidc
支援安全管理的ES版本
Elasticsearch 從6.8.0/7.1.0後xpack 開源,基礎版不需要授權免費使用,支援使用者認證、授權、監控等功能
Elasticsearch 5.X的版本無法免費使用xpack提供的安全功能
內建使用者和系統使用者
Elasticsearch在開啟安全配置後,會有系統自帶的管理帳號,稱為內建使用者。同時也有自帶的系統使用者。
系統使用者和內建使用者的區別是:內建使用者可以用來登陸,系統使用者是es叢集內部通訊使用的,不能用來登陸,但是可以在審計日誌中看到這些使用者產生的事件。
- 內建使用者
- elastic
- kibana
- beats_system
- apm_system
- remote_monitoring_user
- 系統使用者
- _system
- _xpack
- _xpack_security
使用者資料的儲存
當使用Elasticsearch預設的native服務做使用者認證授權時,使用者資料儲存在.security-7 所引中,索引資料可檢視、修改、刪除
curl -X GET -i 'http://localhost:9200/.security-7/_search' { "took": 3, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 5, "relation": "eq" }, "max_score": 1.0, "hits": [{ "_index": ".security-7", "_type": "_doc", "_id": "reserved-user-kibana", "_score": 1.0, "_source": { "password": "$2a$10$EthtJnnPL9BXDnG2iH8LVedy5s4tOIPrvpZyRSJALw2IIR1ge/jl.", "enabled": true, "type": "reserved-user" } },... }] } }
如何開啟使用者認證和授權功能
-
第一步,開啟安全開關
修改 ES_HOME/config/elasticsearch.yml,新增
xpack.security.enabled: true
-
第二步,初始化內建使用者的密碼
執行 ES_HOME/bin/elasticsearch-set-passwords.sh interactive,通過互動的方式依次設定內建使用者的密碼
-
第三步,登陸
curl -XGET "http://localhost:9200" -u elastic:6789@jkl { "name" : "node-1", "cluster_name" : "my-application", "cluster_uuid" : "gZRcq4pUTFOdZSRy-JHrFQ", "version" : { "number" : "7.2.0", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "508c38a", "build_date" : "2019-06-20T15:54:18.811730Z", "build_snapshot" : false, "lucene_version" : "8.0.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }