Creación de usuarios

Tengo un dashboard con información global de un país y sus respectivas regiones.
Ahora quiero crear usuarios para este dashboard, pero que sólo puedan acceder a la información de su región. ¿Cómo puedo hacerlo?. Gracias

Hola @JorgeGV , bienvenido a la comunidad de Elastic.

Has mirado la seguridad a nivel de documento? puedes crear roles que tienen acceso a documentos que cumplen un cierto criterio, la región en tu caso. Asignando tus usuarios a roles que mapean las regiones que quieres que vean debería de cumplir tu requerimiento

Que tipo de licencia tengo que tener para utilizar esa funcionalidad?.
He intentado aplicar una regla a un rol y

{
  "error": {
    "root_cause": [
      {
        "type": "security_exception",
        "reason": "current license is non-compliant for [field and document level security]",
        "license.expired.feature": "field and document level security"
      }
    ],
    "type": "security_exception",
    "reason": "current license is non-compliant for [field and document level security]",
    "license.expired.feature": "field and document level security"
  },
  "status": 403
}```

Hola, la licencia necesaria para seguridad a nivel de campo y documento es Platinum, aquí hay más detalles sobre el mapeo de características y licencias

Otra opción menos flexible pero que debería servirte es crear roles con una consulta asignada tal y como se documenta en la sección index => query aquí:

Mira el código que adjunto que hace lo siguiente:

  • Borrar recursos (sólo para volver a ejecutar)
  • Crear un rol que da acceso a un único índice filtrando por un término concreto y da acceso a Discover y Dashboards en Kibana para un espacio concreto
  • Crear un usuario y asignarle ese rol
  • Crear un índice con algunos datos.
/* Clean up */
DELETE _security/role/discuss-328845-spain
DELETE _security/user/test_spain
DELETE discuss-328845-data

/* Create a role that can access an index with a certain query, certain Kibana features from a space called "public"*/
POST _security/role/discuss-328845-spain
{
  "indices": [
    {
      "names": ["discuss-328845-data"],
      "privileges": [
        "read",
        "view_index_metadata"
      ],
      "query": "{\"match\": {\"country\": \"spain\"}}"
    }
  ],
  "applications": [
      {
        "application": "kibana-.kibana",
        "privileges": [
          "feature_dashboard.read",
          "feature_discover.read",
          "feature_visualize.read"
        ],
        "resources": [
          "space:public"
        ]
      }
    ]
}

/* Create a user for the given role */
POST _security/user/test_spain
{
  "password": "328845spain",
  "roles": ["discuss-328845-spain"]
}

/* Create a test index */
PUT discuss-328845-data
{
  "mappings": {
    "properties": {
      "name": { "type": "text"},
      "country": { "type": "keyword"}
    }
  }
}

/* Add some data to the index */
POST discuss-328845-data/_bulk
{ "index": {}}
{"name": "rice", "country": "italy"}
{ "index": {}}
{"name": "tomato", "country": "italy"}
{ "index": {}}
{"name": "towel", "country": "italy"}
{ "index": {}}
{"name": "soap", "country": "spain"}
{ "index": {}}
{"name": "water", "country": "spain"}
{ "index": {}}
{"name": "orange", "country": "spain"}
{ "index": {}}
{"name": "cheese", "country": "france"}
{ "index": {}}
{"name": "wine", "country": "france"}
{ "index": {}}
{"name": "cologne", "country": "france"}

Luego en Kibana he creado en el espacio public un Data view y un cuardro de mando que con mi usuario principal veo así:

Pero al hacer login con el usuario test_spain veo sólo lo sdatos country: spain:

¿Sirve esto?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.