This documentation is for a release that is no longer maintained
See documentation for the latest supported version.配置 GitHub 操作
了解如何为安全 CI/CD 工作流配置 GitHub 操作。
摘要
前言 复制链接链接已复制到粘贴板!
如果您在应用程序中使用 GitHub Actions,则管道运行可能会因为缺少 secret 而失败。如果没有它们,与 Quay、JFrog 和 Red Hat Advanced Cluster Security (ACS)的集成将无法正常工作,破坏了漏洞扫描、镜像签名和 SBOM 生成合规性等安全任务。
要防止这种情况,您需要在 GitHub Actions 中安全地存储 secret。本指南指导您完成这个过程,确保管道平稳运行。
第 1 章 将 secret 添加到 GitHub Actions 中,以便与外部工具安全集成 复制链接链接已复制到粘贴板!
先决条件
在配置 GitHub Actions 前,请确定您有以下内容:
- 对 GitHub 存储库和 CI/CD 设置的管理员访问权限。
- 用于从 Quay.io、JFrog Artifactory 或 Sonatype Nexus 中拉取容器镜像的 容器注册表凭证。
特定 GitHub Actions 任务的 身份验证详情 :
对于 ACS 安全任务 :
- ROX Central 服务器端点
- ROX API 令牌
对于 SBOM 和工件签名任务 :
- Cosign 签名密钥密码
- 私钥和公钥
- Trustification URL
- 客户端 ID 和 secret
- 支持的 CycloneDX 版本
注意凭证和其他详情已经经过 Base64 编码,因此您不需要再次编码它们。您可以在您的
private.env文件中找到这些凭证,该文件在 RHTAP 安装过程中创建。
1.1. 使用 UI 将 secret 添加到 GitHub Actions 复制链接链接已复制到粘贴板!
流程
- 登录 GitHub 并导航到您的源存储库。
- 转至 Settings 选项卡。
- 在左侧导航窗格中,选择 Secrets 和 variables,然后选择 Actions。
输入以下详情:
- 选择 New repository secret。
- 在 Name 字段中输入 MY_GITHUB_TOKEN。
- 在 Secret 字段中,输入与您的 GitHub 帐户关联 的令牌。
重复步骤 3-4 以添加所需的变量:
Expand 变量 描述 仅为一个镜像 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 存储库的密码。
如果 GitHub Actions 运行程序不在与 RHTAP 实例相同的集群中运行,则设置这些变量。
REKOR_HOST您的 Rekor 服务器的 URL。
TUF_MIRROR您的 TUF 服务的 URL。
GitHub 的 GitOps 配置
GITOPS_AUTH_PASSWORD系统用来为新构建镜像更新 GitOps 存储库的令牌。
GITOPS_AUTH_USERNAME(可选)Jenkins 使用 GitHub 所需的参数。您还需要在 Jenkinsfile 中使用此参数取消注释一行: GITOPS_AUTH_USERNAME = credentials ('GITOPS_AUTH_USERNAME')。默认情况下,此行被注释掉。
ACS 任务所需的变量。
ROX_CENTRAL_ENDPOINTROX Central 服务器的端点。
ROX_API_TOKEN用于访问 ROX 服务器的 API 令牌。
SBOM 任务所需的变量。
COSIGN_SECRET_PASSWORDCosign 签名密钥的密码。
COSIGN_SECRET_KEYCosign 的私钥。
COSIGN_PUBLIC_KEYCosign 的公钥。
TRUSTIFICATION_BOMBASTIC_API_URLSBOM 生成中使用的 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 版本。
- 选择 Add secret。
重新运行最后的管道运行,以验证 secret 是否已正确应用。
- 或者,切换到 GitHub 中应用的源存储库,进行次要更改,并提交它以触发新的管道运行。
1.2. 使用 CLI 将 secret 添加到 GitHub 复制链接链接已复制到粘贴板!
流程
在首选文本编辑器中使用两个文件创建项目,如 Visual Studio Code:
- env_vars.sh
- ghub-set-vars
使用以下环境变量更新
env_vars.sh文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下信息更新
ghub-set-vars文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)修改
ghub-set-vars文件,以禁用不需要的变量。例如,要禁用setVars ROX_API_TOKEN $ROX_API_TOKEN,请在其中添加false。ROX_API_TOKEN $ROX_API_TOKEN false
ROX_API_TOKEN $ROX_API_TOKEN falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将环境变量加载到当前 shell 会话中:
source env_vars.sh
source env_vars.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使
ghub-set-vars脚本可执行,并使用您的存储库名称运行它,以设置 GitHub 存储库中的变量。chmod +x ghub-set-vars ./ghub-set-vars your_repository_name
chmod +x ghub-set-vars ./ghub-set-vars your_repository_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新运行最后的管道运行,以验证 secret 是否已正确应用。
- 或者,切换到 GitLab 中应用的源存储库,进行次要更改,并提交它以触发新的管道运行。
更新于 2025-02-14