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.

