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" : "john.doe@example.com"
}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" : "admin.user@example.com"
}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" : "data.writer@example.com"
}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
