更新时间:2025-01-07 GMT+08:00
分享

接入CI/CD

操作场景

在Jenkins Pipeline模式项目中集成企业主机安全的镜像安全扫描插件,以便在Jenkins Pipeline项目构建阶段对镜像进行安全扫描。

接入CI/CD

  1. 登录管理控制台
  2. 在页面左上角选择“区域”,单击,选择“安全与合规 > 企业主机安全”,进入主机安全平台界面。
  3. 在左侧导航栏,选择安装与配置 > 容器安装与配置,进入“容器安装与配置”页面。
  4. 选择“CI/CD接入设置”页签,单击“接入配置”,系统弹出“接入配置”对话框。

    图1 CI/CD接入设置

  5. 在对话框中,单击“新增CI/CD标识”,系统弹出新增CI/CD标识对话框。

    CI/CD标识是CI/CD插件的接入Token,用作镜像扫描身份认证。

    图2 新增CI/CD标识

  6. 填写一个标识,单击确定,新增CI/CD标识完成。

    图3 填写CI/CD标识

  7. 勾选一个标识,并单击“下一步”

    图4 勾选标识

  8. 根据界面提示,配置镜像扫描信息。

    图5 镜像扫描信息
    表1 镜像扫描信息参数说明

    参数类别

    界面参数

    说明

    对应生成命令中的参数

    扫描信息

    扫描类型

    扫描的镜像类型。

    • 本地镜像扫描
    • 远程镜像仓扫描

    -

    CI/CD标识

    CI/CD插件的接入Token,用作镜像扫描身份认证。

    cicd_id

    所属组织(可选)

    “扫描类型”选择“远程镜像仓扫描”时,可选择输入远程镜像的所属组织名称。

    NAMESPACE

    镜像名称(可选)

    输入镜像名称。

    IMAGE_NAME

    镜像版本(可选)

    输入镜像版本信息。

    IMAGE_VERSION

    流水线是否阻断

    企业主机安全将根据您选择的方式,在镜像构建过程中处理不安全的镜像。

    • 阻断:扫描出高风险镜像时,对CI/CD流水线进行阻断。高风险镜像是指漏洞、恶意文件或基线检查的检查结果中存在风险程度为“高”的镜像。
    • 放行:扫描出镜像风险时,允许CI/CD流水线正常运行。

    is_blocking

    • 阻断流水线:is_blocking=1
    • 放行流水线:is_blocking=0

    如果您不想只阻断存在高风险镜像的流水线,而是阻断所有非安全的流水线,那么您可以设置is_blocking=non-secure。

    网络信息(仅远程镜像仓扫描需要配置)

    通信类型

    选择镜像仓的通信协议类型。

    • http
    • https

    repository_address

    该参数是由“通信类型://镜像仓地址”组成。

    镜像仓地址

    输入镜像仓地址。

    可以输入镜像仓“网址”或者“IP:端口”

    例如myharbor.com

    repository_address

    该参数是由“通信类型://镜像仓地址”组成。

    登录凭证(仅远程镜像仓扫描需要配置)

    镜像仓用户名

    输入登录用户名。

    login_auth

    该参数的参数值为界面参数值“镜像仓用户名”“镜像仓密码”加密后的内容

    镜像仓密码

    输入登录用户密码。

    login_auth

    该参数的参数值为界面参数值“镜像仓用户名”“镜像仓密码”加密后的内容

    高级配置(可选)

    漏洞白名单

    在CI/CD流水线构建过程中,发现镜像存在白名单内的漏洞,不阻断CI/CD流水线。

    如果业界定位为高风险的漏洞,您认为该漏洞不会对您的业务造成影响,可添加漏洞白名单。

    输入漏洞名称;多个漏洞名称以换行符分隔。

    -

    漏洞黑名单

    在CI/CD流水线构建过程中,发现镜像存在黑名单内的漏洞,则阻断CI/CD流水线。

    如果业界定位为低风险的漏洞,您认为该漏洞对您的业务会造成比较严重的影响,可添加漏洞黑名单。

    输入漏洞名称;多个漏洞名称以换行符分隔。

    -

    镜像白名单

    在CI/CD流水线构建过程中,发现该镜像存在风险,不阻断CI/CD流水线。

    输入镜像名称;多个镜像名称以换行符分隔。

    镜像名称格式:

    • 本地镜像:镜像名称:版本
    • 远程镜像:组织名称/镜像名称:版本

    -

  9. 信息配置完成,单击“生成命令”,生成镜像安全扫描插件配置命令。

    图6 生成命令

  10. 单击“复制命令”,如图7所示。

    图7 复制命令

  11. 登录Jenkins工具。
  12. 在总览页面,单击目标Jenkins-Pipeline模式的项目名称,进入项目详情页面。

    此处示例项目名称为“mypipeline”

  13. 在左侧导航栏,单击“Configure”,进入配置页面。
  14. 根据需要扫描的镜像类型,插入镜像安全扫描相关的命令。

    以下样例供参考,您可以根据实际场景灵活配置。
    • 本地镜像
    1. “Pipeline”区域,将10复制的命令中的“environment”段代码插入Pipeline脚本中“agent any”之后。
    2. 10复制的命令中的“stage('image-scan')”段代码插入到Pipeline脚本中Build和Push阶段之间。
      图8 插入镜像安全扫描命令
    • 远程镜像仓
      1. “Pipeline”区域,将10复制的命令中的“environment”段代码插入Pipeline脚本中“agent any”之后。
      2. 10复制的命令中的“stage('image-scan')”段代码插入到Pipeline脚本中Test和Push阶段之间。

  15. 单击“Apply”,应用脚本。

    后续您构建该目标项目时,会同步执行镜像安全扫描任务,扫描项目中的镜像安全。

    您可以通过“Blue Ocean”查看项目构建任务,项目构建任务中增加的“image-scan”步骤即镜像安全扫描步骤,镜像安全扫描步骤执行完成后,您可以在企业主机安全控制台查看扫描结果,具体操作请参见管理CI/CD镜像

    如果您在执行8时选择阻断流水线,则镜像安全扫描插件将阻断存在高风险镜像的流水线运行,如图9所示。

    图9 项目构建阻断

相关文档