Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

权限 ​

Keep 工作流引擎中的权限定义了谁可以手动执行工作流。

它们允许您根据用户角色或特定电子邮件地址限制对工作流的访问,确保只有授权用户才能触发敏感工作流。

::: note 目前,权限只能直接在 workflow YAML 文件中编辑。工作流构建器 UI 暂不支持编辑权限。 :::


总体结构 ​

权限在工作流 YAML 文件的顶层使用 permissions 字段定义,该字段接受角色和/或电子邮件地址列表。

yaml
workflow:
  id: sensitive-workflow
  name: Sensitive Workflow
  description: "A workflow with restricted access"
  permissions:
    - admin
    - john.doe@example.com
  steps:
    # workflow steps

权限如何工作 ​

当工作流定义了权限时:

  1. 管理员用户始终可以运行工作流,无论权限列表如何
  2. 非管理员用户只能在满足以下条件时运行工作流:
    • 他们的角色在权限中明确列出
    • 或他们的电子邮件地址在权限中明确列出
  3. 如果 permissions 字段为空或未定义,任何具有 write:workflows 权限的用户都可以运行工作流

支持的角色类型 ​

Keep 支持以下可在权限列表中使用的角色类型:

  • admin:拥有完全系统访问权限的管理员用户
  • noc:具有只读访问权限的网络运营中心用户
  • webhook:用于 webhook 集成的 API 访问
  • workflowrunner:用于通过 API 运行工作流的特殊角色

示例 ​

仅限管理员用户 ​

yaml
workflow:
  id: critical-infrastructure-workflow
  name: Critical Infrastructure Workflow
  permissions:
    - admin
  steps:
    # workflow steps

允许特定用户 ​

yaml
workflow:
  id: department-specific-workflow
  name: Department Specific Workflow
  permissions:
    - sarah.smith@example.com
    - team.lead@example.com
  steps:
    # workflow steps

组合角色和个人用户 ​

yaml
workflow:
  id: mixed-permissions-workflow
  name: Mixed Permissions Workflow
  permissions:
    - admin
    - noc
    - devops.specialist@example.com
  steps:
    # workflow steps

最佳实践 ​

  • 对对系统有重大影响或触发敏感操作的工作流使用权限
  • 考虑对具有相似职责的用户组使用基于角色的权限(如 admin 或 noc)
  • 仅在需要例外或非常具体的访问控制时才列出个人电子邮件地址
  • 作为安全审计的一部分定期检查工作流权限
  • 在内部文档中记录哪些工作流有受限权限

基于 MIT 协议开源的 Keep · 由更夫社区维护