«Elasticsearch est un moteur de recherche et d'analyse incroyablement polyvalent et puissant. Il peut rapidement ingérer, organiser, trier, agréger et gérer de grandes quantités de données de texte.
Malgré tout cela, l'une des fonctionnalités les plus remarquables d'Elasticsearch et de tout son écosystème est les fonctionnalités de sécurité à ferr. Elasticsearch comprend des fonctionnalités telles que la signature des demandes HTTP et permet uniquement aux utilisateurs authentifiés d'effectuer des opérations sur le cluster.
Une autre fonctionnalité de sécurité dans Elasticsearch est l'utilisation des utilisateurs et des rôles. Elasticsearch vous permet d'attribuer des rôles spécifiques aux utilisateurs du cluster. Ceux-ci sont ensuite utilisés pour déterminer les actions que le nom d'utilisateur peut effectuer sur le cluster.
Elasticsearch attribuera un rôle par défaut à tous les utilisateurs créés dans le cluster. Le rôle par défaut permet aux utilisateurs d'accéder au point de terminaison Auth, qui est responsable de la modification des mots de passe, de la récupération des informations des utilisateurs, etc."
Remarque: Le rôle par défaut est également attribué aux utilisateurs anonymes.
Le cœur de ce tutoriel est de vous donner les principes fondamentaux des rôles Elasticsearch. En utilisant ce tutoriel, vous découvrirez comment récupérer les rôles dans le domaine natif d'Elasticsearch et afficher les rôles attribués à un nom d'utilisateur spécifique.
Plongeons-nous dans.
Elasticsearch Get Rôles API
Nous utilisons l'API Get Rôles pour récupérer des informations sur les rôles dans le cluster Elasticsearch. La syntaxe de demande est comme indiqué:
Get / _Security / Rôle
La requête ci-dessus doit renvoyer tous les rôles du système.
Pour récupérer des informations sur un rôle spécifique, vous pouvez utiliser la syntaxe comme indiqué:
Get / _security / role /
Remarque: Cette API nécessite que l'utilisateur ait le privilège Manage_Security sur le cluster.
Si la demande est réussie, la requête doit retourner un tableau de rôles.
Exemple 1 - Récupérer tous les rôles dans le cluster
L'exemple de demande ci-dessous récupérera tous les rôles dans le cluster Elasticsearch:
curl -xget "http: // localhost: 9200 / _security / rôle?joli = vrai "-h" kbn-xsrf: reporting "
Un exemple de sortie est illustré ci-dessous:
"apm_user":
"grappe": [],
"Indices": [
"des noms": [
"APM- *"
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
"des noms": [
"Logs-APM.* "
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
"des noms": [
"Logs-APM- *"
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
"des noms": [
"Metrics-APM.* "
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
"des noms": [
"Metrics-APM- *"
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
"des noms": [
"Traces-APM.* "
]],
"Privilèges": [
"lire",
"View_index_metadata"
]],
"allow_restritt_indices": faux
,
Remarque: la sortie ci-dessus a été tronquée pour la portée de ce tutoriel.
Exemple 2 - Obtenez des informations sur un rôle spécifique
L'exemple ci-dessous renvoie des informations sur le rôle de Kibana_admin.
curl -xget "http: // localhost: 9200 / _security / role / kibana_admin" -h "kbn-xsrf: reportage"
Les informations sur le rôle résultant sont comme indiqué:
"kibana_admin":
"grappe": [],
"Indices": [],
"applications": [
"Application": "Kibana-.kibana ",
"Privilèges": [
"tous"
]],
"ressources": [
"*"
]]
]],
"courir comme": [],
"métadonnées":
"_reserved": vrai
,
"transity_metadata":
"activé": vrai
Récupérer les informations sur les rôles dans YAML
Par défaut, l'API GET ROLES renverra le résultat au format JSON. Cependant, vous pouvez choisir un format différent en utilisant le paramètre de format.
La syntaxe est comme indiqué:
Get / _Security / Rôle?format = json / yaml
Par exemple, pour récupérer les informations sur le rôle Kibana_admin au format YAML, nous pouvons courir:
curl -xget "http: // localhost: 9200 / _security / role / kibana_admin?format = yaml "-h" kbn-xsrf: reporting "
Sortie résultante:
---
kibana_admin:
grappe: []
Indices: []
applications:
- Application: "Kibana-.kibana "
Privilèges:
- "tous"
ressources:
- "*"
courir comme: []
métadonnées:
_Resservé: vrai
transity_metadata:
Activé: vrai
Afficher les rôles pour un utilisateur spécifique
Si vous souhaitez afficher des informations sur un nom d'utilisateur spécifique (y compris leurs rôles), vous pouvez utiliser la demande comme indiqué:
Get / _Security / User
Par exemple, supposons que nous ayons un nom d'utilisateur «LinuxHint», nous pouvons récupérer ces informations utilisateur comme indiqué:
curl -xget "http: // locahost: 9200 / _security / user / linuxhint?format = yaml "-h" kbn-xsrf: reporting "
La demande ci-dessus doit renvoyer des informations sur l'utilisateur au format YAML comme indiqué:
---
Linuxhint:
Nom d'utilisateur: "Linuxhint"
les rôles:
- "téléspectateur"
- "Watcher_User"
full_name: "Linuxhint.com "
Email: "Admin @ Linuxhint.com "
métadonnées:
Activé: vrai
Nous pouvons voir que l'utilisateur a les rôles de la visionneuse et de Watcher_User.
Voir les rôles dans Kibana
Si vous ne souhaitez pas utiliser l'API Cat Rôles Cat, vous pouvez voir les rôles ElasticSearch dans Kibana en naviguant vers la gestion -> Management Stack.
Ensuite, accédez à la sécurité -> rôles
Vous pouvez ensuite afficher et gérer les rôles.
Conclusion
Dans cet article, vous avez appris à utiliser l'API Elasticsearch Rôles pour afficher des informations sur des rôles spécifiques dans le cluster. Vous avez également découvert comment afficher les rôles d'un nom d'utilisateur donné à l'aide de l'API utilisateur.
Merci d'avoir lu!