创建或更新角色 API编辑

[预览] 此功能处于技术预览阶段,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能支持 SLA 的约束。 创建新的 Kibana 角色,或更新现有角色的属性。Kibana 角色存储在 Elasticsearch 原生领域中。

请求编辑

PUT <kibana 主机>:<端口>/api/security/role/my_kibana_role

先决条件编辑

要使用创建或更新角色 API,您必须具有 manage_security 集群权限。

请求正文编辑

元数据
(可选,对象)在 元数据 对象中,以 _ 开头的键保留供系统使用。
elasticsearch
(可选,对象)Elasticsearch 集群和索引权限。有效键包括 clusterindicesremote_indicesrun_as。有关更多信息,请参阅 定义角色
kibana

(列表)指定角色的 Kibana 权限 的对象。

kibana 的属性
基本
(可选,列表)基本权限。指定时,基准必须为 ["all"]["read"]。指定 基本 权限后,您将无法使用 功能 部分。“all”授予对指定空间的所有 Kibana 功能的读/写访问权限。“read”授予对指定空间的所有 Kibana 功能的只读访问权限。
功能
(对象)包含特定功能的权限。指定 功能 权限后,您将无法使用 基本 部分。要检索可用功能列表,请使用 功能 API
空间
(列表)应用权限的空间。要授予对所有空间的访问权限,请设置为 ["*"],或省略该值。

查询参数编辑

仅创建
(可选,布尔值)如果为 true,则如果角色已存在,则阻止覆盖该角色。

响应代码编辑

204
表示调用成功。
409
createOnly 为 true 时,表示与现有角色冲突。

示例编辑

授予对所有空间中各种功能的访问权限

$ curl -X PUT api/security/role/my_kibana_role
{
  "metadata": {
    "version": 1
  },
  "elasticsearch": {
    "cluster": [ ],
    "indices": [ ]
  },
  "kibana": [
    {
      "base": [ ],
      "feature": {
       "discover": [ "all" ],
        "visualize": [ "all" ],
        "dashboard": [ "all" ],
        "dev_tools": [ "read" ],
        "advancedSettings": [ "read" ],
        "indexPatterns": [ "read" ],
        "graph": [ "all" ],
        "apm": [ "read" ],
        "maps": [ "read" ],
        "canvas": [ "read" ],
        "infrastructure": [ "all" ],
        "logs": [ "all" ],
        "uptime": [ "all"  ]
      },
      "spaces": [ "*" ]
    }
  ]
}

仅授予对市场营销空间的仪表板访问权限

$ curl -X PUT api/security/role/my_kibana_role
{
  "metadata": {
    "version": 1
  },
  "elasticsearch": {
    "cluster": [ ],
    "indices": [ ]
  },
  "kibana": [
    {
      "base": [ ],
      "feature": {
        "dashboard": [ "read" ]
      },
      "spaces": [ "marketing" ]
    }
  ]
}

授予对默认空间中所有功能的完全访问权限

$ curl -X PUT api/security/role/my_kibana_role
{
  "metadata": {
    "version": 1
  },
  "elasticsearch": {
    "cluster": [ ],
    "indices": [ ]
  },
  "kibana": [
    {
      "base": [ "all" ],
      "feature": { },
      "spaces": [ "default" ]
    }
  ]
}

授予对不同空间的不同访问权限

$ curl -X PUT api/security/role/my_kibana_role
{
  "metadata": {
    "version": 1
  },
  "elasticsearch": {
    "cluster": [ ],
    "indices": [ ]
  },
  "kibana": [
    {
      "base": [ ],
      "feature": {
        "discover": [ "all" ],
        "dashboard": [ "all" ]
      },
      "spaces": [ "default" ]
    },
    {
      "base": [ "read"] ,
      "spaces": [ "marketing", "sales" ]
    }
  ]
}

授予对 Kibana 和 Elasticsearch 的访问权限

$ curl -X PUT api/security/role/my_kibana_role
{
  "metadata": {
    "version": 1
  },
  "elasticsearch": {
    "cluster": [ "all" ],
    "indices": [
      {
        "names": [ "index1", "index2" ],
        "privileges": [ "all" ]
      }
    ],
    "remote_indices": [
      {
        "clusters": [ "remote_cluster1" ],
        "names": [ "remote_index1", "remote_index2" ],
        "privileges": [ "all" ]
      }
    ]
  },
  "kibana": [
    {
      "base": [ "all" ],
      "feature": { },
      "spaces": [ "default" ]
    }
  ]
}