Link Search Menu Expand Document Documentation Menu

工作流模板安全性

在 OpenSearch 中,自动化工作流配置由 Flow Framework 插件提供。您可以将 Security 插件与 Flow Framework 插件结合使用,以限制非管理员用户执行特定操作。例如,您可能希望某些用户只能创建、更新或删除工作流,而其他用户则只能查看工作流。

所有 Flow Framework 索引都作为系统索引受到保护。只有超级管理员用户或拥有 TLS 证书的管理员用户才能访问系统索引。有关更多信息,请参阅系统索引

Flow Framework 的安全性设置与异常检测的安全性类似。

基本权限

作为管理员用户,您可以使用 Security 插件根据用户需要访问的 API 为其分配特定权限。有关支持的 Flow Framework API 列表,请参阅工作流 API

Security 插件有两个内置角色,涵盖了大多数 Flow Framework 用例:flow_framework_full_accessflow_framework_read_access。有关每个角色的说明,请参阅预定义角色

如果这些角色不满足您的需求,您可以根据您的用例为用户分配单独的 Flow Framework 权限。每个操作都对应 REST API 中的一个操作。例如,cluster:admin/opensearch/flow_framework/workflow/search 权限允许您搜索工作流。

细粒度访问控制

为了降低意外用户查看描述索引的元数据的可能性,我们建议管理员在向目标用户组分配权限时启用基于角色的访问控制。有关更多信息,请参阅通过后端角色限制访问

(高级) 按后端角色限制访问

使用后端角色根据角色配置对单个工作流的细粒度访问。例如,组织中不同部门的用户可以查看其各自部门拥有的工作流。

首先,确保您的用户拥有适当的后端角色。后端角色通常来自 LDAP 服务器SAML 提供程序,但如果您使用内部用户数据库,则可以使用 API 手动创建用户

接下来,启用以下设置

PUT _cluster/settings
{
  "transient": {
    "plugins.flow_framework.filter_by_backend_roles": "true"
  }
}

现在,当用户在 OpenSearch Dashboards 中查看工作流资源(或进行 REST API 调用)时,他们只能看到由至少共享一个后端角色的用户创建的工作流。

例如,考虑两个用户:alicebob

alice 拥有 analyst 后端角色

PUT _plugins/_security/api/internalusers/alice
{
  "password": "alice",
  "backend_roles": [
    "analyst"
  ],
  "attributes": {}
}

bob 拥有 human-resources 后端角色

PUT _plugins/_security/api/internalusers/bob
{
  "password": "bob",
  "backend_roles": [
    "human-resources"
  ],
  "attributes": {}
}

both alicebob 都拥有 Flow Framework API 的完全访问权限

PUT _plugins/_security/api/rolesmapping/flow_framework_full_access
{
  "backend_roles": [],
  "hosts": [],
  "users": [
    "alice",
    "bob"
  ]
}

由于他们拥有不同的后端角色,alicebob 无法查看彼此的工作流或其结果。

没有后端角色的用户如果拥有 flow_framework_read_access 权限,仍然可以查看其他用户的工作流结果。这同样适用于拥有 flow_framework_full_access 权限的用户,因为此权限包含了 flow_framework_read_access 的所有权限。

管理员应告知用户,flow_framework_read_access 权限允许他们查看集群中任何工作流的结果,包括他们无法直接访问的数据。为了限制对特定工作流结果的访问,管理员在创建工作流时应应用后端角色过滤器。这确保只有具有匹配后端角色的用户才能访问该工作流的结果。

剩余 350 字符

有问题?

想贡献?