“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 เราสามารถเรียกใช้:
ผลลัพธ์ที่ได้:
kibana_admin:
กลุ่ม: [ ]
ดัชนี: [ ]
แอปพลิเคชัน:
- แอปพลิเคชัน: 'คิบานะ-.คิบานะ'
สิทธิพิเศษ:
- 'ทั้งหมด'
ทรัพยากร:
- '*'
run_as: [ ]
ข้อมูลเมตา:
_ที่สงวนไว้: จริง
transient_metadata:
เปิดใช้งาน: จริง
ดูบทบาทสำหรับผู้ใช้เฉพาะ
หากคุณต้องการดูข้อมูลเกี่ยวกับชื่อผู้ใช้เฉพาะ (รวมถึงบทบาทของพวกเขา) คุณสามารถใช้คำขอดังที่แสดง:
รับ / _ความปลอดภัย / ผู้ใช้
ตัวอย่างเช่น สมมติว่าเรามีชื่อผู้ใช้ “linuxhint” เราสามารถดึงข้อมูลผู้ใช้นั้นดังที่แสดง:
คำขอข้างต้นควรส่งคืนข้อมูลเกี่ยวกับผู้ใช้ในรูปแบบ YAML ดังที่แสดง:
ลินุกซ์:
ชื่อผู้ใช้: 'ลินุกซ์'
บทบาท:
- 'ผู้ชม'
- 'watcher_user'
ชื่อเต็ม: 'linuxhint.com'
อีเมล: ' [ป้องกันอีเมล] '
ข้อมูลเมตา: { }
เปิดใช้งาน: จริง
เราจะเห็นว่าผู้ใช้มีบทบาทผู้ดูและผู้เฝ้าติดตาม
ดูบทบาทใน Kibana
หากคุณไม่ต้องการใช้ cat roles API คุณสามารถดูบทบาท Elasticsearch ใน Kibana ได้โดยไปที่ Management -> Stack Management
ถัดไป ไปที่ความปลอดภัย -> บทบาท
คุณสามารถดูและจัดการบทบาทได้
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีใช้ Elasticsearch Roles API เพื่อดูข้อมูลเกี่ยวกับบทบาทเฉพาะในคลัสเตอร์ คุณยังค้นพบวิธีดูบทบาทของชื่อผู้ใช้ที่กำหนดโดยใช้ API ของผู้ใช้
ขอบคุณที่อ่าน!