接入CI/CD
操作场景
在Jenkins Pipeline模式项目中集成企业主机安全的镜像安全扫描插件,以便在Jenkins Pipeline项目构建阶段对镜像进行安全扫描。
接入CI/CD
- 登录管理控制台。
- 在页面左上角选择“区域”,单击,选择“安全与合规 > 企业主机安全”,进入主机安全平台界面。
- 在左侧导航栏,选择“容器安装与配置”页面。 ,进入
- 选择“CI/CD接入设置”页签,单击“接入配置”,系统弹出“接入配置”对话框。
图1 CI/CD接入设置
- 在对话框中,单击“新增CI/CD标识”,系统弹出新增CI/CD标识对话框。
CI/CD标识是CI/CD插件的接入Token,用作镜像扫描身份认证。
图2 新增CI/CD标识
- 填写一个标识,单击“确定”,新增CI/CD标识完成。
图3 填写CI/CD标识
- 勾选一个标识,并单击“下一步”。
图4 勾选标识
- 根据界面提示,配置镜像扫描信息。
图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流水线。
输入镜像名称;多个镜像名称以换行符分隔。
镜像名称格式:
- 本地镜像:镜像名称:版本
- 远程镜像:组织名称/镜像名称:版本
-
- 信息配置完成,单击“生成命令”,生成镜像安全扫描插件配置命令。
图6 生成命令
- 单击“复制命令”,如图7所示。
- 登录Jenkins工具。
- 在总览页面,单击目标Jenkins-Pipeline模式的项目名称,进入项目详情页面。
此处示例项目名称为“mypipeline”。
- 在左侧导航栏,单击“Configure”,进入配置页面。
- 根据需要扫描的镜像类型,插入镜像安全扫描相关的命令。
- 单击“Apply”,应用脚本。
后续您构建该目标项目时,会同步执行镜像安全扫描任务,扫描项目中的镜像安全。
您可以通过“Blue Ocean”查看项目构建任务,项目构建任务中增加的“image-scan”步骤即镜像安全扫描步骤,镜像安全扫描步骤执行完成后,您可以在企业主机安全控制台查看扫描结果,具体操作请参见管理CI/CD镜像。