Elasticsearch รับบทบาท

Elasticsearch Rab Bthbath



“Elasticsearch เป็นเครื่องมือค้นหาและการวิเคราะห์ที่มีประสิทธิภาพและหลากหลายอย่างเหลือเชื่อ สามารถนำเข้า จัดระเบียบ จัดเรียง รวบรวม และจัดการข้อมูลข้อความจำนวนมากได้อย่างรวดเร็ว

แม้จะมีทั้งหมดนั้น คุณลักษณะที่โดดเด่นที่สุดอย่างหนึ่งใน Elasticsearch และระบบนิเวศทั้งหมดก็คือคุณลักษณะด้านความปลอดภัยที่รัดกุม Elasticsearch มีคุณสมบัติต่างๆ เช่น การลงนามคำขอ HTTP และอนุญาตให้เฉพาะผู้ใช้ที่พิสูจน์ตัวตนแล้วเท่านั้นที่ดำเนินการกับคลัสเตอร์ได้







คุณลักษณะด้านความปลอดภัยอีกประการหนึ่งใน Elasticsearch คือการใช้ผู้ใช้และบทบาท Elasticsearch อนุญาตให้คุณกำหนดบทบาทเฉพาะให้กับผู้ใช้ในคลัสเตอร์ สิ่งเหล่านี้จะถูกใช้เพื่อกำหนดการกระทำที่ชื่อผู้ใช้สามารถทำได้บนคลัสเตอร์



Elasticsearch จะกำหนดบทบาทเริ่มต้นให้กับผู้ใช้ทั้งหมดที่สร้างในคลัสเตอร์ บทบาทเริ่มต้นช่วยให้ผู้ใช้สามารถเข้าถึงปลายทางการตรวจสอบความถูกต้อง ซึ่งมีหน้าที่ในการเปลี่ยนรหัสผ่าน เรียกข้อมูลผู้ใช้ ฯลฯ”



หมายเหตุ: บทบาทเริ่มต้นถูกกำหนดให้กับผู้ใช้ที่ไม่ระบุชื่อด้วย





แก่นของบทช่วยสอนนี้คือการให้พื้นฐานของบทบาท Elasticsearch แก่คุณ เมื่อใช้บทช่วยสอนนี้ คุณจะค้นพบวิธีดึงบทบาทในขอบเขตดั้งเดิมของ Elasticsearch และดูบทบาทที่กำหนดให้กับชื่อผู้ใช้เฉพาะ

มาดำดิ่งกัน



Elasticsearch รับบทบาท API

เราใช้ Get Roles API เพื่อดึงข้อมูลเกี่ยวกับบทบาทในคลัสเตอร์ Elasticsearch ไวยากรณ์คำขอเป็นดังที่แสดง:

รับ / _ความปลอดภัย / บทบาท


แบบสอบถามข้างต้นควรส่งคืนบทบาททั้งหมดในระบบ

ในการดึงข้อมูลเกี่ยวกับบทบาทเฉพาะ คุณสามารถใช้ไวยากรณ์ดังที่แสดง:

รับ / _ความปลอดภัย / บทบาท /< ชื่อ >


หมายเหตุ: API นี้ต้องการให้ผู้ใช้มีสิทธิ์ manage_security บนคลัสเตอร์

หากคำขอสำเร็จ แบบสอบถามควรส่งคืนอาร์เรย์ของบทบาท

ตัวอย่างที่ 1 – ดึงบทบาททั้งหมดในคลัสเตอร์

ตัวอย่างคำขอด้านล่างจะดึงบทบาททั้งหมดในคลัสเตอร์ Elasticsearch:

curl -XGET “http://localhost:9200/_security/role?pretty=true” -ชม 'kbn-xsrf: กำลังรายงาน'


ผลลัพธ์ตัวอย่างแสดงอยู่ด้านล่าง:

