Skip to main content

Policy 对象

Policy 是 Huoban 的印坊规矩:它决定什么允许、什么禁止、什么必须经过审批。 Policy 必须与 Profile 分离。Profile 影响判断,Policy 控制行为边界。

规则中心

Policy 不应主要按具体命令匹配,例如 git pushrm -rf。核心规则应围绕:
  • capability
  • side effect
  • trust level
  • runtime mode
  • artifact type
  • checkpoint requirement

spec 字段

字段要求说明
rules必填策略规则数组。
rules[].effect必填allowdenyrequireApproval
rules[].when必填匹配条件。
defaults可选默认行为,例如 unknown side effect 是否拒绝。
severity可选风险等级。

side effects

标准 side effects 包括:
  • readFile
  • writeFile
  • deleteFile
  • executeCommand
  • modifyGitIndex
  • modifyGitHistory
  • networkAccess
  • sendMessage
  • publishRemote
  • spendMoney
  • accessSecret
  • installDependency
  • changePermission

最小示例

apiVersion: huoban.dev/v1alpha1
kind: Policy
metadata:
  name: safe-defaults
spec:
  defaults:
    unknownSideEffect: requireApproval
  rules:
    - effect: requireApproval
      when:
        sideEffects:
          - publishRemote
          - spendMoney
          - accessSecret
    - effect: deny
      when:
        sideEffects:
          - modifyGitHistory

status

常见 conditions:
  • PolicyValidated
  • PolicyApplied
  • ApprovalRequired
  • PolicyDenied
  • UndeclaredSideEffectObserved

设计约束

declaredSideEffects 是声明,不等于事实。runtime 还必须记录 observedSideEffects,并在超出声明时触发 condition。