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.