Elasticsearch Λάβετε ρόλους

Elasticsearch Labete Rolous



«Το Elasticsearch είναι μια απίστευτα ευέλικτη και ισχυρή μηχανή αναζήτησης και ανάλυσης. Μπορεί να απορροφήσει γρήγορα, να οργανώσει, να ταξινομήσει, να συγκεντρώσει και να διαχειριστεί μεγάλες ποσότητες δεδομένων κειμένου.

Παρ 'όλα αυτά, ένα από τα πιο σημαντικά χαρακτηριστικά στο Elasticsearch και σε ολόκληρο το οικοσύστημά του είναι τα σιδερένια χαρακτηριστικά ασφαλείας. Το Elasticsearch περιλαμβάνει λειτουργίες όπως η υπογραφή αιτημάτων HTTP και επιτρέπει μόνο σε πιστοποιημένους χρήστες να εκτελούν λειτουργίες στο σύμπλεγμα.







Ένα άλλο χαρακτηριστικό ασφαλείας στο Elasticsearch είναι η χρήση χρηστών και ρόλων. Το Elasticsearch σάς επιτρέπει να εκχωρείτε συγκεκριμένους ρόλους σε χρήστες στο σύμπλεγμα. Στη συνέχεια χρησιμοποιούνται για τον προσδιορισμό των ενεργειών που μπορεί να εκτελέσει το όνομα χρήστη στο σύμπλεγμα.



Το Elasticsearch θα εκχωρήσει έναν προεπιλεγμένο ρόλο σε όλους τους χρήστες που δημιουργήθηκαν στο σύμπλεγμα. Ο προεπιλεγμένος ρόλος επιτρέπει στους χρήστες να έχουν πρόσβαση στο τελικό σημείο εξουσιοδότησης, το οποίο είναι υπεύθυνο για την αλλαγή κωδικών πρόσβασης, την ανάκτηση πληροφοριών χρήστη κ.λπ.



ΣΗΜΕΙΩΣΗ: Ο προεπιλεγμένος ρόλος εκχωρείται επίσης σε ανώνυμους χρήστες.





Ο πυρήνας αυτού του σεμιναρίου είναι να σας δώσει τις βασικές αρχές των ρόλων του Elasticsearch. Χρησιμοποιώντας αυτό το σεμινάριο, θα ανακαλύψετε πώς να ανακτήσετε τους ρόλους στο εγγενές πεδίο του Elasticsearch και να προβάλετε τους ρόλους που έχουν εκχωρηθεί σε ένα συγκεκριμένο όνομα χρήστη.

Ας βουτήξουμε.



Elasticsearch Get Roles API

Χρησιμοποιούμε το Get Roles API για να ανακτήσουμε πληροφορίες σχετικά με ρόλους στο σύμπλεγμα Elasticsearch. Η σύνταξη του αιτήματος είναι όπως φαίνεται:

ΠΑΙΡΝΩ / _ασφάλεια / ρόλος


Το παραπάνω ερώτημα θα πρέπει να επιστρέψει όλους τους ρόλους στο σύστημα.

Για να ανακτήσετε πληροφορίες σχετικά με έναν συγκεκριμένο ρόλο, μπορείτε να χρησιμοποιήσετε τη σύνταξη όπως φαίνεται:

ΠΑΙΡΝΩ / _ασφάλεια / ρόλος /< όνομα >


ΣΗΜΕΙΩΣΗ: Αυτό το API απαιτεί από τον χρήστη να έχει το δικαίωμα manager_security στο σύμπλεγμα.

Εάν το αίτημα είναι επιτυχές, το ερώτημα θα πρέπει να επιστρέψει μια σειρά ρόλων.

Παράδειγμα 1 – Ανάκτηση όλων των ρόλων στο σύμπλεγμα

Το παρακάτω παράδειγμα αίτησης θα ανακτήσει όλους τους ρόλους στο σύμπλεγμα Elasticsearch:

μπούκλα -XGET “http://localhost:9200/_security/role?pretty=true” 'kbn-xsrf: αναφορά'


Ένα παράδειγμα εξόδου φαίνεται παρακάτω:

