This documentation is for a release that is no longer maintained
See documentation for the latest supported version.安装 Red Hat Trusted Application Pipeline
了解如何在集群中安装 Red Hat Trusted Application Pipeline。
摘要
前言 复制链接链接已复制到粘贴板!
Red Hat Trusted Application Pipeline (RHTAP)不是单个产品。相反,它是组合成构建高度自动化、可自定义和安全的平台的集合,用于构建应用程序。
默认情况下,RHTAP 包括以下产品:
- 高级 Cluster Security (ACS) :扫描工件以了解漏洞。
- Developer Hub :一个自助服务门户,用于在整个生命周期中整合应用程序的管理。
- Enterprise Contract: 用来根据自定义策略验证您的工件。
- OpenShift GitOps: 管理 Kubernetes 部署及其基础架构。
- OpenShift Pipelines :启用自动化并为软件的持续集成和持续交付(CI/CD)提供可见性。
- Quay.io :一个容器 registry,用于存储您的工件。
- trusted Artifact Signer: 用于签名并验证 RHTAP 生成的工件。
- trusted Profile Analyzer: 来提供有关您安全状况的可操作信息。
您可以在我们的 发行注记 的兼容和支持列表中,准确看到这些产品的哪些版本 RHTAP 支持。
Red Hat Trusted Application Pipeline 支持这个默认产品组合的许多替代方案。之后在安装过程中,本文档介绍了如何自定义部署以满足您的需要。
因为完全可正常工作的 RHTAP 实例涉及上面列出的所有产品,因此安装 RHTAP 会采取一些工作。但是,我们使用作为容器镜像打包的安装程序工具自动化这个过程。
请注意,RHTAP 安装程序不是管理器:它不支持升级。安装程序生成 RHTAP 的第一个部署。但在安装后,您必须单独管理 RHTAP 中的每个产品。虽然安装程序可以多次运行,但在手动更改产品配置后,可能会无法预测。
此外,安装程序部署的产品还适用于生产环境,但它们的大小适用于概念验证或非常小的团队。对于较大的团队,最可能需要手动重新配置产品,并应按照每个产品记录的步骤进行。
最后,请注意,RHTAP 订阅只包含 Red Hat Developer Hub、Red Hat Trusted Artifact Signer、Red Hat Trusted Profile Analyzer 和 Red Hat Enterprise Contract。RHTAP 安装程序还会部署上面列出的所有其他产品。但是要使用它们,您必须购买一个 OpenShift Plus 的订阅。
安装步骤
要使用安装程序安装 RHTAP,您必须完成以下步骤。
- 为 RHTAP 配置 GitHub
- (可选)自定义安装
- 在集群中安装 RHTAP
- (可选)在安装后完成集成
以下文档页面详细介绍了每个安装步骤。
第 1 章 为 RHTAP 配置 GitHub 复制链接链接已复制到粘贴板!
RHTAP 使用 GitHub 来验证用户。RHTAP 还使用 GitHub 作为它生成的存储库的目的地。
要启用此功能,在集群中安装 RHTAP 之前,您必须首先完成以下步骤来为 RHTAP 配置 GitHub:
- 创建 GitHub 个人访问令牌
- 创建 GitHub 应用程序
- (可选)用于软件目录
1.1. 创建 GitHub 个人访问令牌 复制链接链接已复制到粘贴板!
在完成此步骤前,您需要拥有可用于 RHTAP 的 GitHub 组织。这可以是您创建的新组织、您已拥有的组织,或者您从当前管理员请求所有权的现有组织。安装 RHTAP 后,此 GitHub 组织可让 RHTAP 用户为其应用程序创建 git 存储库。
一旦您拥有一个机构,就可以按照此流程中的步骤创建个人访问令牌。您需要此令牌来运行后续步骤中涵盖的命令。
先决条件
- GitHub 机构的所有权
流程
- 进入 GitHub 中的 Developer Settings 页面。
- 在左侧面板中,在 个人访问令牌 下选择 Tokens (classic)。
- 在页面横幅下的 Generate new token 下拉菜单中选择 Generate new token (classic)。您可能需要进行身份验证才能继续。
- 输入名称,选择过期日期,并在 Select scopes 下选择 repo (这应该自动包含 repo: status 的所有范围到 security_events)。
选择 Generate token。GitHub 将您重定向到一个新页面,其中您的令牌可见。创建一个名为
private.env的新文件,并将此令牌保存到该文件中。注意private.env对于安装成功至关重要。请确定您创建此文件并将其保存在安全位置。
1.2. 为 RHTAP 创建 GitHub 应用程序 复制链接链接已复制到粘贴板!
为 RHTAP 创建 GitHub 应用程序使开发人员能够向 Red Hat Developer Hub 进行身份验证,这是其可以与 RHTAP 交互的用户界面(UI)。此 GitHub 应用还允许 RHTAP 访问托管在 GitHub 上的开发人员源代码。
请记住,您必须在您用于 Red Hat Trusted Application Pipeline 的 GitHub 组织中创建并安装新应用程序。然后,RHTAP 可以在该机构中创建新存储库,以充当其构建的应用程序的源代码。
另请注意,这个过程会指示您拉取并开始运行安装程序容器镜像。此安装程序允许您自动执行剩余的安装过程。
先决条件
- GitHub 个人访问令牌(来自上一流程)
- 您工作站上的容器管理工具,如 Podman 或 Docker
- registry.redhat.io的有效凭证
- ClusterAdmin 对 OpenShift 集群的访问权限
流程
在 CLI 中,向
registry.redhat.io进行身份验证。podman login registry.redhat.io
$ podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 拉取安装程序镜像。
podman pull registry.redhat.io/rhtap-cli/rhtap-cli-rhel9:latest
$ podman pull registry.redhat.io/rhtap-cli/rhtap-cli-rhel9:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
rhtap-cli容器镜像。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在运行的容器中,以 ClusterAdmin 用户身份登录 OpenShift 集群。
bash-5.1$ oc login https://api.<input omitted>.openshiftapps.com:443 --username cluster-admin --password <input omitted>
bash-5.1$ oc login https://api.<input omitted>.openshiftapps.com:443 --username cluster-admin --password <input omitted>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令以开始创建 GitHub 应用。将 $GH_TOKEN 替换为您在上一步中创建的令牌。将 $GH_ORG_NAME 替换为您要用于 RHTAP 的 GitHub 组织的名称。将 $GH_APP_NAME 替换为您要用于应用程序的名称。
bash-5.1$ rhtap-cli integration github-app --create --token="$GH_TOKEN" --org="$GH_ORG_NAME" $GH_APP_NAME
bash-5.1$ rhtap-cli integration github-app --create --token="$GH_TOKEN" --org="$GH_ORG_NAME" $GH_APP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - 此命令的输出包括 URL。在工作站上使用 Web 浏览器来导航到此地址。出现提示时,单击 Create your GitHub App。
- 按钮将您重定向到 GitHub。如有必要,在 GitHub 中进行身份验证以确认访问。然后,单击 Create GitHub App for <your organization name>。
- 您的浏览器中会显示一条新消息,告诉您已成功创建该应用。单击超链接文本,在您的 GitHub 组织中安装新应用。
- 该链接会将您重定向到 GitHub。单击绿色 安装 按钮。
- 选择您用于 RHTAP 的组织。
出现提示时,选择 All repositories,以便 RHTAP 可以在您的机构中创建新存储库。单击绿色 安装 按钮。
注意您可能希望将此 GitHub 页面保持打开,但您可以在不中断安装的情况下关闭它。在页面横幅中,您可以在安装后使用链接来访问 RHTAP (以
https://backstage-developer-hub-rhtap…开始)。
1.3. (可选)用于查找 RHTAP 目录存储库 复制链接链接已复制到粘贴板!
RHTAP 为用户提供一组软件模板,供开发人员更快地构建应用程序。您可能希望自定义这些模板,根据您的用户的特定需求对其进行定制。要启用此自定义,您必须分叉包含默认模板的存储库。在安装过程的后续阶段中,您可以将 RHTAP 配置为在自定义分叉中查找软件模板,而不是在默认存储库中。
流程
- 在 Web 浏览器中,导航到 RHTAP 软件目录存储库。
在页面标题下,选择 Fork 并分叉存储库。
-
取消选中"仅复制
主分支"的框。
-
取消选中"仅复制
-
fork 就绪后,复制其地址。标签,并将它保存到
private.env中。 在新分叉中,在横幅下,单击 main 来打开下拉菜单。在 Tags 下,选择与您正在使用的 RHTAP 版本对应的版本。
注意务必不时更新您的分叉,因此来自上游存储库的更新可以让您的 RHTAP 实例受益。
第 2 章 自定义安装 复制链接链接已复制到粘贴板!
RHTAP 安装程序部署了一个产品网络,它们协同工作以形成安全、自动化的 CI/CD 平台。但是,您可能已安装了其中的两个产品: Advanced Cluster Security (ACS)和 Quay。如果您已有其中任何一个产品的实例,您可以将它们集成到 RHTAP 的安装中。集成可节省时间并防止数据丢失。如果您有这些产品的实例,且没有 集成它们,则安装程序只在新命名空间中创建新实例。
此外,您还可使用 RHTAP 部署中的某些替换方式替换三个产品。下表为这些产品命名、其目的以及您可以使用的其他产品。
| 产品 | 用途 | 可能的替代 |
|---|---|---|
| GitHub | 源代码存储库 |
|
| Tekton | CI 管道 |
CI 管道替换符合 SLSA 构建 L2。只有 Tekton 符合构建 L3。 |
| Quy | 用于工件的 registry | Artifactory |
请注意,当您将替代供应商用于 Git、CI 和 registry 集成时,RHTAP 还会在 Red Hat Developer Hub 中为这些产品安装插件。大多数都是技术预览或社区插件。这意味着 替换默认产品可能会带来安全风险,不建议在生产环境中使用。如需更多信息,请参阅我们的 发行注记 中的插件表和有关插件的 RHDH 文档。
另外请注意,要自定义安装,您必须在 rhtap-cli 容器中运行所有相关命令,该容器以 ClusterAdmin 用户身份登录集群。
以下流程解释了如何通过集成预先存在的实例和外部产品来自定义 RHTAP 安装。
2.1. (可选)集成 ACS 复制链接链接已复制到粘贴板!
先决条件
- 管理员对 ACS 实例的访问权限
流程
在集成 ACS 实例前,您需要 API 令牌和中央端点 URL。
在
rhtap-cli容器中,运行 integration 命令。将 $ACS_ENDPOINT 替换为您的 ACS 中央端点 URL,将 $ACS_TOKEN 替换为您的 ACS API 令牌。bash-5.1$ rhtap-cli integration acs --endpoint="$ACS_ENDPOINT" --token="$ACS_TOKEN"
bash-5.1$ rhtap-cli integration acs --endpoint="$ACS_ENDPOINT" --token="$ACS_TOKEN"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. (可选)集成 Quay 复制链接链接已复制到粘贴板!
在此过程中,您可以从 Quay 实例获取两个值。然后,您可以将实例集成到 RHTAP 中。
我们建议在 Quay 中使用 机器人帐户 进行此流程。这样,一旦安装了 RHTAP,多个用户可以向 Quay 中的机构命名空间进行身份验证。
流程
- 在您的 Web 浏览器中,登录 Quay。在横幅右侧,选择您的用户名并从下拉菜单中选择 帐户设置。
- 在您的用户设置页面中,在 Docker CLI Password 下选择 Generate Encrypted Password。在弹出窗口中输入您的密码进行验证。
-
接下来,仍在弹出窗口中,选择 Docker Configuration > View [username]-auth.json。复制字符串,但不使用引号,如下所示
"auth":。 -
在
private.env文件中,使用以下格式的标签并创建 Docker 配置值,使用您的用户名和 auth 令牌,其中 appropriate: {"auths": {"quay.io": {"auth": "[auth token]","email": ""}}} - 返回到 Quay UI,返回到 默认的 Repositories 页面。在右侧,在 Users 和 Organizations 下选择您要用于 RHTAP 的 Quay 组织。
- 在左侧的标签页中,选择 Applications。
- 单击 Create New Application。将您的应用程序命名为。
- 点应用程序的名称。
- 在左侧的选项卡中,选择 Generate Token。
- 从令牌权限选项中,选择 View all visible repositories。
- 点 Generate Access Token。
- 单击 Authorize Applicaiton。
-
UI 显示访问令牌。另外,标记此令牌并将其保存到
private.env中。 在
rhtap-cli容器中,运行以下命令来集成 Quay 实例。将 $QUAY_DOCKERCONFIGJSON 替换为 Docker 配置值。将 $QUAY_TOKEN 替换为您刚才生成的令牌。将 $QUAY_URL 替换为 Quay 实例的地址(如果您还没有在集群中安装 Quay,则为 https://quay.io)。https://quay.iobash-5.1$ rhtap-cli integration quay --dockerconfigjson='$QUAY_DOCKERCONFIGJSON' --token="$QUAY_TOKEN" --url="$QUAY_URL"
bash-5.1$ rhtap-cli integration quay --dockerconfigjson='$QUAY_DOCKERCONFIGJSON' --token="$QUAY_TOKEN" --url="$QUAY_URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
确保将 $QUAY_DOCKERCONFIGJSON 值放在单引号内。
2.3. (可选)集成 Bitbucket 复制链接链接已复制到粘贴板!
如果要使用 Bitbucket 云来托管您的源代码,请完成以下步骤。
先决条件
Bitbucket 用户名;查找您的用户名:
- 在 Bitbucket 中的边栏上,单击您的个人资料图片,然后选择 View profile。
- 在侧边栏中,选择 Settings。系统在帐户设置中显示您的用户名。
- 应用程序密码
流程
在
rhtap-cli容器中,运行 integration 命令。将 $BB_USERNAME 替换为您的 Bitbucket 用户名,将 $BB_TOKEN 替换为您的 Bitbucket 访问令牌。如果您要与自定义 Bitbucket 主机集成,请将 $BB_URL 替换为您的 Bitbucket 主机 URL。如果使用默认的bitbucket.org主机,您可以删除 the-host选项。bash-5.1$ rhtap-cli integration bitbucket --username="$BB_USERNAME" --app-password="$BB_TOKEN" --host="$BB_URL"
bash-5.1$ rhtap-cli integration bitbucket --username="$BB_USERNAME" --app-password="$BB_TOKEN" --host="$BB_URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. (可选)GitHub Actions 复制链接链接已复制到粘贴板!
如果要使用 GitHub Actions 作为替代 CI 供应商,则不需要在安装前完成任何其他步骤。您所做的 GitHub 应用程序为 RHTAP 启用此 CI 功能。
2.5. (可选)集成 GitLab 复制链接链接已复制到粘贴板!
如果要使用 GitLab 托管源代码,或作为 CI 供应商,请完成以下步骤。
先决条件
- 您必须具有创建和管理 GitLab 作业所需的权限。
- 您必须具有 GitLab API 令牌。
-
如果您计划与自定义 GitLab 主机集成,则必须有一个主机 URL。如果没有指定 GitLab 主机 URL,系统默认为
gitlab.com。
流程
在
rhtap-cli容器中,运行 integration 命令。将 $GL_API_TOKEN 替换为 GitLab API 令牌。如果您要与自定义 GitLab 主机集成,请将 $GL_URL 替换为 GitLab 主机 URL。如果使用默认的gitlab.com主机,您可以删除 the-host选项。bash-5.1$ rhtap-cli integration gitlab --token="$GL_API_TOKEN" --host="$GL_URL"
bash-5.1$ rhtap-cli integration gitlab --token="$GL_API_TOKEN" --host="$GL_URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. (可选)集成 Jenkins 复制链接链接已复制到粘贴板!
先决条件
- 您必须具有创建和管理 Jenkins 任务所需的权限。
- 您必须具有用于访问 Jenkins、Jenkins 用户 ID 和 API 令牌的 URL。
流程
在
rhtap-cli容器中,运行 integration 命令。将 $JK_API_TOKEN 替换为您的 Jenkins API 令牌,将 $JK_URL 替换为 Jenkins 实例 URL,$JK_USERNAME 替换为您的 Jenkins 用户 ID。bash-5.1$ rhtap-cli integration jenkins --token="$JK_API_TOKEN" --url="$JK_URL" --username="$JK_USERNAME"
bash-5.1$ rhtap-cli integration jenkins --token="$JK_API_TOKEN" --url="$JK_URL" --username="$JK_USERNAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. (可选)集成 JFrog Artifactory 复制链接链接已复制到粘贴板!
先决条件
- 对 Artifactory 实例的管理员访问权限
- 要与 RHTAP 搭配使用的 Artifactory 中的存储库
流程
- 在 Artifactory UI 中,点您要使用的存储库旁边的绿色 设置客户端/CI Tool 按钮。
- 选择 Docker Client
按照 UI 说明在 CLI 中进行身份验证。
-
UI 生成令牌以用作密码。确保将其保存在
private.env中。 -
当您在 CLI 中登录 JFrog 时,您应该会收到一条消息,指出您的密码已存储在一个位置,如
~/.docker/config.json。如果没有看到此消息,则此流程中的后续步骤解释了什么操作。
-
UI 生成令牌以用作密码。确保将其保存在
在
rhtap-cli容器中,运行 integration 命令。将 AF_URL 的值设置为实例的 URL (如 "https://myusername.jfrog.io")。将 AF_DOCKERCONFIGJSON 的值设置为存储您的密码的文件内容。将 AF_API_TOKEN 的值设置为 JFrog 生成的令牌。bash-5.1$ rhtap-cli integration artifactory --url="$AF_URL" --dockerconfigjson='$AF_DOCKERCONFIGJSON' --token="$AF_API_TOKEN"
bash-5.1$ rhtap-cli integration artifactory --url="$AF_URL" --dockerconfigjson='$AF_DOCKERCONFIGJSON' --token="$AF_API_TOKEN"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
确保将 $AF_DOCKERCONFIGJSON 值放在单引号内。另外,如果您的 CLI 没有打印 config.json 文件的信息,您可以按如下所示创建其内容: { "auths": { "<URL for your JFrog instance>":{ "auth": "<base64 format of username:password>", "email": "" }}}
第 3 章 在集群中安装 RHTAP 复制链接链接已复制到粘贴板!
配置了 GitHub 后,就可以在集群中安装 RHTAP。实际安装过程非常简单。
但是,如果您执行了 任何 可选流程,则必须在安装 RHTAP 前自定义名为 config.yaml 的文件。这并不困难,
以下流程解释了如何完成这两个进程。
3.1. (可选)自定义 config.yaml 复制链接链接已复制到粘贴板!
如果您分叉了软件目录,或运行可选 的集成 命令,您应该自定义 config.yaml,它位于安装程序的主目录中。自定义此文件可确保 RHTAP 安装程序能够正确响应您在这些过程中所做的工作。
先决条件
- 正在运行的安装程序容器,以 ClusterAdmin 用户身份登录到您的 OCP 集群。
流程
在
rhatp-cli容器中,创建config.yaml文件的副本:bash-5.1$ cp config.yaml my-config.yaml
bash-5.1$ cp config.yaml my-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
vi文本编辑器,根据您已完成的可选步骤更改/rhtap-cli/config.yaml的内容:bash-5.1$ vi my-config.yaml
bash-5.1$ vi my-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您分叉了软件目录,请将
catalogURL更改为 fork 的 URL,如下例所示。redHatDeveloperHub: enabled: &rhdhEnabled true namespace: *installerNamespace properties: catalogURL: https://github.com/<your username>/tssc-sample-templates/blob/release/all.yamlredHatDeveloperHub: enabled: &rhdhEnabled true namespace: *installerNamespace properties: catalogURL: https://github.com/<your username>/tssc-sample-templates/blob/release/all.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您运行
rhtap-cli 集成命令,请将相关启用字段的值更改为false。如果您将替代主机用于源代码,则不需要此项。但是,您所做的 任何其他 集成都需要在此文件中进行更改。以下示例显示集成预先存在的 ACS 实例所需的更改。redHatAdvancedClusterSecurity: enabled: &rhacsEnabled false namespace: rhtap-acsredHatAdvancedClusterSecurity: enabled: &rhacsEnabled false namespace: rhtap-acsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您试图在产品外集成或预先存在的实例,但没有自定义
config.yaml,RHTAP 仍然安装和使用其默认产品。您必须 自定义config.yaml才能使rhtap-cli 集成命令生效。
-
进行适当的更改后,保存新的
my-config.yaml文件。
3.2. 使用 rhtap-cli deploy 命令安装 RHTAP 复制链接链接已复制到粘贴板!
如果您配置了 GitHub,如有必要自定义 config.yaml,则可以安装 RHTAP。
先决条件
- 正在运行的安装程序容器,以 ClusterAdmin 用户身份登录到您的 OCP 集群。
集群中尚未安装以下 Operator:
- 高级集群安全性
- AMQ Streams
- Crunch-Data PostgreSQL
- Developer Hub
- Keycloak
- OpenShift GitOps
- OpenShift Pipelines
- Quy
- 可信工件签名程序
流程
在
rhatp-cli容器中,运行安装命令。如果您没有对config.yaml进行任何更改,只需运行rhtap-cli deploy即可。但是,如果您 确实 自定义该文件,请运行以下命令,并将 $CONFIG 变量替换为自定义文件的路径。注意完成安装需要大约十五分钟。
bash-5.1$ rhtap-cli deploy --config=$CONFIG
bash-5.1$ rhtap-cli deploy --config=$CONFIGCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
安装完成后,请确保将
rhtap-cli deploy命令的输出保存到private.env文件中。通过这个输出,您可以访问已安装的新产品实例。 现在,您可以访问 RHTAP 实例!
- 创建 GitHub 应用程序后,您可能已打开新的 GitHub 应用程序页面,如我们的备注所建议。在这种情况下,您可以使用该页面的横幅中的链接访问 RHTAP。
-
否则,导航到 Applications 页面上的 Authorized GitHub Apps 选项卡。单击您为 RHTAP 创建的应用程序的名称。同样,在此页面的横幅中,您可以找到访问 RHTAP 的链接,该链接以
https://backstage-developer-hub-rhtap…开始。
第 4 章 安装后集成 复制链接链接已复制到粘贴板!
安装 RHTAP 后,完成下列任务以确保 RHTAP 正常工作。
4.1. (可选)将 Quay 集成到 ACS 复制链接链接已复制到粘贴板!
如果您使用自己的 Quay 实例而不是 Quay.io,或者计划在 Quay 中使用私有存储库,您必须将 Quay 集成到 ACS 中。这样可确保 ACS 可以访问您在 Quay 中使用的存储库。
流程
-
进入您的 ACS 实例。如果在安装 RHTAP 之前没有 ACS,您可以在
rhtap-cli deploy命令的输出中找到访问详情,您可以在安装过程结束时将其保存到~/install_values.txt中。 - 按照 Red Hat Advanced Cluster Security for Kubernetes 4.6 文档中的说明将 Quay 集成到 ACS 中。
更新于 2025-02-14