第 1 章 下载、转换和分析您的 SBOM
以下流程解释了如何使用 RHTPA 检查 SBOM。具体来说,它概述了如何下载 SBOM,将 SBOM 转换为兼容格式,并分析带有 RHTPA 的 SBOM。
因为 RHADS - SSC 1.7 在构建应用程序时使用任何受支持的 CI 供应商时,您不需要这个过程,因为 RHADS - SSC 1.7 会自动发布您的 SBOM 到 RHTPA。
如果您希望手动提取 SBOM 并保留本地副本,请按照以下步骤操作。
流程
在容器 registry 中,找到您要检查其 SBOM 的容器镜像的完整地址。该地址的格式是 registry/namespace/image:tag。例如: quay.io/app/app-image:ff59e21cc…
注意不要使用 SBOM 镜像的地址,该镜像以
.sbom结尾。将镜像的地址用于实际应用。在 CLI 中,使用
cosign来下载 SBOM。将输出重定向到稍后可以引用的文件。确保新文件名以.json结尾。cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.json
cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)您的 SBOM 最终会出现在 RHTPA UI 中,其名称列在此
.json文件中。默认情况下,Syft 根据 SBOM 的文件路径创建该名称。如果您希望您的 SBOM 出现在带有更有意义的名称的 RHTPA UI 中,您必须在您刚才下载的.json文件中手动更改它。具体来说,您必须替换.metadata.component对象中的名称。如果需要,您可以选择在此处添加version字段。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将 Bombastic API URL 存储为环境变量:
bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"$ bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在这个命令和下一个命令后,请务必输入安装 RHADS - SSC 的命名空间。
示例假设您使用了名为rhtap的命名空间。在 CLI 中,使用以下值创建新的
token_issuer_url环境变量:token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/token$ token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/tokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
TPA__OIDC__WALKER_CLIENT_SECRET环境变量,并提供您的 TPA OIDC Walker 客户端 secret 作为其值:TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)$ TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以获取 BOMbastic API 的令牌。令牌允许您上传 SBOM。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 尝试上传 SBOM。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到错误消息
storage error: invalid storage content,请使用 Syft 将 SBOM 转换为更早的 CycloneDX 1.4。您可以忽略与不同 pURLs 合并软件包的警告;它们表示 Syft 可能会丢弃原始 SBOM 中的一些数据,但这些数据并不重要。syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.json
$ syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 然后尝试再次上传 SBOM:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 通过 OpenShift 控制台访问运行 RHADS - SSC 的集群。
-
在 rhtap 项目中,导航到 Networking > Routes。打开在
spog-ui服务所在的同一行中列出的 URL。 - 使用 Register 按钮创建新帐户并对 RHTPA 进行身份验证。
选择 SBOM (最新上传)并查看 insights RHTPA 根据 SBOM 提供的应用程序。
- 进入 Dependency Analytics Report 选项卡来查看漏洞和补救。
更新于 2025-09-07