{
'apm_user' : {
'σύμπλεγμα' : [ ] ,
'δείκτες' : [
{
'ονόματα' : [
'apm-*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,
{
'ονόματα' : [
'παράθυρο-περίπου.*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,
{
'ονόματα' : [
'window-approx-*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,
{
'ονόματα' : [
'metrics-apm.*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,
{
'ονόματα' : [
'metrics-apm-*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,
{
'ονόματα' : [
'ίχνη-πμ.*'
] ,
'προνόμια' : [
'ανάγνωση' ,
'view_index_metadata'
] ,
'allow_restricted_indices' : ψευδής
} ,


ΣΗΜΕΙΩΣΗ: Η παραπάνω έξοδος έχει περικοπεί για το εύρος αυτού του σεμιναρίου.

Παράδειγμα 2 – Λάβετε πληροφορίες σχετικά με έναν συγκεκριμένο ρόλο

Το παρακάτω παράδειγμα επιστρέφει πληροφορίες σχετικά με τον ρόλο kibana_admin.

μπούκλα -XGET “http://localhost:9200/_security/role/kibana_admin” 'kbn-xsrf: αναφορά'


Οι πληροφορίες ρόλου που προκύπτουν είναι όπως φαίνεται:

{
'kibana_admin' : {
'σύμπλεγμα' : [ ] ,
'δείκτες' : [ ] ,
'εφαρμογές' : [
{
'εφαρμογή' : 'kibana-.kibana' ,
'προνόμια' : [
'όλα'
] ,
'πόροι' : [
'*'
]
}
] ,
'run_as' : [ ] ,
'μεταδεδομένα' : {
'_κατοχυρωμένα' : αληθής
} ,
'transient_metdata' : {
'ενεργοποιημένο' : αληθής
}
}
}

Ανάκτηση πληροφοριών ρόλου στο YAML

Από προεπιλογή, το get roles API θα επιστρέψει το αποτέλεσμα σε μορφή JSON. Ωστόσο, μπορείτε να επιλέξετε διαφορετική μορφή χρησιμοποιώντας την παράμετρο μορφής.

Η σύνταξη είναι όπως φαίνεται:

ΠΑΙΡΝΩ / _ασφάλεια / ρόλος? μορφή =json / yaml


Για παράδειγμα, για να ανακτήσουμε τις πληροφορίες σχετικά με τον ρόλο kibana_admin σε μορφή YAML, μπορούμε να εκτελέσουμε:

μπούκλα -XGET 'http://localhost:9200/_security/role/kibana_admin?format=yaml' 'kbn-xsrf: αναφορά'


Προκύπτουσα έξοδος:

---
kibana_admin:
σύμπλεγμα: [ ]
δείκτες: [ ]
εφαρμογές:
- εφαρμογή: 'kibana-.kibana'
προνόμια:
- 'όλα'
πόροι:
- '*'
run_as: [ ]
μεταδεδομένα:
_κατοχυρωμένα: αληθής
μεταβατικά_μεταδεδομένα:
ενεργοποιημένο: αληθής

Προβολή ρόλων για έναν συγκεκριμένο χρήστη

Εάν θέλετε να δείτε πληροφορίες σχετικά με ένα συγκεκριμένο όνομα χρήστη (συμπεριλαμβανομένων των ρόλων του), μπορείτε να χρησιμοποιήσετε το αίτημα όπως φαίνεται:

ΠΑΙΡΝΩ / _ασφάλεια / χρήστης


Για παράδειγμα, ας υποθέσουμε ότι έχουμε ένα όνομα χρήστη 'linuxint' και μπορούμε να ανακτήσουμε αυτές τις πληροφορίες χρήστη όπως φαίνεται:

μπούκλα -XGET “http://locahost:9200/_security/user/linuxhint?format=yaml” 'kbn-xsrf: αναφορά'


Το παραπάνω αίτημα θα πρέπει να επιστρέψει πληροφορίες σχετικά με τον χρήστη σε μορφή YAML όπως φαίνεται:

---
linuxhit:
όνομα χρήστη: 'linux'
ρόλοι:
- 'θεατής'
- 'watcher_user'
πλήρες όνομα: 'linuxint.com'
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: ' [email προστατεύεται] '
μεταδεδομένα: { }
ενεργοποιημένο: αληθής


Μπορούμε να δούμε ότι ο χρήστης έχει τους ρόλους viewer και watcher_user.

Δείτε τους ρόλους στο Kibana

Εάν δεν θέλετε να χρησιμοποιήσετε το API ρόλων γάτας, μπορείτε να προβάλετε τους ρόλους του Elasticsearch στο Kibana μεταβαίνοντας στο Management -> Stack Management.


Στη συνέχεια, μεταβείτε στην επιλογή Ασφάλεια -> Ρόλοι


Στη συνέχεια, μπορείτε να προβάλετε και να διαχειριστείτε τους ρόλους.

συμπέρασμα

Σε αυτό το άρθρο, μάθατε πώς να χρησιμοποιείτε το Elasticsearch Roles API για την προβολή πληροφοριών σχετικά με συγκεκριμένους ρόλους στο σύμπλεγμα. Ανακαλύψατε επίσης πώς να προβάλλετε τους ρόλους ενός συγκεκριμένου ονόματος χρήστη χρησιμοποιώντας το API χρήστη.

Ευχαριστώ για την ανάγνωση!