今天,我們要來實作 ES 安全性上的設定。
本篇的主題包含有:
那我們就開始吧!
這一部分的實作,我們將可以學到:
ssh server1
./elasticsearch/bin/elasticsearch
ssh server1
./kibana/bin/kibana
<Public_DNS>/app/kibana#/
,會發現可以直接存取 Kibana,並不需要輸入什麼帳號密碼,經過授權才能開啟,接下來我們要針對這點做改進!elasticsearch/config/elasticsearch.yml
),加入下面一行讓安全性的功能啟動:xpack.security.enabled: true
# curl ES server
curl 'server1:9200/_cat/nodes?pretty'
./elasticsearch/bin/elasticsearch-setup-passwords interactive
# user=elastic
curl -u elastic 'server1:9200/_cat/nodes?pretty'
# 創建一個 Kibana keystore 來儲存帳號資訊
./kibana/bin/kibana-keystore create
# 新增使用者帳號
./kibana/bin/kibana-keystore add elasticsearch.username
# 新增使用者密碼
./kibana/bin/kibana-keystore add elasticsearch.password
Security
的區塊啦~Users
或 Roles
,就可以看到一串內建使用者/角色的設置:Dev Tools
:sales_record
的索引:PUT /_security/role/read_only_sales
{
"cluster": [],
"indices": [
{
"names": [ "sales_record" ],
"privileges": ["read", "view_index_metadata"]
}
]
}
sales_user
這個使用者,並賦予對應的角色:read_only_sales
和 kibana_user
(要記得加入 kibana_user
這個角色,否則該使用者將沒辦法登入 Kibana 歐!)POST /_security/user/sales_user
{
"password" : "xxxxxxxx",
"roles" : [ "read_only_sales", "kibana_user" ],
"full_name" : "Sales User",
"email" : "training@elastic.co"
}
elastic
使用者,登出後重新登入 sales_user
使用者:Before
After
Dev Tools
中,先用 GET
來讀取看看,應該要可以拿到東西:GET sales_record/_search
POST sales_record/_doc
{
"product": "4008",
"price": 8.69,
"payment_type": "mastercard",
"card_number": "9378906409894724",
"name": "jack",
"city": "paris",
"country": "france"
}
今天實作了 ES 上安全性的功能,可以看到設置其實還蠻容易的!更進一步的內容,有興趣的同學也可以參考官方的學習資訊:https://www.elastic.co/training/fundamentals-of-securing-elasticsearch
明天開始就要到下一個主題:Elastic SIEM 基礎,這個我也不知道是幹麼的碗糕了!