4.4 策略即代码的 CI/CD 管道

策略即代码涉及编纂所有策略,并作为 CI/CD 管道的一部分运行,使其成为应用程序运行时的一个组成部分。策略类别的例子包括授权策略、网络策略和实现工件策略(例如,容器策略)。典型的 策略即代码软件的策略管理能力可能带有一套预定义的策略类别和策略,也支持通过提供策略模板定义新的策略类别和 相关策略。策略即代码所要求的尽职调查是,它应该提供保护,防止与应用环境(包括基础设施)相关的所有已知威胁,只有当该代码被定期扫描和更新,以应对与应用类别(如网络应用)和托管基础设施相关的威胁,才能确保这一点。下面的表 1 中给出了一些策略类别和相关策略的例子。

表 1:策略类别和策略实例

策略类别 策略示例
网络策略和零信任策略 - 封锁指定端口 - 指定入口主机名称 - 一般来说,所有的网络访问控制策略
实施工件策略(例如,容器策略) - 对服务器进行加固,对基础镜像进行漏洞扫描 - 确保容器不以 root 身份运行 - 阻止容器的权限升级
存储策略 - 设置持久性卷大小 - 设置持久性卷回收策略
访问控制策略 - 确保策略涵盖所有数据对象 - 确保策略涵盖管理和应用访问的所有角色 - 确保数据保护策略涵盖静态数据、传输中数据和使用中数据 - 确保所有类型的策略不存在冲突
供应链策略 - 只允许经批准的容器注册表 - 只允许经认证的库
审计和问责策略 - 确保有与审计和问责职能相关的策略

在策略即代码软件中定义的策略可以转化为应用基础设施运行时配置参数中的以下内容:

  • 强化策略的可执行性(例如,服务代理中的 WASM)。
  • 用于调用外部策略决策模块的触发器(例如,调用外部授权服务器,根据对与当前访问请求相关的访问控制策略的评估,做出允许 / 拒绝的决定)。
  • 它还可能影响 IaC,以确保在部署环境中提供适当的资源,以执行安全、隐私和合规要求。