{
'apm_user' : {
'กลุ่ม' : [ ] ,
'ดัชนี' : [
{
'ชื่อ' : [
'แปม-*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,
{
'ชื่อ' : [
'หน้าต่าง-ประมาณ.*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,
{
'ชื่อ' : [
'หน้าต่าง-ประมาณ-*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,
{
'ชื่อ' : [
'เมตริก-apm.*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,
{
'ชื่อ' : [
'เมตริก-apm-*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,
{
'ชื่อ' : [
'ร่องรอย-apm.*'
] ,
'สิทธิพิเศษ' : [
'อ่าน' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : เท็จ
} ,


หมายเหตุ: เอาต์พุตด้านบนถูกตัดทอนสำหรับขอบเขตของบทช่วยสอนนี้

ตัวอย่างที่ 2 – รับข้อมูลเกี่ยวกับบทบาทเฉพาะ

ตัวอย่างด้านล่างส่งคืนข้อมูลเกี่ยวกับบทบาท kibana_admin

curl -XGET “http://localhost:9200/_security/role/kibana_admin” -ชม 'kbn-xsrf: กำลังรายงาน'


ข้อมูลบทบาทที่ได้จะเป็นดังที่แสดง:

{
'kibana_admin' : {
'กลุ่ม' : [ ] ,
'ดัชนี' : [ ] ,
'แอพพลิเคชั่น' : [
{
'แอปพลิเคชัน' : 'คิบานะ-.คิบานะ' ,
'สิทธิพิเศษ' : [
'ทั้งหมด'
] ,
'ทรัพยากร' : [
'*'
]
}
] ,
'run_as' : [ ] ,
'ข้อมูลเมตา' : {
'_ที่สงวนไว้' : จริง
} ,
'transient_metadata' : {
'เปิดใช้งาน' : จริง
}
}
}

ดึงข้อมูลบทบาทใน YAML

โดยค่าเริ่มต้น API รับบทบาทจะส่งคืนผลลัพธ์ในรูปแบบ JSON อย่างไรก็ตาม คุณสามารถเลือกรูปแบบอื่นได้โดยใช้พารามิเตอร์รูปแบบ

ไวยากรณ์เป็นดังที่แสดง:

รับ / _ความปลอดภัย / บทบาท? รูปแบบ =json / yaml


ตัวอย่างเช่น ในการดึงข้อมูลเกี่ยวกับบทบาท kibana_admin ในรูปแบบ YAML เราสามารถเรียกใช้:

curl -XGET 'http://localhost:9200/_security/role/kibana_admin?format=yaml' -ชม 'kbn-xsrf: กำลังรายงาน'


ผลลัพธ์ที่ได้:

---
kibana_admin:
กลุ่ม: [ ]
ดัชนี: [ ]
แอปพลิเคชัน:
- แอปพลิเคชัน: 'คิบานะ-.คิบานะ'
สิทธิพิเศษ:
- 'ทั้งหมด'
ทรัพยากร:
- '*'
run_as: [ ]
ข้อมูลเมตา:
_ที่สงวนไว้: จริง
transient_metadata:
เปิดใช้งาน: จริง

ดูบทบาทสำหรับผู้ใช้เฉพาะ

หากคุณต้องการดูข้อมูลเกี่ยวกับชื่อผู้ใช้เฉพาะ (รวมถึงบทบาทของพวกเขา) คุณสามารถใช้คำขอดังที่แสดง:

รับ / _ความปลอดภัย / ผู้ใช้


ตัวอย่างเช่น สมมติว่าเรามีชื่อผู้ใช้ “linuxhint” เราสามารถดึงข้อมูลผู้ใช้นั้นดังที่แสดง:

curl -XGET “http://locahost:9200/_security/user/linuxhint?format=yaml” -ชม 'kbn-xsrf: กำลังรายงาน'


คำขอข้างต้นควรส่งคืนข้อมูลเกี่ยวกับผู้ใช้ในรูปแบบ YAML ดังที่แสดง:

---
ลินุกซ์:
ชื่อผู้ใช้: 'ลินุกซ์'
บทบาท:
- 'ผู้ชม'
- 'watcher_user'
ชื่อเต็ม: 'linuxhint.com'
อีเมล: ' [ป้องกันอีเมล] '
ข้อมูลเมตา: { }
เปิดใช้งาน: จริง


เราจะเห็นว่าผู้ใช้มีบทบาทผู้ดูและผู้เฝ้าติดตาม

ดูบทบาทใน Kibana

หากคุณไม่ต้องการใช้ cat roles API คุณสามารถดูบทบาท Elasticsearch ใน Kibana ได้โดยไปที่ Management -> Stack Management


ถัดไป ไปที่ความปลอดภัย -> บทบาท


คุณสามารถดูและจัดการบทบาทได้

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีใช้ Elasticsearch Roles API เพื่อดูข้อมูลเกี่ยวกับบทบาทเฉพาะในคลัสเตอร์ คุณยังค้นพบวิธีดูบทบาทของชื่อผู้ใช้ที่กำหนดโดยใช้ API ของผู้ใช้

ขอบคุณที่อ่าน!