已保存对象的访问控制列表
2.18 版引入
您可以使用访问控制列表 (ACL) 来管理已保存对象的权限,提供授权 (AuthZ) 功能而无需后端插件集成。
理解 ACL 类型
ACL 在两个级别应用
- 工作区 ACL:工作区对象从其父工作区继承权限。有关更多信息,请参阅工作区 ACL。
- 对象 ACL:每个单独的对象可以有自己的 ACL 策略。对这些对象的所有操作都必须通过 ACL 策略验证。
启用 ACL 功能
您必须先启用 ACL 功能,然后才能定义任何访问控制。启用方法如下:
- 打开您的
opensearch_dashboards.yml
文件。 - 使用
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"]
},
}
}