AWS OpenSearch 为用户提供只读访问仪表板

问题描述 投票:0回答:4

我正在使用 aws OpenSearch 查看实时数据分析。

我正在使用以下角色为我的用户提供对仪表板的只读访问权限,如上所述此处

  • kibana_user
  • kibana_read_only
  • 只读索引

但由于“kibana_user”角色中的某些权限,用户仍然可以编辑仪表板。因此,我尝试使用 OpenSearch 内置功能创建重复角色,并从重复角色中删除管理和删除权限,并将该角色分配给我的用户。但是这次用户无法查看仪表板和仪表板列表即使我不删除管理和删除权限,我在浏览器中收到以下错误

[索引:数据/读取/搜索]和用户[name = test-user-1,backend_roles = [],requestedTenant =]没有权限:security_exception

我尝试授予“indices:data/read/search”此角色权限以及更多权限,但没有成功。有什么解决办法吗

amazon-web-services kibana opensearch opensearch-dashboards
4个回答
1
投票

我用过:

kibana_all_read
read

这似乎可行,他们可以将仪表板置于编辑模式,但无法保存。


0
投票

只读仪表板用户的标准方法如下:

  1. 为此类用户创建自定义角色:
    my-readonly-role
  2. 添加
    cluster_composite_ops_ro
    集群权限。
  3. 添加任何所需的索引模式以限制访问:
    logs.*
  4. 添加读取访问的索引权限:
    read
    indices:admin/resolve/index
  5. 添加租户模式:
    My-Tenant
  6. 添加租户权限:
    read
    write
  7. 将以下角色映射到所需用户:
    my-readonly-role
    opensearch_dashboards_read_only

注意: 这是针对 OpenSearch 版本 1.1 进行测试的。

创建角色(API)

这是代表上述步骤的 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"]
        }
    ]
}

0
投票

以上对我都不起作用,但这个确实有效。

我什至不知道为什么以及如何。


0
投票

我遇到了同样的问题,这似乎对我有用。

第 1 步: 创建一个新的自定义角色,在本例中我们将其命名为“my-readonly-role”。

  • 如其他帖子和 OpenSearch 文档中所述,它必须具有集群权限“cluster_composite_ops_ro”。
  • 似乎没有很好的记录,仪表板使用的索引的索引权限必须包括允许的操作“读取”和“索引:数据/读取/搜索*”。
  • 似乎也没有很好的记录,您必须为匹配“.kibana *”和“.opensearch_dashboards *”的索引声明索引权限,并且其允许的操作必须包括“读取”。

以下是实现上述步骤的 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 的“非仪表板”部分(安全性、堆栈管理等)。

© www.soinside.com 2019 - 2024. All rights reserved.