策略

  • 引入于 13.10 版本,功能标志为 security_orchestration_policies_configuration。默认禁用。
  • 适用于私有化部署版于 14.3 版本。
  • 功能标志移除于 14.4 版本。

极狐GitLab 中的策略可以为安全团队提供一种方法,要求在项目流水线根据指定的配置运行时,运行他们选择的扫描。因此,安全团队可以确信他们设置的扫描没有被更改、替换或禁用。您可以通过导航到项目的 安全与合规 > 策略 页面来访问这些内容。

极狐GitLab 支持以下安全策略:

策略管理

策略页面显示所有可用环境的已部署策略。您可以检查策略的信息(例如,描述或执行状态),并创建和编辑部署的策略:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏上,选择 安全与合规 > 策略

Policies List Page

网络策略直接从所选环境的部署平台获取,而其它策略则从项目的安全策略项目中获取。在此选项卡之外执行的更改,会在刷新时呈现。

默认情况下,策略列表包含处于禁用状态的预定义网络策略。启用后,预定义策略将部署到所选环境的部署平台,您可以像管理常规策略一样对其进行管理。

请注意,如果您使用 Auto DevOps 并更改本节中的策略,则您的 auto-deploy-values.yaml 文件不会更新。Auto DevOps 用户必须按照容器网络策略文档进行更改。

策略编辑器

您可以使用策略编辑器来创建、编辑和删除策略:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的群组。
  2. 在左侧边栏上,选择 安全与合规 > 策略
    • 要创建新策略,请选择位于 策略 页面上方的 新建策略
    • 要编辑现有策略,请在所选策略菜单中选择 编辑策略

策略编辑器有两种模式:

  • 可视规则模式允许您使用规则块和相关控件构建和预览策略规则。

    Policy Editor Rule Mode

  • YAML 模式允许您以 .yaml 格式输入策略定义,并且针对规则模式不支持的专家用户和案例。

    Policy Editor YAML Mode

您可以交替使用这两种模式并随时在它们之间切换。如果 YAML 资源不正确或包含规则模式不支持的数据,则会自动禁用规则模式。如果 YAML 不正确,您必须使用 YAML 模式修复您的策略,然后才能再次使用规则模式。

安全策略项目

note我们建议专门使用安全策略项目来管理项目的策略。不要将应用程序的源代码添加到此类项目中。

安全策略功能是存储策略的仓库。所有安全策略都存储在 .gitlab/security-policies/policy.yml YAML 文件中。此 YAML 的格式特定于存储在其中的策略类型。示例和架构信息可用于以下策略类型:

此项目中创建的策略通过每 10 分钟运行一次的后台作业应用。提交给此项目的任何策略更改最多需要 10 分钟才能生效。

安全策略项目选择

note只有项目所有者拥有选择安全策略项目的权限。

创建安全策略项目并在该仓库中创建策略时,您必须在该项目和您要将策略应用到的项目之间创建关联:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏上,选择 安全与合规 > 策略
  3. 选择 编辑策略项目,然后从下拉菜单中搜索并选择您要关联的项目。
  4. 选择 保存

    Security Policy Project

取消关联安全策略项目

项目所有者可以取消安全策略项目与开发项目的关联。为此,请按照安全策略项目选择中描述的步骤,但选择模式中的垃圾桶图标。

扫描执行策略

See Scan execution policies.

扫描结果策略编辑器

See Scan result policies.

更改状态

要更改网络策略的状态:

  • 选择要更新的网络策略。
  • 选择 编辑策略
  • 选择 策略状态 切换,更新所选策略。
  • 选择 保存更改,部署网络策略更改。

禁用的网络策略在 podSelector 块中有 network-policy.gitlab.com/disabled_by: gitlab 选择器,缩小了此类策略的范围,因此它不会影响任何 pod。策略本身仍然部署到相应的部署命名空间。

容器网络策略编辑器

策略编辑器仅支持 CiliumNetworkPolicy 规范。不支持常规 Kubernetes NetworkPolicy 资源。

规则模式支持以下规则类型:

完成策略后,选择编辑器底部的 保存策略 将其保存。通过选择编辑器底部的 删除策略,也可以从编辑器界面中删除现有策略。

配置网络策略警报

  • 引入并默认启用于 13.9 版本。
  • 功能标志移除于 14.0 版本,威胁监控警报项目普遍可用。

当您已安装并配置项目的代理后,您可以使用策略警报来跟踪您的策略的影响。

有两种方法可以创建策略警报:

  • 策略编辑器 UI 中,单击 添加警报
  • 在策略编辑器的 YAML 模式下,通过 metadata.annotations 属性:

    metadata:
      annotations:
        app.gitlab.com/alert: 'true'
    

添加后,UI 会更新并显示有关过多警报的危险的警告。