已保存对象的访问控制列表

你可以使用访问控制列表(ACL)来管理已保存对象的权限,为已保存对象提供授权能力,而无需后端插件集成。

理解 ACL 类型

ACL 在两个层级上应用:

  1. 工作区 ACL: 工作区对象继承其父工作区的权限。有关详细信息,请参阅 工作区 ACL

  2. 对象 ACL: 每个单独对象可以有自己的 ACL 策略。对这些对象的所有操作都必须通过 ACL 策略验证。

启用 ACL 功能

在定义任何访问控制之前,必须先启用 ACL 功能。启用方法如下:

  1. 打开你的 udbsx_dashboards.yml 文件。

  2. 将权限启用配置为 savedObjects.permission.enabled: true

定义 ACL 权限

ACL 权限使用以下模式定义:

{
  "permissions": {
    "<permission_type_1>": {
        "users": ["<principal_1>", "<principal_2>"],
        "groups": ["<principal_3>", "<principal_4>"]
    }
  }
}

授予已认证用户权限

通配符字符(*)表示授予所有已认证用户权限。下面的示例中,ACL 授予 finance_manager 组工作区管理权限,并授予 finance_analyst 组仪表板创建权限:

{
  "permissions": {
    "write": {
        "groups": ["finance_manager"]
    },
    "library_write": {
        "groups": ["finance_analyst"]
    }
  } 
}

配置混合级别权限

如果希望允许某个用户(例如 user-1)修改对象,同时给予其他人只读访问权限,可以按如下方式配置 ACL 策略:

{
  "permissions": {
    "read": {
        "users": ["*"]
    },
    "write": {
        "users": ["user-1"]
    },
  }
}