权限
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权限如何工作
当工作流定义了权限时:
- 管理员用户始终可以运行工作流,无论权限列表如何
- 非管理员用户只能在满足以下条件时运行工作流:
- 他们的角色在权限中明确列出
- 或他们的电子邮件地址在权限中明确列出
- 如果
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) - 仅在需要例外或非常具体的访问控制时才列出个人电子邮件地址
- 作为安全审计的一部分定期检查工作流权限
- 在内部文档中记录哪些工作流有受限权限