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 :面向开发人员的自助服务门户。
- OpenShift GitOps: 管理 Kubernetes 部署及其基础架构。
- OpenShift Pipelines :启用自动化并为软件的持续集成和持续交付(CI/CD)提供可见性。
- Quay.io :一个容器 registry,用于存储您的工件。
- trusted Artifact Signer: 用于签名并验证 RHTAP 生成的工件。
- trusted Profile Analyzer: 来提供有关您安全状况的可操作信息。
为了准确查看这些产品的支持版本,请参考 发行注记 中的兼容性和支持列表。
如果您已有 Quay.io 或 ACS 实例,您可以将它集成到您的 RHTAP 部署中。
因为完全可正常工作的 RHTAP 实例涉及上面列出的所有产品,因此安装 RHTAP 会采取一些工作。但是,我们使用安装程序工具自动化此过程的大部分情况。
请注意,RHTAP 安装程序不是管理器:它不支持升级。安装程序生成 RHTAP 的第一个部署。安装后,您将单独管理 RHTAP 中的每个产品。虽然安装程序可以多次运行,但在手动更改产品配置后,可能会无法预测。
此外,安装程序部署的产品还适用于生产环境,但它们的大小适用于概念验证或非常小的团队。对于较大的团队,最可能需要手动重新配置产品,并应按照每个产品记录的步骤进行。
在开始安装前,您必须满足以下先决条件:然后您可以完成所有相关安装步骤。
安装步骤
-
安装
rhtap-cli - 为 RHTAP 配置 GitHub
- (可选)集成 ACS、Quay 或 Jenkins 的实例
- 在集群中安装 RHTAP
- (可选)安装后集成
以下文档页面详细介绍了每个安装步骤。如果您有先决条件,您已准备好通过创建 GitHub 个人访问令牌来启动安装过程。
第 1 章 安装 rhtap-cli 复制链接链接已复制到粘贴板!
为最大程度降低安装 RHTAP 的复杂性,我们创建了一个 CLI 工具来自动执行大部分流程。按照此流程中的说明,使用 rhtap-cli 工具。
流程
- 在 Web 浏览器中,导航到 rhtap-cli 发行 页面。下载适合您的操作系统的捆绑包文件。
在 CLI 中,解压捆绑包文件。
cd ~/Downloads tar -xvzf rhtap-cli_<remaining file name>.tar.gz
$ cd ~/Downloads $ tar -xvzf rhtap-cli_<remaining file name>.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)在 $PATH 的位置移动
rhtap-cli。echo $PATH mv rhtap-cli Users/<username>/bin/.
$ echo $PATH <output omitted>:Users/<username>/bin $ mv rhtap-cli Users/<username>/bin/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要确保成功安装了 CLI 工具,请运行以下命令:您应该会看到 rhtap-cli 的基本帮助输出。
rhtap-cli --help
$ rhtap-cli --help
第 2 章 为 RHTAP 配置 GitHub 复制链接链接已复制到粘贴板!
安装后,RHTAP 使用 GitHub 来验证用户。RHTAP 还使用 GitHub 作为它生成的存储库的目的地。
要启用此功能,在集群中安装 RHTAP 之前,您必须首先完成以下步骤来为 RHTAP 配置 GitHub:
- 创建个人访问令牌
- 创建 GitHub 应用程序
- (可选)用于软件目录
以下是每个流程的详细说明。
2.1. 创建 GitHub 个人访问令牌 复制链接链接已复制到粘贴板!
在完成此步骤前,您需要拥有可用于 RHTAP 的 GitHub 组织。这可以是您创建的新机构、您已控制的机构,或者需要从当前管理员请求适当权限的现有机构。安装 RHTAP 后,此 GitHub 组织可让 RHTAP 用户为其应用程序自动创建 git 存储库。
一旦您拥有一个机构,就可以按照此流程中的步骤创建个人访问令牌。您需要此令牌来运行后续步骤中涵盖的命令。
先决条件
- GitHub 帐户
- GitHub 机构的所有权
流程
- 进入 GitHub 中的 Developer Settings 页面。
- 在左侧面板中,在 个人访问令牌 下选择 Tokens (classic)。
- 在页面横幅下的 Generate new token 下拉菜单中选择 Generate new token (classic)。您可能需要进行身份验证才能继续。
- 输入名称,选择过期日期,并在 Select scopes 下选择 repo (这应该自动包含 repo: status 的所有范围到 security_events)。
选择 Generate token。GitHub 将您重定向到一个新页面,其中您的令牌可见。确保在您的文件中标记并保存此令牌。
注意如果您计划完成任何可选流程,我们建议创建一个文件(如
~/install_values.txt),您可以在其中存储这些程序生成的所有值以及此访问令牌。
2.2. 为 RHTAP 创建 GitHub 应用程序 复制链接链接已复制到粘贴板!
为 RHTAP 创建 GitHub 应用程序使开发人员能够向 Red Hat Developer Hub 进行身份验证,这是可以使用 RHTAP 的用户界面(UI)。此 GitHub 应用还允许 RHTAP 访问托管在 GitHub 上的开发人员源代码。
请记住,您必须在您用于 Red Hat Trusted Application Pipeline 的 GitHub 组织中创建并安装新应用程序。然后,RHTAP 可以在该机构中创建新存储库,以充当其构建的应用程序的源代码。您还必须登录 OpenShift 集群,其中应用凭据存储为 Kubernetes 机密。
先决条件
- GitHub 机构的所有权
- GitHub 个人访问令牌(来自上一流程)
- ClusterAdmin 对 OpenShift 集群的访问权限
流程
- 在 Web UI 或 CLI 中,登录到您要安装 RHTAP 的 OpenShift 集群。
在 CLI 中,运行以下命令来开始创建 GitHub 应用程序。将 $TOKEN 替换为您在上一步中创建的令牌。将 $ORG_NAME 替换为您要用于 RHTAP 的 GitHub 组织的名称。将 $APP_NAME 替换为您要用于应用程序的名称。
rhtap-cli integration github-app --create --token="$TOKEN" --org="$ORG_NAME" $APP_NAME
$ rhtap-cli integration github-app --create --token="$TOKEN" --org="$ORG_NAME" $APP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - 此时应打开一个 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…开始)。
2.3. (可选)用于查找 RHTAP 目录存储库 复制链接链接已复制到粘贴板!
RHTAP 为用户提供一组软件模板,供开发人员更快地构建应用程序。您可能希望自定义这些模板,根据您的用户的特定需求对其进行定制。要启用此自定义,您必须分叉包含默认模板的存储库。在安装过程的后续阶段中,您可以将 RHTAP 配置为在自定义分叉中查找软件模板,而不是在默认存储库中。
流程
- 在 Web 浏览器中,导航到 RHTAP 软件目录存储库。
在页面标题下,选择 Fork 并分叉存储库。
-
取消选中"仅复制
主分支"的框。
-
取消选中"仅复制
-
fork 就绪后,复制其地址。标签,并将它保存到
~/install_values.txt中。 在新分叉中,在横幅下,单击 main 来打开下拉菜单。在 Tags 下,选择与您正在使用的 RHTAP 版本对应的版本。
注意务必不时更新您的分叉,因此来自上游存储库的更新可以让您的 RHTAP 实例受益。
第 3 章 集成预先存在的部署和外部产品 复制链接链接已复制到粘贴板!
RHTAP 安装了一个产品网络,它们协同工作以形成安全、自动化的 CI/CD 平台。但是,您可能已安装在集群中的两个产品:高级 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 中。
3.1. (可选)集成 ACS 复制链接链接已复制到粘贴板!
先决条件
- 管理员对 ACS 实例的访问权限。
流程
在集成 ACS 实例前,您需要 API 令牌和中央端点 URL。
- 在 CLI 中,登录到您要安装 RHTAP 的 OpenShift 集群。
运行 integration 命令。将 $ENDPOINT 替换为您的 ACS 中央端点 URL,将 $TOKEN 替换为您的 ACS API 令牌。
rhtap-cli integration acs --endpoint="$ENDPOINT" --token="$TOKEN"
rhtap-cli integration acs --endpoint="$ENDPOINT" --token="$TOKEN"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. (可选)集成 Quay 复制链接链接已复制到粘贴板!
在此过程中,您可以从 Quay 实例获取两个值。然后,您可以将实例集成到 RHTAP 中。
我们建议在 Quay 中使用 机器人帐户 进行此流程。这样,一旦安装了 RHTAP,多个用户可以向 Quay 中的机构命名空间进行身份验证。
流程
- 在您的 Web 浏览器中,登录 Quay。在横幅右侧,选择您的用户名并从下拉菜单中选择 帐户设置。
- 在您的用户设置页面中,在 Docker CLI Password 下选择 Generate Encrypted Password。在弹出窗口中输入您的密码进行验证。
-
接下来,仍在弹出窗口中,选择 Docker Configuration > View [username]-auth.json。复制字符串,但不使用引号,如下所示
"auth":。 -
在
~/install_values.txt文件中,使用以下格式的标签和创建 Docker 配置值,使用您的用户名和 auth 令牌的适当: {"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 显示访问令牌。还要标记此令牌并将其保存到
~/install_values.txt中。 在 CLI 中,运行以下命令来集成您的 Quay 实例。将 $DOCKERCONFIGJSON 替换为 Docker 配置值。将 $API_TOKEN 替换为您刚才生成的令牌。将 $URL 替换为 Quay 实例的地址(如果您还没有在集群中安装 Quay,则为 https://quay.io)。https://quay.io
rhtap-cli integration quay --dockerconfigjson="$DOCKERCONFIGJSON" --token="$API_TOKEN" --url="$URL"
$ rhtap-cli integration quay --dockerconfigjson="$DOCKERCONFIGJSON" --token="$API_TOKEN" --url="$URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. (可选)集成 GitLab 复制链接链接已复制到粘贴板!
如果要使用 GitLab 托管源代码,或作为 CI 供应商,请完成以下步骤。
先决条件
- 您必须具有创建和管理 GitLab 作业所需的权限。
- 您必须具有 GitLab API 令牌。
-
如果您计划与自定义 GitLab 主机集成,则必须有一个主机 URL。如果没有指定 GitLab 主机 URL,系统默认为
gitlab.com。
流程
在 CLI 中,运行 integration 命令。将 $API_TOKEN 替换为 GitLab API 令牌。如果您要与自定义 GitLab 主机集成,请将 $URL 替换为 GitLab 主机 URL。如果使用默认的
gitlab.com主机,您可以删除 the-host选项。rhtap-cli integration gitlab --token="$API_TOKEN" --host="$URL"
$ rhtap-cli integration gitlab --token="$API_TOKEN" --host="$URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. (可选)集成 Jenkins 复制链接链接已复制到粘贴板!
先决条件
- 您必须具有创建和管理 Jenkins 任务所需的权限。
- 您必须具有用于访问 Jenkins、Jenkins 用户 ID 和 API 令牌的 URL。
流程
在 CLI 中,运行 integration 命令。将 $API_TOKEN 替换为您的 Jenkins API 令牌,将 $URL 替换为 Jenkins 实例 URL,$USERNAME 替换为您的 Jenkins 用户 ID。
rhtap-cli integration jenkins --token="$API_TOKEN" --url="$URL" --username="$USERNAME"
$ rhtap-cli integration jenkins --token="$API_TOKEN" --url="$URL" --username="$USERNAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. (可选)集成 JFrog Artifactory 复制链接链接已复制到粘贴板!
先决条件
- 对 Artifactory 实例的管理员访问权限
- 要与 RHTAP 搭配使用的 Artifactory 中的存储库
流程
- 在 Artifactory UI 中,点您要使用的存储库旁边的绿色 设置客户端/CI Tool 按钮。
- 选择 Docker Client
按照 UI 说明在 CLI 中进行身份验证。
-
UI 生成令牌以用作密码。确保将其保存在
~/install_values.txt中。 -
当您在 CLI 中登录 JFrog 时,您应该会收到一条消息,指出您的密码已存储在一个位置,如
~/.docker/config.json。如果没有看到此消息,则此流程中的后续步骤解释了什么操作。
-
UI 生成令牌以用作密码。确保将其保存在
在 CLI 中,运行 integration 命令。将 ARTIFACTORY_URL 的值设置为实例的 URL (如 "https://myusername.jfrog.io")。将 ARTIFACTORY_DOCKERCONFIGJSON 的值设置为存储您的密码的文件内容。将 ARTIFACTORY_API_TOKEN 的值设置为 JFrog 生成的令牌。
rhtap-cli integration artifactory --url="$ARTIFACTORY_URL" --dockerconfigjson="$ARTIFACTORY_DOCKERCONFIGJSON" --token="$ARTIFACTORY_API_TOKEN"
$ rhtap-cli integration artifactory --url="$ARTIFACTORY_URL" --dockerconfigjson="$ARTIFACTORY_DOCKERCONFIGJSON" --token="$ARTIFACTORY_API_TOKEN"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您的 CLI 没有打印关于 config.json 文件的信息,您可以按如下方式创建其内容:{ "auths": { "<URL for your JFrog instance>":{ "auth": "<base64 format of username:password>", "email": "" }}}
3.6. (可选)集成 Bitbucket 复制链接链接已复制到粘贴板!
如果要使用 Bitbucket 云来托管您的源代码,请完成以下步骤。
先决条件
您必须具有 Bitbucket 用户名。查找用户名:
- 在 Bitbucket 中的边栏上,单击您的个人资料图片,然后选择 View profile。
- 在侧边栏中,选择 Settings。系统在帐户设置中显示您的用户名。
- 您必须具有应用程序 密码。
流程
在 CLI 中,运行 integration 命令。将 $username 替换为您的 Bitbucket 用户名,将 $appPassword 替换为您的 Bitbucket 访问令牌。如果您要与自定义 Bitbucket 主机集成,请将 $URL 替换为您的 Bitbucket 主机 URL。如果使用默认的
bitbucket.org主机,您可以删除 the-host选项。rhtap-cli integration bitbucket --username="$username" --app-password="$access_token" --host="$URL"
$ rhtap-cli integration bitbucket --username="$username" --app-password="$access_token" --host="$URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 在集群中安装 RHTAP 复制链接链接已复制到粘贴板!
配置了 GitHub 后,就可以在集群中安装 RHTAP。实际安装过程非常简单。
但是,如果您 fork了软件目录,或者集成 ACS 或 Quay,您必须首先自定义名为 config.yaml 的文件。这并不困难。
以下流程解释了如何完成这两个进程。
4.1. (可选)自定义 config.yaml 复制链接链接已复制到粘贴板!
如果您 fork了软件目录,或者集成 ACS 或 Quay,您应该自定义 config.yaml,它被默认嵌入在 rhtap-cli 中。自定义此文件可确保 RHTAP 安装程序可以正确响应您对这些程序所做的工作。
流程
在 CLI 中,创建一个新目录。
mkdir tmp
$ mkdir tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将安装图表提取到新目录中。
rhtap-cli installer --extract=tmp
$ rhtap-cli installer --extract=tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建该目录中现在存在的
config.yaml的副本。cp tmp/config.yaml tmp/my-config.yaml
$ cp tmp/config.yaml tmp/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 如果您集成了 ACS 或 Quay,请将相关
启用字段的值更改为false。以下示例显示您需要对 ACS 所做的更改。redHatAdvancedClusterSecurity: enabled: false namespace: rhtap-acsredHatAdvancedClusterSecurity: enabled: false namespace: rhtap-acsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您尝试集成 ACS 或 Quay,但没有自定义
config.yaml,RHTAP 仍会安装和使用这些产品的新实例。您必须 自定义config.yaml才能使rhtap-cli 集成命令生效。
-
进行适当的更改后,保存新的
my-config.yaml文件。
4.2. 使用 rhtap-cli deploy 命令安装 RHTAP 复制链接链接已复制到粘贴板!
如果您配置了 GitHub,如有必要自定义 config.yaml,则可以安装 RHTAP。
先决条件
- 您必须已以 ClusterAdmin 用户身份登录到 OCP 集群。
您必须确保集群中已安装了以下 Operator:
- AMQ Streams
- Crunch-Data PostgreSQL
- OpenShift GitOps
- Keycloak
- OpenShift Pipelines
- 可信工件签名程序
- Quy
- 高级集群安全性
- Developer Hub
流程
在 CLI 中,运行安装命令。如果您没有对
config.yaml进行任何更改,只需运行rhtap-cli deploy即可。但是,如果您 确实 自定义该文件,请运行以下命令,并将 $CONFIG 变量替换为自定义文件的路径。注意完成安装需要大约十五分钟。
rhtap-cli deploy --config=$CONFIG
$ rhtap-cli deploy --config=$CONFIGCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
安装完成后,请确保在
~/install_values.txt文件中保存rhtap-cli deploy命令的输出。通过这个输出,您可以访问已安装的新产品实例。 现在,您可以访问 RHTAP 实例!
- 创建 GitHub 应用程序后,您可能已打开新的 GitHub 应用程序页面,如我们的备注所建议。在这种情况下,您可以使用该页面的横幅中的链接访问 RHTAP。
-
否则,导航到 Applications 页面上的 Authorized GitHub Apps 选项卡。单击您为 RHTAP 创建的应用程序的名称。同样,在此页面的横幅中,您可以找到访问 RHTAP 的链接,该链接以
https://backstage-developer-hub-rhtap…开始。
第 5 章 安装后集成 复制链接链接已复制到粘贴板!
安装 RHTAP 后,完成下列任务以确保 RHTAP 正常工作。
5.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.5 文档中的说明将 Quay 集成到 ACS 中。
5.2. 其他集成 复制链接链接已复制到粘贴板!
如果您将其他工具集成到 RHTAP 中,您必须配置它们,以便它们可以运行 RHTAP 提供的构建管道:
| 如果您集成 | 然后 |
|---|---|
| Bitbucket | 请参阅 设置 Bitbucket 以了解安全集成 文档。 |
| Jenkins | 查看 为安全集成设置 Jenkins 文档。 |
更新于 2024-12-16