El control d'accés basat en rols (RBAC, per les seves sigles en anglès) és una característica essencial per a la seguretat en Elasticsearch. Permet definir permisos específics per a diferents rols d'usuari, assegurant que només els usuaris autoritzats puguin accedir a determinades dades o executar certes operacions.
Conceptes Clau
Rols
Un rol és una col·lecció de permisos que es poden assignar a un o més usuaris. Els permisos poden incloure accions com la lectura, escriptura, esborrat, etc., sobre índexs específics o altres recursos.
Usuaris
Els usuaris són entitats que poden iniciar sessió a Elasticsearch. Cada usuari pot tenir un o més rols assignats, que determinen els permisos que té.
Permisos
Els permisos defineixen les accions que un usuari pot realitzar. Aquests poden ser permisos a nivell de clúster (per exemple, gestionar nodes) o a nivell d'índex (per exemple, llegir o escriure dades).
Configuració de RBAC
Creació de Rols
Per crear un rol, es pot utilitzar l'API de seguretat d'Elasticsearch. A continuació es mostra un exemple de com crear un rol anomenat data_reader
que té permisos de lectura sobre tots els índexs:
PUT /_security/role/data_reader { "cluster": [], "indices": [ { "names": [ "*" ], "privileges": [ "read" ] } ] }
Assignació de Rols a Usuaris
Un cop creat el rol, es pot assignar a un usuari. A continuació es mostra un exemple de com crear un usuari anomenat john_doe
i assignar-li el rol data_reader
:
POST /_security/user/john_doe { "password" : "password123", "roles" : [ "data_reader" ], "full_name" : "John Doe", "email" : "[email protected]" }
Verificació de Permisos
Per verificar els permisos d'un usuari, es pot utilitzar l'API _security/_authenticate
. Aquesta API retorna informació sobre l'usuari autenticat, incloent els rols assignats.
Exemples Pràctics
Exemple 1: Creació d'un Rol d'Administrador
PUT /_security/role/admin { "cluster": ["all"], "indices": [ { "names": [ "*" ], "privileges": [ "all" ] } ] }
Exemple 2: Assignació del Rol d'Administrador a un Usuari
POST /_security/user/admin_user { "password" : "adminpassword", "roles" : [ "admin" ], "full_name" : "Admin User", "email" : "[email protected]" }
Exemple 3: Creació d'un Rol de Lectura i Escriptura per a un Índex Específic
PUT /_security/role/data_writer { "cluster": [], "indices": [ { "names": [ "my_index" ], "privileges": [ "read", "write" ] } ] }
Exemple 4: Assignació del Rol de Lectura i Escriptura a un Usuari
POST /_security/user/data_writer_user { "password" : "writerpassword", "roles" : [ "data_writer" ], "full_name" : "Data Writer User", "email" : "[email protected]" }
Errors Comuns i Consells
Error: Permisos Insuficients
Si un usuari intenta realitzar una acció per a la qual no té permisos, rebrà un error de permisos insuficients. Assegura't que els rols assignats a l'usuari inclouen els permisos necessaris.
Consell: Utilitza Rols Granulars
És una bona pràctica crear rols granulars amb permisos específics en lloc de rols amb permisos massa amplis. Això ajuda a minimitzar els riscos de seguretat.
Error: Contrasenyes Febles
Evita utilitzar contrasenyes febles per als usuaris. Utilitza contrasenyes fortes i considera implementar polítiques de contrasenyes.
Resum
En aquesta secció, hem après sobre el control d'accés basat en rols (RBAC) a Elasticsearch. Hem vist com crear rols, assignar-los a usuaris i verificar els permisos. També hem revisat alguns exemples pràctics i consells per evitar errors comuns. Amb aquests coneixements, pots gestionar de manera efectiva la seguretat i els permisos en el teu clúster d'Elasticsearch.
En el següent tema, explorarem la Auditoria i Compliment per assegurar-nos que el nostre sistema compleix amb les normatives i està ben monitoritzat.
Curs d'Elasticsearch
Mòdul 1: Introducció a Elasticsearch
- Què és Elasticsearch?
- Instal·lant Elasticsearch
- Conceptes Bàsics: Nodes, Clústers i Índexs
- Arquitectura d'Elasticsearch
Mòdul 2: Començant amb Elasticsearch
Mòdul 3: Tècniques Avançades de Cerca
Mòdul 4: Modelatge de Dades i Gestió d'Índexs
Mòdul 5: Rendiment i Escalabilitat
- Optimitzant el Rendiment de la Cerca
- Escalant Elasticsearch
- Monitorització i Manteniment
- Còpia de Seguretat i Restauració
Mòdul 6: Seguretat i Control d'Accés
- Assegurant Elasticsearch
- Autenticació i Autorització d'Usuaris
- Control d'Accés Basat en Rols
- Auditoria i Compliment
Mòdul 7: Integracions i Ecosistema
- Elasticsearch amb Logstash
- Elasticsearch amb Kibana
- Elasticsearch amb Beats
- Elasticsearch amb Altres Eines