我正在使用 aws OpenSearch 查看实时数据分析。
我正在使用以下角色为我的用户提供对仪表板的只读访问权限,如上所述此处
但由于“kibana_user”角色中的某些权限,用户仍然可以编辑仪表板。因此,我尝试使用 OpenSearch 内置功能创建重复角色,并从重复角色中删除管理和删除权限,并将该角色分配给我的用户。但是这次用户无法查看仪表板和仪表板列表即使我不删除管理和删除权限,我在浏览器中收到以下错误
[索引:数据/读取/搜索]和用户[name = test-user-1,backend_roles = [],requestedTenant =]没有权限:security_exception
我尝试授予“indices:data/read/search”此角色权限以及更多权限,但没有成功。有什么解决办法吗
我用过:
kibana_all_read
read
这似乎可行,他们可以将仪表板置于编辑模式,但无法保存。
只读仪表板用户的标准方法如下:
my-readonly-role
。cluster_composite_ops_ro
集群权限。logs.*
。read
、indices:admin/resolve/index
。My-Tenant
read
、write
my-readonly-role
和 opensearch_dashboards_read_only
注意: 这是针对 OpenSearch 版本 1.1 进行测试的。
这是代表上述步骤的 API 块:
{
"cluster_permissions": ["cluster_composite_ops_ro"],
"index_permissions": [
{
"index_patterns": ["logs.*"],
"dls": "",
"fls": [],
"masked_fields": [],
"allowed_actions": ["read", "indices:admin/resolve/index"]
}
],
"tenant_permissions": [
{
"tenant_patterns": ["My-Tenant"],
"allowed_actions": ["read", "write"]
}
]
}
我遇到了同样的问题,这似乎对我有用。
第 1 步: 创建一个新的自定义角色,在本例中我们将其命名为“my-readonly-role”。
以下是实现上述步骤的 API 负载示例:
{
"cluster_permissions": [
"cluster_composite_ops_ro"
],
"index_permissions": [
{
"index_patterns": ["some_pattern*"],
"dls": "",
"fls": [],
"masked_fields": [],
"allowed_actions": ["read", "indices:data/read/search*"]
},
{
"index_patterns": [".kibana*", ".opensearch_dashboards*"],
"dls": "",
"fls": [],
"masked_fields": [],
"allowed_actions": ["read"]
}
],
"tenant_permissions": [
{
"tenant_patterns": ["*"],
"allowed_actions": ["read"]
}
]
}
第 2 步: 将您的 backend_roles 和/或用户分配给新的自定义角色“my-readonly-role”以及开箱即用的角色“opensearch_dashboards_read_only”。
可能有更好的方法来做到这一点,但说实话,最终用户体验并不好,这意味着只读用户仍然可以单击编辑仪表板并继续更改内容,但在尝试保存时会收到错误。但至少这使他们无法保存仪表板更改,并且还阻止/限制他们导航到 Web UI 的“非仪表板”部分(安全性、堆栈管理等)。