Release Notes
Red Hat 的 Trusted Artifact Signer 1.2 发行注记
摘要
第 1 章 简介 复制链接链接已复制到粘贴板!
红帽的 Trusted Artifact Signer (RHTAS)服务通过简化加密签名和验证软件工件(如容器镜像、二进制文件和 Git 提交)来增强软件供应链安全性。受信任的 Artifact Signer 提供 SecureSign 社区项目的 生产就绪部署。
Trusted Artifact Signer 软件发行注记记录了最新版本的 1.2.1 的新功能、功能增强、错误修复和已知问题。我们将最新的项目添加到各章节的顶端,因为我们在主要版本和次要版本的生命周期上建立官方发行说明。
这个版本有什么新内容?
- 红帽为生产工作负载完全支持使用 Ansible 在 Red Hat Enterprise Linux 9.4 或更高版本上部署 RHTAS,并且不再 是一个技术预览功能。
- 使用 Cockpit 监控和管理 RHTAS 容器的功能。
- 企业合同(EC)改进和新功能.
第 2 章 新功能及功能增强 复制链接链接已复制到粘贴板!
此 Red Hat Trusted Artifact Signer (RHTAS)发行版本中引入的所有主要改进列表和新功能。
这个版本添加的功能和增强有:
为 RHTAS 的 Ansible 部署添加 OIDC 供应商的功能
在这个版本中,您可以在 RHTAS Ansible Playbook 的 tas_single_node_fulcio.fulcio_config 部分下配置 OpenID Connect (OIDC)供应商。更新 playbook,将 OIDC 供应商 URL 添加到 oidc_issuers 变量中,保存您的更改,然后重新运行 playbook。您可以在 oidc_issuers 变量中定义很多 OIDC 供应商。
监控 RHTAS 容器
在这个版本中,您可以使用 Cockpit Web 界面监控和管理 RHTAS 容器。这为用户提供了一个基于 Web 的用户界面,以简化容器管理,并提高可维护性。
为 RHTAS 组件公开密码短语变量
当 Ansible 集合创建密码短语时,它们很容易被猜测,因此存在安全风险。在这个版本中,我们为每个 RHTAS 组件公开密码短语变量。这允许用户在 RHTAS Ansible Playbook 中看到的密码短语配置密码短语。
将每个 TODO 替换为您的密码短语,并运行 playbook。
为策略检查动态生成警告或违反行为
在这个版本中,企业合同(EC)发行版本,单个策略检查可以是警告,或根据策略检查中定义的逻辑进行违反。您可以根据动态标准(如有效日期或其他运行时逻辑)选择警告或违反行为。
对验证输出的改进
在这个版本中,在 ec validate image 命令的输出中添加了更多详情以更好地审核。如果在企业合同(EC)策略源中定义,在解析非永久引用(如标签或 Git 分支)时,输出显示 Git SHA 或镜像摘要。通过这个附加信息,您可以精确查看验证过程中使用哪些策略和策略数据。
支持在不超时的情况下运行企业合同命令
在这个版本中,您可以指定 Enterprise Contract (EC)命令中的--timeout 0,来覆盖默认的 5 分钟超时。这在管理其自身任务超时的持续集成和持续部署(CI/CD)环境中非常有用。
支持特定组件的策略例外
在早期版本的企业合同(EC)中,任何策略例外都应用到要评估的所有组件。在这个版本中,您可以指定特定策略异常应用到哪个组件。这可让您在应用策略例外时更精细的控制。
第 3 章 程序错误修复 复制链接链接已复制到粘贴板!
在此 Red Hat Trusted Artifact Signer (RHTAS)发行版本中,我们修复了以下 bug。除了这些修复外,我们还列出了我们修复的早期版本中已知的问题描述。
修复了解决方案链接格式化
我们解决了在 ec validate image 命令中出现的解决方案和描述文本的链接问题。现在,到其他文档的链接显示为正确格式化的 URL 字符串。
下载工件的大小限制
我们删除了对开放容器项目(OCI)获取的下载大小限制,以获取大于 10 MB 的工件。这个限制会导致工件被截断,从而导致在访问大型软件 Bill of Materials (SBOM)文档时出现错误。
Rekor 无法将测试写入存储
Rekor 将 attestation 写入 /tmp/ 目录,然后尝试将 attestation 移到持久性卷声明(PVC)。在代码库中移动 attestation 文件实际上是一个"rename"操作。"rename"操作仅适用于同一挂载点中的位置,但在挂载点之间移动时会失败。在这个版本中,这个问题已被解决,以便 Rekor 可以正确地将测试写入 PVC。
使用 Kubernetes OIDC 签发者配置时 Fulcio 服务崩溃
当使用 Kubernetes OpenID Connect (OIDC)签发者配置时,缺少所需的证书会导致 Fulcio 服务崩溃,并带有严重错误,例如 https://kubernetes.default.svc。缺少的证书正在阻止 Fulcio 服务运行,并为签名请求提供服务。在这个版本中,我们通过将 Kubernetes API 服务器证书挂载到 /var/run/fulcio/ca.crt 解决了这个问题,并在配置 Kubernetes OIDC 签发者时成功启动 Fulcio 服务。
一个签名的两个 Rekor 日志条目
当配置 Rekor 和 Certificate Transparency 日志时,在 Trillian 中使用相同的树标识符,这会导致一个签名有两个 Rekor 日志条目。要解决这个问题,请使用唯一树标识符配置 Rekor 和 Certificate Transparency 日志。
Trillian 无法正常工作的健康状况探测
一个错误格式化的 container 命令没有向 trillian-mysql pod 发送健康探测。这会产生带有 "unhealthy" 或 "improper" 标签的错误消息,即使 pod 处于健康状态。在这个版本中,我们修复了容器命令的格式,健康探测会报告正确的状态。
在 Red Hat Enterprise Linux 上部署 RHTAS 以创建匿名卷
Rekor 清单没有定义卷。这创建了带有随机名称的匿名卷,使其难以知道属于谁。在这个版本中,我们通过添加正确的卷挂载来解决 Rekor 清单。我们按如下所示将卷命名为: redis-backfill-storage 和 rekor-redis-storage。
第 4 章 已知问题 复制链接链接已复制到粘贴板!
本发行版本中发现的未解决已知问题的列表,以及早期版本的 RHTAS:
在轮转 TSA 证书链后,cosign 无法验证签名时间戳
当前版本的 cosign 只需要一个单一 Timestamp Authority (TSA)证书链。轮转 TSA 证书链时,您可以将整个 TSA 证书链提供给更新框架(TUF)作为单独的目标。在轮转过程中,将新的 TSA 证书链设置为新的 TUF 目标,并过期旧的 TSA 证书链会给出以下错误消息:
main.go:74: error during command execution: unable to load TSA certificate: TSA certificate chain must contains one leaf certificate
目前,这个问题还没有临时解决方案。
有关轮转 TSA 签名者密钥和证书链的详情,请查看我们的 Red Hat OpenShift Container Platform 或 Red Hat Enterprise Linux 的步骤。
当将 Trusted Artifact Signer 恢复到不同的 OpenShift 集群时,ownerReferences 会丢失
将 RHTAS 数据恢复到新的 Red Hat OpenShift 集群时,组件的 ownerReferences 将会丢失。这是因为 Securesign UUID 在在新集群中恢复时发生了变化,并且每个组件的 ownerReferences 会被删除,因为它们不再有效。要临时解决这个问题,请在恢复 Securesign 资源后运行提供的脚本。https://docs.redhat.com/en/documentation/red_hat_trusted_artifact_signer/1/html/administration_guide/protect-your-signing-data#restore-owner-references-script_admin此脚本使用新的 Securesign UUID 重新创建 ownerReferences。
为 TUF 存储库指定 PVC 名称会失败
当在更新框架(TUF)资源中指定持久性卷声明(PVC)名称时,TLTAS 操作器会导致 TUF 存储库的初始化失败。例如:
要解决这个问题,请不要在 TUF 资源中指定 PVC 名称。这允许 RHTAS 操作器自动创建 PVC,将其命名为 tuf,并正确初始化 TUF 存储库。
升级后,Rekor Search UI 不会显示记录
在将 RHTAS 操作器升级到最新版本(1.0.1)后,在按电子邮件地址搜索时找不到现有的 Rekor 数据。backfill-redis CronJob,它确保 Rekor Search UI 可以在午夜仅查询每天运行一次的透明日志。要解决这个问题,您可以手动触发 backfill-redis 作业,而不是等待午夜。
要从命令行界面触发 backfill-redis 作业,请运行以下命令:
oc create job --from=cronjob/backfill-redis backfill-redis -n trusted-artifact-signer
oc create job --from=cronjob/backfill-redis backfill-redis -n trusted-artifact-signer
这样做会将缺少的数据重新添加到 Rekor Search UI 中。
Trusted Artifact Signer operator 不会应用配置更改
我们发现了 RHTAS 操作器逻辑的潜在问题,在重新部署时可能会导致意外状态。如果从 RHTAS 资源中删除配置,并且操作员尝试重新部署这些资源,则可能会出现不一致的状态。要解决这个问题,您可以删除特定资源,然后使用以前的实例配置(如密钥和持久性卷)重新创建该资源。RHTAS 资源为:Securesign、Fulcio、更新框架(TUF)、Rekor、证书转换(CT)日志或 Trillian。
例如,要删除 Securesign 资源:
oc delete Securesign securesing-sample
oc delete Securesign securesing-sample
例如,要从配置文件重新创建 Securesign 资源:
oc create -f ./securesign-sample.yaml
oc create -f ./securesign-sample.yaml
Operator 在恢复到不同的 OpenShift 集群后不会更新组件状态
当将 RHTAS 签名器数据从备份恢复到新的 OpenShift 集群时,组件状态链接不会如预期更新。目前,您必须手动删除 securesign-sample-trillian-db-tls 资源,并手动更新组件状态链接。RHTAS 操作器将在移除后自动重新创建更新的 securesign-sample-trillian-db-tls 资源。
在备份过程启动后,删除 securesign-sample-trillian-db-tls 资源:
Example
oc delete secret securesign-sample-trillian-db-tls
oc delete secret securesign-sample-trillian-db-tls
所有 pod 启动后,更新 Securesign、和 TimestampAuthority 的状态文件:
Example
oc edit --subresource=status Securesign securesign-sample oc edit --subresource=status TimestampAuthority securesign-sample
oc edit --subresource=status Securesign securesign-sample
oc edit --subresource=status TimestampAuthority securesign-sample
可信工件签名程序需要 cosign 2.2 或更高版本
由于最近对生成更新框架(TUF)存储库和使用不同的校验和算法的改变,因此我们需要使用 cosign 版本 2.2 或更高版本。在这个版本中,您可以下载 cosign 版本 2.4 以用于受信任的 Artifact Signer。