第 1 章 在 Jenkins 中添加 secret 以便与外部工具安全集成
在创建应用程序时,当您将 Jenkins 选择为 CI 供应商时,您必须将 secret 添加到 Jenkins 中,以便与外部工具进行安全集成。这可让 Jenkins 执行基本任务,如漏洞扫描、镜像签名和测试生成。
先决条件
- 您必须具有创建和管理 Jenkins 任务、变量和 CI 管道所需的权限。
- 您必须有镜像 registry 的用户名和密码,如 Quay.io、Jfrog Artifactory 或 Sonatype Nexus,用于和拉取容器镜像。
- 您必须具有适当的 GitOps 凭证。
您必须具有 Jenkins 管道执行的特定任务的以下信息:
对于 ACS 任务:
- ROX Central 服务器端点和令牌
对于 SBOM 任务:
- Cosign 签名密钥密码、私钥和公钥
- 信任 URL、客户端 ID、secret 和支持的 CycloneDX 版本
注意用于这些凭证的值已经经过 Base64 编码,因此您不需要转换它们。您可以在
private.env
文件中找到这些凭证。
流程
- 在 Web 浏览器中打开 Jenkins 实例,并使用您的管理员凭据登录。
- 选择 Jenkins 仪表板右上角的用户名。
- 从左侧边栏中,选择 Credentials。
- 选择您要添加凭证的适当域。通常,它是 全局凭证(无限制 )。
- 选择 Add Credentials。
- 从 Kind 下拉列表中,选择 Secret 文本。
- 将 Scope 下拉列表中的默认值保留为 Global (Jenkins)。
- 在 Secret 字段中,输入您的 ACS API 令牌。
-
在 ID 字段中,输入
ROX_API_TOKEN
。 - 在 Description 字段中,为凭证输入适当的描述。
为以下凭证重复步骤 5-10 :
变量 描述 仅为一个镜像 registry 提供镜像 registry 凭证。
QUAY_IO_CREDS_USR
用于访问 Quay.io 存储库的用户名。
QUAY_IO_CREDS_PSW
用于访问 Quay.io 存储库的密码。
RTIFACTORY_IO_CREDS_USR
用于访问 JFrog Artifactory 存储库的用户名。
RTIFACTORY_IO_CREDS_PSW
用于访问 JFrog Artifactory 存储库的密码。
NEXUS_IO_CREDS_USR
用于访问 Sonatype Nexus 存储库的用户名。
NEXUS_IO_CREDS_PSW
用于访问 Sonatype Nexus 存储库的密码。
如果 Jenkins 在非本地 OpenShift 实例上运行,并且 Rekor 和 TUF 服务位于不同的集群中,则设置这些变量。
REKOR_HOST
您的 Rekor 服务器的 URL。
TUF_MIRROR
您的 TUF 服务的 URL。
Jenkins 的 GitOps 配置
GITOPS_AUTH_PASSWORD
系统用来为新构建镜像更新 GitOps 存储库的令牌。
GITOPS_AUTH_USERNAME
(可选)Jenkins 使用 GitLab 所需的参数。您还需要在 Jenkinsfile 中使用此参数取消注释一行: GITOPS_AUTH_USERNAME = credentials ('GITOPS_AUTH_USERNAME')。默认情况下,此行被注释掉。
ACS 任务所需的变量。
ROX_CENTRAL_ENDPOINT
ROX Central 服务器的端点。
ROX_API_TOKEN
用于访问 ROX 服务器的 API 令牌。
SBOM 任务所需的变量。
COSIGN_SECRET_PASSWORD
Cosign 签名密钥的密码。
COSIGN_SECRET_KEY
Cosign 的私钥。
COSIGN_PUBLIC_KEY
Cosign 的公钥。
TRUSTIFICATION_BOMBASTIC_API_URL
SBOM 生成中使用的 Trustification Bombastic API 的 URL。
TRUSTIFICATION_OIDC_ISSUER_URL
与 Trustification Bombastic API 交互时用于身份验证的 OIDC 签发者 URL。
TRUSTIFICATION_OIDC_CLIENT_ID
用于使用 OIDC 向 Trustification Bombastic API 进行身份验证的客户端 ID。
TRUSTIFICATION_OIDC_CLIENT_SECRET
与客户端 ID 一起使用的客户端 secret,以向 Trustification Bombastic API 进行身份验证。
TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION
指定系统支持并生成的 CycloneDX SBOM 版本。
重新运行最后的管道运行。
- 或者,切换到 GitHub 中应用的源存储库,进行次要更改,并提交它以触发新的管道运行。
其他资源
- 如果在构建应用程序时选择了 Jenkins 持续集成(CI),请将您的应用程序添加到 Jenkins 中。