3.2. 查看安全见解
当您更新代码和推送更改时,系统会自动触发 on-push
管道。默认情况下,RHTAP 使用标准构建管道进行容器化部署,以满足 软件工件(SLSA)级别 3 规范。
图 3.1. 管道运行成功

管道运行执行以下任务:
-
init
:配置重建标志、身份验证并创建镜像存储库 secret。 -
clone-repository
:克隆存储库以准备构建。 build-container
:- 使用 Buildah 从源代码创建容器镜像并将其推送到 registry。
- 生成软件 Bill of Materials (SBOM)以记录所有组件和依赖项。
- 发布安全工件,如镜像签名和测试。
-
update-deployment
:更新 GitOps 存储库来部署新镜像。 -
ACS
tasks:运行安全检查以确保遵守策略。 -
show-sbom
:列出所有软件组件和库以透明。 -
Summary : 清理资源并提供管道运行摘要。
点管道运行中的任何任务来查看日志。
3.2.1. Red Hat Advanced Cluster Security 任务
只有在 RHTAP 安装过程中安装和配置了 RHACS 时,管道中的 RHACS 任务才会成功。如果没有安装或配置 RHACS,管道会跳过这些任务。
- 有关安装 RHACS 的详细信息,请参阅安装 Red Hat Advanced Cluster Security for Kubernetes。
- 如果您在 RHTAP 安装过程中没有安装和配置 RHACS,请参阅 配置 ACS。
图 3.2. 管道运行中的 RHACS 任务

管道包括三个使用 roxctl
执行安全检查的 RHACS 任务:
-
roxctl 镜像 scan
- 识别镜像中的组件和漏洞,并以 JSON 格式返回结果。 -
roxctl image check
- Verifies build-time security violations in the image。例如,策略(如 'No log4j allowed')或限制在生产镜像中包括 curl、wget 或软件包管理器。 -
roxctl 部署检查
- 检查 YAML 部署文件中的构建时间和部署时间安全违反情况。
视觉化 RHACS 报告
在 RHDH 中,在 CI 选项卡下,Pipeline Runs 部分会在结构化弹出界面中显示详细的任务报告。弹出窗口包括:
- Red Hat Advanced Cluster Security (条件在 RHACS 任务可用性上显示): 显示所有 RHACS 任务的独立标签页,概述发现的安全问题。
-
其他: 提供
PipelineRun
的结果,如 IMAGE_URL 和IMAGE_DIGEST
。只有在弹出窗口中提供了多个部分(如企业合同或 RHACS)时,才会显示本节。
查看 RHACS 报告:
- 选择 Catalog 并选择您要查看的组件。
选择 CI 选项卡 > Actions column > View output 图标,并查看所选组件的详细 RHACS 报告。
图 3.3. 详细的 RHACS 报告
注意如果您有所需的权限,您可以管理漏洞、策略,并查看 RHACS 控制台中特定镜像的详细漏洞报告。如需更多信息,请参阅 查看仪表板。
解释 RHACS 报告
RHACS 任务报告提供在维护强大的安全状况时至关重要的安全分析。
以下是解释 roxctl 镜像扫描
(Image Scan)报告的示例。对 roxctl 镜像检查
(Image Check)和 roxctl 部署检查
(Deployment Check)报告使用相同的方法。
- 漏洞明细: RHACS 按严重性(Critical、重要、中等、低)、状态(可修复、不可修复)分类检测到的漏洞,并提供扫描结果概述。这种分类包括分析的漏洞和组件总数,以及标识的特定常见漏洞和风险(CVE)。
Details Provided: 对于每个识别的漏洞,报告包括:
- CVE ID : 漏洞的唯一标识符。
- 严重性 : 漏洞构成的威胁级别。
- 组件 : 受漏洞影响的软件组件。
- 组件版本: 受影响组件的版本。
- 补救建议: 建议解决漏洞,包括修复漏洞的版本(如果适用)。
3.2.2. 了解 SBOM
show-sbom
任务创建应用中使用的所有软件库的列表。这有助于识别漏洞并评估安全问题。
图 3.4. 管道运行中的 show-sbom
任务

查看 SBOM
流程
- 选择 Catalog 并选择组件。
选择 CI 选项卡,然后选择
show-sbom
任务的链接图标。系统显示 SBOM 任务日志。查看浏览器中的 SBOM 并搜索漏洞,如log4j
。图 3.5. SBOM 详情
在 CLI 中下载 SBOM
先决条件
- 已安装 Cosign CLI 工具。
-
build-container
和show-sbom
任务成功运行。
流程
-
扩展成功的管道运行并选择
show-summary
任务。 搜索并复制 SBOM 镜像 URL,然后在终端中运行以下命令:
cosign 命令示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign download sbom <the-sbom-url-you-copied>
$ cosign download sbom <the-sbom-url-you-copied>
(可选)将输出保存到文件中,以便详细分析:
cosign 命令示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign download sbom <the-sbom-url-you-copied> > sbom.txt
$ cosign download sbom <the-sbom-url-you-copied> > sbom.txt
解释 SBOMs
SBOM 包括项目中使用的每个库的信息,例如:
- 库源、作者或发布者
- 库名称
- 库版本
- 许可证类型
这些信息有助于确保单个库安全源、更新并合规。
SBOM 示例
{ "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:89146fc4-342f-496b-9cc9-07a6a1554220", "version": 1, "metadata": { ... }, "components": [ { "bom-ref": "pkg:pypi/flask@2.1.0?package-id=d6ad7ed5aac04a8", "type": "library", "author": "Armin Ronacher <armin.ronacher@active-4.com>", "name": "Flask", "version": "2.1.0", "licenses": [ { "license": { "id": "BSD-3-Clause" } } ], "cpe": "cpe:2.3:a:armin-ronacher:python-Flask:2.1.0:*:*:*:*:*:*:*", "purl": "pkg:pypi/Flask@2.1.0", "properties": [ { "name": "syft:package:foundBy", "value": "python-package-cataloger" ...
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"serialNumber": "urn:uuid:89146fc4-342f-496b-9cc9-07a6a1554220",
"version": 1,
"metadata": {
...
},
"components": [
{
"bom-ref": "pkg:pypi/flask@2.1.0?package-id=d6ad7ed5aac04a8",
"type": "library",
"author": "Armin Ronacher <armin.ronacher@active-4.com>",
"name": "Flask",
"version": "2.1.0",
"licenses": [
{
"license": {
"id": "BSD-3-Clause"
}
}
],
"cpe": "cpe:2.3:a:armin-ronacher:python-Flask:2.1.0:*:*:*:*:*:*:*",
"purl": "pkg:pypi/Flask@2.1.0",
"properties": [
{
"name": "syft:package:foundBy",
"value": "python-package-cataloger"
...
后续步骤