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.

GET /_security/_authenticate

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.

© Copyright 2024. Tots els drets reservats