RHACS 云服务
第 1 章 RHACS 云服务描述
1.1. RHACS 简介
Red Hat Advanced Cluster Security for Kubernetes (RHACS)是一个企业级的 Kubernetes 原生容器安全解决方案,可帮助您更安全地构建、部署和运行云原生应用程序。
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)提供 Kubernetes 原生安全性作为服务。使用 RHACS 云服务,红帽维护、升级和管理您的中央服务。
中央服务包括用户界面 (UI)、数据存储、RHACS 应用程序编程接口 (API) 和镜像扫描功能。您可以通过 Red Hat Hybrid Cloud Console 部署 Central 服务。当您创建新的 ACS 实例时,红帽会为 RHACS 创建单独的 control plane。
RHACS 云服务允许您保护与 Central 实例通信的自我管理集群。您安全(称为 Secured Clusters)的集群由您管理,而不是由红帽管理。安全的集群服务包括可选的漏洞扫描服务、准入控制服务以及用于运行时监控和合规性的数据收集服务。您可以在您要保护的任何 OpenShift 或 Kubernetes 集群上安装安全集群服务。
1.2. 架构
RHACS 云服务托管在 Amazon Web Services (AWS)上,两个区域 eu-west-1 和 us-east-1,并使用云提供商提供的网络访问点。RHACS 云服务的每个租户都使用高可用性出口代理,分布到 3 个可用区。有关 RHACS 云服务系统架构和组件的更多信息,请参阅 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)架构。
1.3. 账单
客户可以在 Amazon Web Services (AWS) 市场购买 RHACS 云服务订阅。服务成本按安全内核每小时收取,或者属于安全集群的节点的 vCPU。
例 1.1. 订阅成本示例
如果您已建立到两个安全集群的连接,每个节点都有 5 个与 8 个 vCPU 相同的节点(如 Amazon EC2 m7g.2xlarge),则安全内核的总数为 80 (2 x 5 x 8 = 80)。
1.4. 安全性与合规性
Central 实例中的所有 RHACS 云服务数据在传输和静态中加密。数据存储在安全存储中,带有完整复制和高可用性以及定期备份。RHACS 云服务可通过云数据中心提供,以确保最佳性能和满足数据所在要求的能力。
1.4.1. 信息安全指南、角色和职责
红帽的信息安全指南与 NIST Cybersecurity Framework 一致,由执行管理进行批准。红帽为全球范围内认证信息安全专家的专业团队维护。请参见以下资源:
红帽具有严格的内部策略和实践来保护我们的客户及其业务。这些策略和实践是机密的。此外,我们遵守所有适用的法律法规,包括与数据隐私相关的规定。
红帽的信息安全角色和职责不由第三方管理。
红帽为我们的公司信息安全管理系统(ISMS)维护一个 ISO 27001 认证,它管理我们所有的人员的工作、公司端点设备以及身份验证和授权实践。通过实施红帽企业安全标准(ESS)对红帽使用的所有基础架构、产品、服务和技术,我们采取了标准化的方法。ESS 的副本在请求时可用。
RHACS Cloud Service 在 Amazon Web Services (AWS)上托管的 OpenShift Dedicated 实例上运行。OpenShift Dedicated 兼容 ISO 27001、ISO 27017、ISO 27018、PCI DSS、SOC 2 类型 2 和 HIPAA。强大的流程和安全控制与行业标准一致,以管理信息安全性。
RHACS 云服务遵循为 OpenShift Dedicated 定义的相同安全原则、准则、流程和控制。这些认证展示了我们的服务平台、相关操作和管理实践如何与核心安全要求保持一致。我们遵循 NIST 定义的安全软件开发框架(SSDF)实践(包括构建管道安全性)来满足许多要求。SSDF 控制的实施通过我们的安全软件管理生命周期(SSML)实施,用于所有产品和服务。
红帽成熟的全球站点可靠性工程(SRE)团队可全天候提供,并主动管理集群生命周期、基础架构配置、扩展、维护、安全修复和事件响应,因为它与 RHACS 云服务的托管组件相关。Red Hat SRE 团队负责管理 RHACS Cloud Service control plane 的 HA、正常运行时间、备份、恢复和安全性。RHACS 云服务通过电话或聊天附带 99.95% 的可用性 SLA 和 24x7 RH SRE 支持。
您负责使用该产品,包括实施 OpenShift Container Platform 环境中安全集群组件的策略、漏洞管理和部署。Red Hat SRE 团队管理 control plane,其中包含与之前记录的合规性框架匹配的租户数据,包括:
- 所有 Red Hat SRE 都通过 backplane 访问 data plane 集群,它允许对集群的审计访问
- Red Hat SRE 只部署来自 Red Hat registry 的镜像。发布到红帽 registry 的所有内容都经过严格的检查。这些镜像对于自我管理的客户是相同的镜像。
- 每个租户都有自己的独立的 mTLS CA,它会在转换数据中加密,启用多租户隔离。通过 SELinux 控制命名空间和网络策略提供了额外的隔离。
- 每个租户都有自己的 RDS 数据库的实例。
所有 Red Hat SREs 和开发人员都经过严格的安全开发生命周期培训。
如需更多信息,请参阅以下资源:
1.4.2. 漏洞管理程序
红帽在构建过程中扫描产品中的漏洞,以及我们的专用产品安全团队跟踪和评估新发现的漏洞。Red Hat Information Security 定期扫描运行的环境以了解漏洞。
级别为"关键(Critical) "和"关键(Important) "的安全公告(RHSA),以及级别为"紧急(Urgent) "和精选的程序错误修复公告(RHBA),一旦可用就会发布。所有其他可用的修复程序和补丁程序都通过定期更新发布。所有受关键或重要严重性漏洞影响的 RHACS 云服务软件都会在相关修复可用后立即更新。有关修复关键或高优先级问题的更多信息,请参阅了解红帽产品安全事件响应计划。
1.4.3. 安全考试和审计
RHACS 云服务目前不包含任何外部安全认证或测试。
红帽信息风险和安全团队已经为我们的信息安全管理系统(ISMS)实现了 ISO 27001:2013 认证。
1.4.4. 系统互操作性安全性
RHACS 云服务支持与注册表、CI 系统、通知系统、服务Now 和 JIRA 等工作流系统集成,以及安全信息和事件管理(SIEM)平台。有关支持的集成的更多信息,请参阅 集成 文档。自定义集成可以使用 API 或通用 Webhook 来实施。
RHACS 云服务使用基于证书的架构(mTLS),用于客户站点与红帽之间的所有动态流量进行身份验证和端到端加密。它不需要 VPN。不支持 IP allowlist。数据传输使用 mTLS 加密。不支持文件传输,包括安全 FTP。
1.4.5. 恶意代码防止
RHACS 云服务部署在 Red Hat Enterprise Linux CoreOS (RHCOS)上。RHCOS 中的用户空间是只读的。另外,所有 RHACS 云服务实例都由 RHACS 监控在运行时。红帽为 Windows 和 Mac 平台使用商业可用企业级反关联性解决方案,该解决方案集中管理和记录。基于 Linux 的平台中的 anti-virus 解决方案不是红帽策略的一部分,因为它们可以引入其他漏洞。相反,我们会强化并依赖内置工具(如 SELinux)来保护平台。
红帽将 SentinelOne 和 osquery 用于单独的端点安全性,并在供应商提供更新时对其进行更新。
所有第三方 JavaScript 库都会下载并包含在构建镜像中,这些镜像中会针对漏洞进行扫描。
1.4.6. 系统开发生命周期安全性
红帽遵循安全的开发生命周期实践。红帽产品安全团队实践与开放 Web 应用程序安全项目(OWASP)和 ISO12207:2017 均一致。红帽涵盖了 OWASP 项目建议以及其他安全软件开发实践,以增加我们产品的一般安全状况。OWASP 项目分析包含在红帽自动扫描、安全测试和威胁模型中,因为 OWASP 项目根据所选的 CWE 弱点构建。红帽会监控我们的产品中的弱点,以便在问题被利用并成为漏洞前对其进行解决。
如需更多信息,请参阅以下资源:
应用程序会定期扫描,并公开提供该产品的容器扫描结果。例如,在 Red Hat Ecosystem Catalog 网站上,您可以选择组件镜像,如 rhacs-main
,点 Security 选项卡查看健康索引和安全更新的状态。
作为红帽政策的一部分,我们所依赖的任何第三方组件都会发布一个支持政策和维护计划。
1.4.7. 软件 Bill of Materials
红帽已发布用于核心红帽产品的软件资料(SBOM)文件。SBOM 是一个机器可读、全面的清单(清单)的软件组件和依赖项,以及许可证和验证信息。SBOM 文件有助于建立对一系列软件应用程序和库的采购和审核情况的评论。SBOMs 与漏洞利用 eXchange (VEX)相结合,可帮助组织解决其漏洞风险评估流程。它们一起提供有关可能存在的潜在风险(其中包括了存在安全漏洞的工件以及此工件和组件或产品之间的关联),以及它们对已知漏洞或漏洞的当前状态。
红帽与其他供应商一起合作定义发布有用的 SBOM 的具体要求,可与通用安全公告框架(CSAF)-VEX 文件关联,并告知消费者及合作伙伴如何使用这些数据。现在,由红帽发布的 SBOM 文件(包括 RHACS 云服务的 SBOM)被视为是客户测试的 beta 版本,并可通过 https://access.redhat.com/security/data/sbom/beta/spdx/ 获得。
有关红帽安全数据的详情,请参阅 红帽安全数据的未来。
1.4.8. 数据中心和供应商
红帽使用以下第三方供应商提供订阅支持服务:
- Flexential 托管 Raleigh 数据中心,这是用于支持红帽客户门户数据库的主要数据中心。
- digital Realty 托管 Phoenix 数据中心,这是支持红帽客户门户数据库的辅助备份数据中心。
- salesforce 提供客户票务系统后面的引擎。
- AWS 用于增加数据中心基础架构容量,其中一些用于支持红帽客户门户网站应用程序。
- Akamai 用于托管 Web 应用程序防火墙并提供 DDoS 保护。
- iron Mountain 用于处理敏感材料的破坏。
1.5. Access control
用户帐户通过基于角色的访问控制(RBAC)进行管理。如需更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的管理 RBAC。红帽站点可靠性工程师(SRE)可以访问 Central 实例。使用 OpenShift RBAC 控制访问权限。凭证在终止时会立即撤销。
1.5.1. 身份验证供应商
当使用 Red Hat Hybrid Cloud Console 创建 Central 实例时,集群管理员的身份验证将配置为过程的一部分。客户必须管理对 Central 实例的所有访问,作为其集成解决方案的一部分。有关可用身份验证方法的更多信息,请参阅了解身份验证提供程序。
RHACS 云服务中的默认身份提供程序是 Red Hat Single Sign-On (SSO)。设置授权规则,为创建 RHACS 云服务的用户以及标记为 Red Hat SSO 中的机构管理员的用户提供管理员访问权限。默认情况下,RHACS 云服务禁用 admin
登录,只能由 SREs 临时启用。有关使用 Red Hat SSO 进行身份验证的更多信息,请参阅对 ACS 控制台的默认访问。
1.5.2. 密码管理
红帽密码策略需要使用复杂的密码。密码必须包含至少 14 个字符和至少三个字符:
- 基本 10 位数字(0 到 9)
- 大写字符(A 到 Z)
- 小写字符( 到 z)
- 标点符号、空格和其他字符
大多数系统需要双因素身份验证。
红帽遵循 NIST 指南 的最佳实践。
1.5.3. 远程访问
通过实施以下准则,严格控制了对远程支持和故障排除的访问:
- VPN 访问的强大双因素身份验证
- 带有管理和管理网络的隔离网络,需要通过堡垒主机进行额外的身份验证
- 所有访问和管理都通过加密的会话执行
我们的客户支持团队提供 Bomgar 作为远程访问解决方案,用于故障排除。Bomgar 会话是可选的,必须由客户启动,并可以被监控和控制。
为防止信息泄漏,日志通过我们的安全信息和事件管理(SIEM)应用程序(SIEM)应用程序向 SRE 提供。
1.5.4. 法规合规性
有关最新的规范合规性信息,请参阅了解 OpenShift Dedicated 的进程和安全性。
1.6. 数据保护
红帽通过使用各种方法(如日志记录、访问控制和加密)来提供数据保护。
1.6.1. 数据存储介质保护
为了防止我们的数据和客户端数据不受破坏或破坏的风险,红帽使用以下方法:
- 访问日志
- 自动帐户终止流程
- 最低特权原则的应用
在可能和实际情况下,数据会被按照 NIST 指南和联邦信息处理标准(FIPS)进行传输和静态传输。这包括备份系统。
RHACS 云服务使用 AWS 管理的密钥管理服务(KMS)密钥加密 Amazon Relational Database Service (RDS)数据库中的数据。应用程序与数据库之间的所有数据以及系统之间的数据交换均在传输中加密。
1.6.1.1. 数据保留和销毁
法律要求保留包含个人数据的记录。法律或合理的业务需求不需要的记录会被安全地删除。使用军事等级工具,包括操作程序中的安全数据破坏性要求。此外,员工还可以访问安全文档破坏设施。
1.6.1.2. Encryption
红帽使用 AWS 每年轮转的 AWS 管理的密钥。有关使用密钥的详情,请参考 AWS KMS 密钥管理。有关 RDS 的更多信息,请参阅 Amazon RDS 安全。
1.6.1.3. 多租户
RHACS 云服务根据 OpenShift Container Platform 上的命名空间隔离租户。SELinux 提供额外的隔离。每个客户都有唯一的 RDS 实例。
1.6.1.4. 数据所有权
客户数据存储在加密的 RDS 数据库中,在公共互联网上不可用。只有 Site Reliability 工程师(SRE)有权访问它,并且会审核访问。
每个 RHACS 云服务系统都与红帽外部 SSO 集成。设置授权规则后,为创建云服务的用户以及标记为 Red Hat SSO 中的机构管理员的用户提供管理员访问权限。默认情况下,RHACS 云服务禁用 admin 登录,只能由 SREs 临时启用。
红帽收集有关连接到 RHACS 云服务的安全集群数量的信息,以及功能的使用情况。应用程序生成的元数据并存储在 RDS 数据库中由客户所有。红帽仅访问数据以进行故障排除以及客户权限。红帽访问权限需要审核权限升级。
在合同终止后,红帽可以在请求后执行安全磁盘擦除。但是,我们无法物理销毁介质(如 AWS 等云供应商不提供这个选项)。
要在出现漏洞时保护数据,您可以执行以下操作:
- 使用集群管理页面立即断开所有安全集群与 RHACS 云服务的连接。
- 使用 Access Control 页面立即禁用对 RHACS Cloud Service 的访问。
- 立即删除您的 RHACS 实例,它也会删除 RDS 实例。
任何 AWS RDS (数据存储)特定访问修改都由 RHACS 云服务 SRE 工程师实现。
1.7. 指标和日志记录
1.7.1. 服务指标
服务指标仅供内部使用。红帽在商定的级别提供和维护服务。服务指标只能被授权的红帽人员访问。如需更多信息,请参阅 PRODUCT APPENDIX 4 Red Hat ONLINE SERVICES。
1.7.2. 客户指标
核心使用容量指标可以通过 Subscription Watch 或 Subscriptions 页面 获得。
1.7.3. 服务日志记录
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)的所有组件的系统日志是内部的,且仅适用于红帽员工。红帽不提供对组件日志的用户访问权限。如需更多信息,请参阅 PRODUCT APPENDIX 4 Red Hat ONLINE SERVICES。
1.8. 更新和升级
红帽在对影响服务的更新和升级之前,红帽以合理的努力通知客户。有关对 Central 实例的服务更新所需的决定,其计时是 Red Hat 的唯一责任。
客户无法控制何时对 Central 服务进行升级。如需更多信息,请参阅 PRODUCT APPENDIX 4 Red Hat ONLINE SERVICES。升级到 Red Hat Advanced Cluster Security Cloud Service (RHACS 云服务)的版本被视为服务更新的一部分。升级对客户是透明的,不需要任何更新站点的连接。
客户负责及时进行 RHACS 安全集群服务升级,需要与 RHACS 云服务保持兼容性。
红帽建议为连接到 RHACS 云服务的安全集群启用自动升级。
有关升级版本的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes Support Matrix。
1.9. 可用性
可用性和避免出现灾难对于任何安全平台至关重要。Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)对多个级别的故障提供了大量保护。为了考虑可能的云供应商失败,红帽建立了多个可用区。
1.9.1. 备份和恢复
RHACS 云服务灾难恢复策略包括数据库备份和自定义。这也适用于存储在 Central 数据库中的客户数据。恢复时间因设备和数据库大小的数量而异;但是,由于设备可以进行集群和分发,因此当正确架构规划时,RTO 可以提前减少前期。
所有快照都使用适当的云供应商快照 API 创建,然后上传到安全对象存储,用于 Amazon Web Services (AWS)是一个 S3 存储桶。
- 红帽不提交恢复点目标(RPO)或恢复时间目标(RTO)。如需更多信息,请参阅 PRODUCT APPENDIX 4 Red Hat ONLINE SERVICES。
- 站点可靠性工程仅作为预防措施执行备份。它们存储在与集群相同的区域中。
- 客户应该部署带有 Kubernetes 最佳实践的多个可用区保护集群,以确保区域内的高可用性。
灾难恢复计划至少每年执行。商业 Continuity Management Standard 和 guideline 将被实施,以便 BC 生命周期始终跟整个机构。此策略包括每年测试或主要更改功能计划的要求。审核会话需要在任何计划练习或激活后执行,并根据需要计划更新。
红帽有生成器备份系统。我们的 IT 生产系统托管在 Tier 3 数据中心设施中,具有重复测试以确保冗余运行。每年会审核他们以验证合规性。
1.10. 获取对 RHACS 云服务的支持
如果您在执行本文档所述的某个流程或 RHACS 云服务时遇到问题,请访问红帽客户门户。
在客户门户网站中,您可以执行以下操作:
- 搜索或者浏览红帽知识库,了解与红帽产品相关的文章和解决方案。
- 提交问题单给红帽支持。
- 访问其他产品文档。
要识别集群中的问题,您可以在 RHACS 云服务中使用 Insights。Insights 提供了问题的详细信息,并在有可用的情况下,提供了如何解决问题的信息。
1.11. 服务删除
您可以使用 Red Hat Hybrid Cloud Console 中的默认删除操作删除 RHACS 云服务。删除 RHACS Cloud Service Central 实例会自动删除所有 RHACS 组件。删除不可逆。
1.12. 定价
有关订阅费用的详情,请参考 PRODUCT APPENDIX 4 Red HatT ONLINE SERVICES。
1.13. 服务等级协议
有关为 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)提供的服务级别协议(SLA)的更多信息,请参阅 PRODUCT APPENDIX 4 RED HAT ONLINE SERVICES。
第 2 章 Red Hat Advanced Cluster Security Cloud Service 职责概述
本文档概述了 RHACS 云服务管理服务的红帽和客户职责。
2.1. RHACS 云服务的共享职责
虽然红帽管理 RHACS 云服务,但也称为 中央服务,但客户拥有某些职责。
资源或操作 | 红帽负责 | 客户责任 |
---|---|---|
托管的组件,也称为中央组件 |
|
|
安全集群(内部环境或云) |
|
第 3 章 Red Hat Advanced Cluster Security Cloud Service 架构
发现 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)架构和概念。
3.1. Red Hat Advanced Cluster Security Cloud Service 架构概述
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)是一个红帽管理的软件即服务(SaaS)平台,可让您在构建、部署和运行时生命周期中保护 Kubernetes 和 OpenShift Container Platform 集群和应用程序。
RHACS 云服务包括许多内置的 DevOps 实施控制和以安全为中心的最佳实践,具体取决于行业标准,如互联网安全中心(CIS)基准和国家标准技术(NIST)指南。您还可以将其与现有 DevOps 工具和工作流集成,以提高安全性和合规性。
RHACS 云服务架构
下图显示了带有 StackRox Scanner 和 Scanner V4 的架构。Scanner V4 的安装是可选的,但提供了额外的优点。

中央服务包括用户界面 (UI)、数据存储、RHACS 应用程序编程接口 (API) 和镜像扫描功能。您可以通过 Red Hat Hybrid Cloud Console 部署 Central 服务。当您创建新的 ACS 实例时,红帽会为 RHACS 创建单独的 control plane。
RHACS 云服务允许您保护与 Central 实例通信的自我管理集群。您安全(称为 Secured Clusters)的集群由您管理,而不是由红帽管理。安全的集群服务包括可选的漏洞扫描服务、准入控制服务以及用于运行时监控和合规性的数据收集服务。您可以在您要保护的任何 OpenShift 或 Kubernetes 集群上安装安全集群服务。
3.2. Central
红帽管理 Central,即 RHACS 云服务的 control plane。这些服务包括以下组件:
- Central : Central 是 RHACS 应用程序管理界面和服务。它处理 API 交互和用户界面 (RHACS Portal) 访问。
- Central DB : Central DB 是 RHACS 的数据库,并处理所有数据持久性。它目前基于 PostgreSQL 13。
- 扫描程序 V4 :从版本 4.4 开始,RHACS 包含 Scanner V4 漏洞扫描程序,用于扫描容器镜像。扫描程序 V4 基于 ClairCore 构建,同时还支持 Clair 扫描程序。scanner V4 包括 Indexer、Matcher 和 Scanner V4 DB 组件,它们用于扫描。
- stackrox Scanner: StackRox Scanner 是 RHACS 中的默认扫描程序。StackRox 扫描程序源自 Clair v2 开源扫描程序的分叉。
- scanner-DB :此数据库包含 StackRox Scanner 的数据。
RHACS 扫描程序会分析每个镜像层,以确定基础操作系统,并确定操作系统软件包管理器安装的编程语言软件包和软件包。它们与来自各种漏洞来源的已知漏洞匹配。另外,StackRox Scanner 会识别节点的操作系统和平台中的漏洞。这些功能计划在以后的版本中为 Scanner V4。
3.2.1. 漏洞源
RHACS 使用以下漏洞源:
- alpine 安全数据库
- Amazon Linux 安全中心跟踪的数据
- Debian 安全跟踪器
- Oracle OVAL
- Photon OVAL
- Red Hat OVAL
- Red Hat CVE Map :这用于 Red Hat Container Catalog 中显示的镜像。
- SUSE OVAL
- Ubuntu OVAL
OSV :这用于与语言相关的漏洞,如 Go、Java、Node.js (JavaScript)、Python 和 Ruby。这个源可能会为漏洞提供 GitHub 安全公告(GHSA) ID 而不是 CVE 号。
注意RHACS 扫描程序 V4 还使用此许可证下的 OSV.dev 提供的 OSV 数据库。https://github.com/google/osv.dev/blob/master/LICENSE
NVD :这用于各种目的,如在供应商不提供信息时填补信息差距。例如,Alpine 不提供描述、CVSS 分数、严重性或发布日期。
注意此产品使用 NVD API,但不由 NVD 结束或认证。
- stackrox: 上游 StackRox 项目维护一组漏洞,这些漏洞可能会因为来自其他源的数据格式或数据不存在而被发现。
Scanner V4 Indexer 使用以下文件来索引红帽容器:
- repository-to-cpe.json :将 RPM 存储库映射到其相关的 cps,这是匹配基于 RHEL 的镜像的漏洞所必需的。
- container-name-repos-map.json :这与提供它们的存储库匹配。
3.3. 安全的集群服务
您可以使用 Red Hat Advanced Cluster Security Cloud Service 在您要保护的每个集群中安装安全集群服务。安全的集群服务包括以下组件:
- Sensor :传感器是负责分析和监控集群的服务。Sensor 侦听 OpenShift Container Platform 或 Kubernetes API 和 Collector 事件来报告集群的当前状态。Sensor 还根据 RHACS 云服务策略触发部署时间和运行时违反情况。另外,Sensor 负责所有集群交互,如应用网络策略、启动 RHACS 云服务策略的重新处理以及与 Admission 控制器交互。
- 准入控制器 : Admission 控制器可防止用户创建在 RHACS 云服务中违反安全策略的工作负载。
- Collector :收集器分析和监控集群节点上的容器活动。它收集容器运行时和网络活动信息,并将收集的数据发送到 Sensor。
- stackrox Scanner :在 Kubernetes 中,安全集群服务程序包括 Scanner-slim 作为可选组件。但是,在 OpenShift Container Platform 上,RHACS 云服务在每个安全集群中安装 Scanner-slim 版本,以便在 OpenShift Container Platform 集成 registry 和其他 registry 中扫描镜像。
- scanner-DB :此数据库包含 StackRox Scanner 的数据。
scanner V4: Scanner V4 组件会在安全集群中安装(如果已启用)。
- scanner V4 Indexer: Scanner V4 Indexer 执行镜像索引,之前被称为镜像分析。根据镜像和 registry 凭证,索引程序会从 registry 中拉取镜像。它找到基础操作系统(如果存在),并查找软件包。它存储和输出索引报告,其中包含给定镜像的查找。
扫描程序 V4 DB :如果启用了 Scanner V4,则安装此组件。此数据库存储扫描程序 V4 的信息,包括索引报告。为获得最佳性能,请为 Scanner V4 DB 配置持久性卷声明(PVC)。
注意当在与 Central 服务相同的集群中安装并安装到同一命名空间中时,安全集群服务不会部署 Scanner V4 组件。相反,假设 Central 服务已经包含 Scanner V4 的部署。
其他资源
3.4. 数据访问和权限
红帽无法访问在其中安装安全集群服务的集群。实际上,RHACS 云服务并不需要访问安全集群的权限。例如,您不需要创建一个新的 IAM 策略、访问角色或 API 令牌。
但是,RHACS 云服务会存储安全集群服务发送的数据。所有数据都在 RHACS 云服务中加密。在 RHACS 云服务平台中加密数据有助于确保数据的保密性和完整性。
当您在集群中安装安全集群服务时,它会生成数据并将其传送到 RHACS 云服务。此数据在 RHACS 云服务平台内保持安全,只有授权的 SRE 团队成员和系统才能访问这些数据。RHACS 云服务使用此数据来监控集群和应用程序的安全性和合规性,并提供有用的分析和分析,以帮助您优化部署。
第 4 章 RHACS 云服务入门
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)为您的 Red Hat OpenShift 和 Kubernetes 集群提供安全服务。有关安全集群支持的平台的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes Support Matrix。
先决条件
确保您可以从 Red Hat Hybrid Cloud Console 访问 Advanced Cluster Security 菜单选项。
注意要访问 RHACS Cloud Service 控制台,您需要 Red Hat Single Sign-On (SSO)凭证,如果配置了其他身份提供程序的凭证。请参阅 对 ACS 控制台的默认访问权限。
4.1. 安装步骤的高级概述
以下小节概述了安装步骤和相关文档的链接。
4.1.1. 保护 Red Hat OpenShift 集群
要使用 Operator 保护 Red Hat OpenShift 集群,请执行以下步骤:
- 验证您要保护的集群 是否满足要求。
- 在 Red Hat Hybrid Cloud 控制台中,创建一个 ACS 实例。
-
在您要保护的每个 Red Hat OpenShift 集群中,创建一个名为
stackrox
的项目。此项目将包含 RHACS 云服务安全集群的资源。 - 在 ACS 控制台中,创建一个 init 捆绑包。init 捆绑包包含允许 RHACS 云服务安全集群和 ACS 控制台通信的 secret。
- 在每个 Red Hat OpenShift 集群中,使用它来创建资源 来应用 init 捆绑包。
- 在每个 Red Hat OpenShift 集群上,安装 RHACS Operator。
-
在每个 Red Hat OpenShift 集群中,使用 Operator 在
stackrox
项目中创建安全 集群资源。 - 通过确保安全集群可以与 ACS 实例通信来验证安装。???
要使用 Helm chart 或 roxctl
CLI 保护 Red Hat OpenShift 集群,请执行以下步骤:
- 验证您要保护的集群 是否满足要求。
- 在 Red Hat Hybrid Cloud 控制台中,创建一个 ACS 实例。
-
在您要保护的每个 Red Hat OpenShift 集群中,创建一个名为
stackrox
的项目。此项目将包含 RHACS 云服务安全集群的资源。 - 在 ACS 控制台中,创建一个 init 捆绑包。init 捆绑包包含允许 RHACS 云服务安全集群和 ACS 控制台通信的 secret。
- 在每个 Red Hat OpenShift 集群中,使用它来创建资源 来应用 init 捆绑包。
-
在每个 Red Hat OpenShift 集群中,使用 Helm chart 或
roxctl
CLI 在stackrox
集群中安装安全集群资源。 - 通过确保安全集群可以与 ACS 实例通信来验证安装。???
4.1.2. 保护 Kubernetes 集群
要保护 Kubernetes 集群,请执行以下步骤:
- 验证您要保护的集群 是否满足要求。
- 在 Red Hat Hybrid Cloud 控制台中,创建一个 ACS 实例。
- 在 ACS 控制台中,创建一个 init 捆绑包。init 捆绑包包含允许 RHACS 云服务安全集群和 ACS 控制台通信的 secret。
- 在每个 Kubernetes 集群中,使用它创建资源 应用 init 捆绑包。
-
在每个 Kubernetes 集群中,使用 Helm chart 或
roxctl
CLI 安装安全 集群资源。 - 通过确保安全集群可以与 ACS 实例通信来验证安装。???
4.2. 对 ACS 控制台的默认访问权限
默认情况下,用户可用的身份验证机制是使用 Red Hat Single Sign-On (SSO)进行身份验证。您不能删除或更改 Red Hat SSO 身份验证提供程序。但是,您可以更改最小访问角色并添加额外规则,或者添加其他身份提供程序。
要了解身份验证提供程序在 ACS 中的工作方式,请参阅了解身份验证供应商。
为每个 ACS 控制台创建一个 sso.redhat.com
的专用 OIDC 客户端。所有 OIDC 客户端共享相同的 sso.redhat.com
域。sso.redhat.com
发布的令牌中的声明映射到 ACS 发布的令牌,如下所示:
-
realm_access.roles
到groups
-
org_id
torh_org_id
-
is_org_admin
torh_is_org_admin
-
sub
到userid
内置的 Red Hat SSO 身份验证提供程序将所需的属性 rh_org_id
设置为分配给创建 RHACS 云服务实例的用户的机构 ID。这是用户所属的机构帐户的 ID。这可以被视为用户所具备的"租户",并且归其所有。只有具有相同组织帐户的用户才能使用 Red Hat SSO 身份验证提供程序访问 ACS 控制台。
要更好地控制对 ACS 控制台的访问权限,请配置另一个身份提供程序,而不依赖于 Red Hat SSO 身份验证提供程序。如需更多信息,请参阅了解身份验证提供程序。要将其他身份验证提供程序配置为登录页面上的第一个身份验证选项,其名称应小于 Red Hat SSO
。
最小访问角色设置为 None
。为此字段分配不同的值,可以将 RHACS Cloud Service 实例访问到具有相同机构帐户的所有用户。
在内置 Red Hat SSO 身份验证提供程序中设置的其他规则包括:
-
将
userid
映射到Admin
的规则 -
将机构的管理员映射到
Admin
的规则
您可以添加更多规则,将 ACS 控制台的访问权限授予具有相同机构帐户的人员。例如,您可以使用 email
作为密钥。
第 5 章 Red Hat Advanced Cluster Security Cloud Service 的默认资源要求
5.1. RHACS 云服务的常规要求
在安装 Red Hat Advanced Cluster Security Cloud Service 前,您的系统必须满足几个要求。
您不能在以下位置安装 RHACS 云服务:
- Amazon Elastic File System(Amazon EFS)。使用带有默认 gp2 卷类型的 Amazon Elastic Block Store(Amazon EBS)。
- 没有 SIMD 扩展 (SSE) 4.2 指令集的旧 CPU。例如,比 Sandy Bridge 和 AMD 处理器旧的 Intel 处理器(比 Bulldozer 旧)。这些处理器在 2011 年发布。
要安装 RHACS 云服务,您必须有以下系统之一:
- OpenShift Container Platform 版本 4.11 或更高版本,以及带有 Red Hat Enterprise Linux CoreOS (RHCOS)或 Red Hat Enterprise Linux (RHEL)支持的操作系统的集群节点
受支持的受管 Kubernetes 平台,以及具有 Amazon Linux、CentOS、Container-Optimized OS (Google、Red Hat Enterprise Linux CoreOS (RHCOS)、Debian、Red Hat Enterprise Linux (RHEL)或 Ubuntu)支持的受管 Kubernetes 平台和集群节点
有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。
以下最低要求和建议适用于集群节点。
- 架构
支持的构架有
amd64、
、或ppc64
les390x
。注意IBM Power (
ppc64le
)、IBM Z (s390x
)和 IBM® LinuxONE (s390x
)集群支持安全集群服务。- 处理器
- 需要 3 个 CPU 内核。
- 内存
需要 6 GiB RAM。
注意请参阅每个组件的默认内存和 CPU 要求,并确保节点大小可以支持它们。
- Storage
对于 RHACS 云服务,不需要持久性卷声明(PVC)。但是,如果您启用了 Scanner V4 的安全集群,则强烈建议使用 PVC。使用固态驱动器(SSD)以获得最佳性能。但是,如果您没有 SSD,也可以使用另一个存储类型。
重要您不能将 Ceph FS 存储与 RHACS 云服务一起使用。红帽建议将 RBD 块模式 PVC 用于 RHACS 云服务。
如果您计划使用 Helm chart 安装 RHACS 云服务,您必须满足以下要求:
-
如果您要使用 Helm chart 安装和配置 RHACS 云服务,则必须具有 Helm 命令行界面(CLI) v3.2 或更新版本。使用
helm version
命令验证已安装的 Helm 版本。 -
您必须有权访问 Red Hat Container Registry。有关从
registry.redhat.io
下载镜像的详情,请参考 Red Hat Container Registry Authentication。
5.2. 安全的集群服务
安全集群服务包含以下组件:
- Sensor
- 准入控制器
- Collector
- scanner (可选)
- 扫描程序 V4 (可选)
如果使用 Web 代理或防火墙,您必须确保安全集群和 Central 可以在 HTTPS 端口 443 中进行通信。
5.2.1. Sensor
Sensor 监控 Kubernetes 和 OpenShift Container Platform 集群。这些服务目前在单个部署中进行部署,它处理与 Kubernetes API 的交互,并与其他 Red Hat Advanced Cluster Security for Kubernetes 组件协调。
CPU 和内存要求
下表列出了在安全集群中安装并运行 sensor 所需的最小 CPU 和内存值。
Sensor | CPU | 内存 |
---|---|---|
Request(请求) | 2 个内核 | 4 GiB |
限制 | 4 个核 | 8 GiB |
5.2.2. 准入控制器
Admission 控制器可防止用户创建违反您配置策略的工作负载。
CPU 和内存要求
默认情况下,准入控制服务运行 3 个副本。下表列出了每个副本的请求和限制。
准入控制器 | CPU | 内存 |
---|---|---|
Request(请求) | 0.05 个内核 | 100 MiB |
限制 | 0.5 个内核 | 500 MiB |
5.2.3. Collector
收集器将安全集群中每个节点的运行时活动监控为 DaemonSet。它连接到 Sensor 来报告此信息。收集器 Pod 有三个容器。第一个容器是收集器,它监控和报告节点上的运行时活动。另外两个是 compliance 和 node-inventory。
集合要求
要使用 CORE_BPF
集合方法,基本内核必须支持 BTF,并且 BTF 文件必须可供收集器使用。通常,内核版本必须高于 5.8 (适用于 RHEL 节点的4.18)和 CONFIG_DEBUG_INFO_BTF
配置选项必须被设置。
收集器在以下列表中显示的标准位置查找 BTF 文件:
例 5.1. BTF 文件位置
/sys/kernel/btf/vmlinux /boot/vmlinux-<kernel-version> /lib/modules/<kernel-version>/vmlinux-<kernel-version> /lib/modules/<kernel-version>/build/vmlinux /usr/lib/modules/<kernel-version>/kernel/vmlinux /usr/lib/debug/boot/vmlinux-<kernel-version> /usr/lib/debug/boot/vmlinux-<kernel-version>.debug /usr/lib/debug/lib/modules/<kernel-version>/vmlinux
/sys/kernel/btf/vmlinux
/boot/vmlinux-<kernel-version>
/lib/modules/<kernel-version>/vmlinux-<kernel-version>
/lib/modules/<kernel-version>/build/vmlinux
/usr/lib/modules/<kernel-version>/kernel/vmlinux
/usr/lib/debug/boot/vmlinux-<kernel-version>
/usr/lib/debug/boot/vmlinux-<kernel-version>.debug
/usr/lib/debug/lib/modules/<kernel-version>/vmlinux
如果存在这些文件,则内核可能会支持 BTF,CORE_BPF
是可配置的。
CPU 和内存要求
默认情况下,收集器 Pod 运行 3 个容器。下表列出了每个容器的请求和限值,以及每个收集器 Pod 的总数。
收集器容器
类型 | CPU | 内存 |
---|---|---|
Request(请求) | 0.06 内核 | 320 MiB |
限制 | 0.9 个内核 | 1000 MiB |
Compliance 容器
类型 | CPU | 内存 |
---|---|---|
Request(请求) | 0.01 个内核 | 10 MiB |
限制 | 1 个内核 | 2000 MiB |
node-inventory 容器
类型 | CPU | 内存 |
---|---|---|
Request(请求) | 0.01 个内核 | 10 MiB |
限制 | 1 个内核 | 500 MiB |
收集器 pod 总数要求
类型 | CPU | 内存 |
---|---|---|
Request(请求) | 0.07 个内核 | 340 MiB |
限制 | 2.75 个内核 | 3500 MiB |
5.2.4. 扫描程序
CPU 和内存要求
此表中的要求基于 3 个副本的默认值。
stackrox Scanner | CPU | 内存 |
---|---|---|
Request(请求) | 3 个内核 | 4500 MiB |
限制 | 6 个内核 | 12 GiB |
StackRox Scanner 需要 Scanner DB (PostgreSQL 15)存储数据。下表列出了安装和运行 Scanner DB 所需的最小内存和存储值。
扫描程序数据库(Scanner DB) | CPU | 内存 |
---|---|---|
Request(请求) | 0.2 个内核 | 512 MiB |
限制 | 2 个内核 | 4 GiB |
5.2.5. scanner V4
扫描程序 V4 是可选的。如果在安全集群中安装 Scanner V4,则应用以下要求。
CPU、内存和存储要求
scanner V4 Indexer
此表中的要求基于默认的 2 个副本。
scanner V4 Indexer | CPU | 内存 |
---|---|---|
Request(请求) | 2 个内核 | 3000 MiB |
限制 | 4 个核 | 6 GiB |
扫描程序 V4 DB
扫描程序 V4 需要 Scanner V4 DB (PostgreSQL 15)来存储数据。下表列出了安装和运行 Scanner V4 DB 所需的最小 CPU、内存和存储值。对于 Scanner V4 DB,不需要 PVC,但强烈建议这样做,因为它可确保最佳性能。
扫描程序 V4 DB | CPU | 内存 | Storage |
---|---|---|---|
Request(请求) | 0.2 个内核 | 2 GiB | 10 GiB |
限制 | 2 个内核 | 4 GiB | 10 GiB |
第 6 章 推荐的 Red Hat Advanced Cluster Security Cloud Service 资源要求
推荐的资源指南是通过执行集中测试在给定数量命名空间中创建以下对象来实现的:
- 10 个部署,有 3 个 pod 副本处于睡眠状态,挂载 4 个 secret、4 个配置映射
- 10 个服务,每个服务都指向之前部署的 TCP/8080 和 TCP/8443 端口
- 1 个路由指向上一个服务的第一个路由
- 包含 2048 个随机字符串字符的 10 个 secret
- 10 个配置映射包含 2048 个随机字符串字符
在分析结果期间,部署数量被识别为增加使用资源的主要因素。部署数量用于估算所需资源。
其他资源
6.1. 安全的集群服务
安全集群服务包含以下组件:
- Sensor
- 准入控制器
Collector
注意本页中不包含收集器组件。默认资源要求列出了在默认的资源要求页面中。
6.1.1. Sensor
Sensor 监控 Kubernetes 和 OpenShift Container Platform 集群。这些服务目前部署到单个部署中,该服务处理与 Kubernetes API 的交互,并与 Collector 协调。
内存和 CPU 要求
下表列出了在安全集群中运行的 Sensor 所需的最小内存和 CPU 值。
Deployments | CPU | 内存 |
---|---|---|
< 25,000 | 2 个内核 | 10 GiB |
< 50,000 | 2 个内核 | 20 GiB |
6.1.2. 准入控制器
Admission 控制器可防止用户创建违反您配置策略的工作负载。
内存和 CPU 要求
下表列出了在安全集群中运行的准入控制器所需的最小内存和 CPU 值。
Deployments | CPU | 内存 |
---|---|---|
< 25,000 | 0.5 个内核 | 300 MiB |
< 50,000 | 0.5 个内核 | 600 MiB |
第 7 章 使用 Red Hat OpenShift 安全集群设置 RHACS 云服务
7.1. 在 Red Hat Cloud 上创建 RHACS 云实例
通过在 Red Hat Hybrid Cloud Console 中选择一个实例来访问 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)。ACS 实例 包含红帽为您配置和管理的 RHACS 云服务管理界面和服务。管理界面连接到您的安全集群,其中包含扫描的服务并收集有关漏洞的信息。一个实例可以连接到并监控多个集群。
7.1.1. 在控制台中创建实例
在 Red Hat Hybrid Cloud 控制台中,创建一个 ACS 实例 以连接到您的安全集群。
流程
创建 ACS 实例 :
- 登录到 Red Hat Hybrid Cloud 控制台。
- 在导航菜单中选择 Advanced Cluster Security → ACS Instances。
选择 Create ACS 实例 并在显示字段中输入信息,或者从下拉列表中选择适当的选项:
- 名称 :输入 ACS 实例的名称。ACS 实例 包含 RHACS Central 组件,也称为 "Central",其中包括由红帽配置和管理的 RHACS 云服务管理界面和服务。您管理与 Central 通信的安全集群。您可以将多个安全集群连接到一个实例。
- 云供应商 : Central 所在的云供应商。选择 AWS。
Cloud region : Central 所在的云供应商的区域。选择以下区域之一:
- US-East, N. Virginia
- 欧洲、爱尔兰
- 可用区 : 使用默认值(多)。
- 单击 Create instance。
7.1.2. 后续步骤
-
在您要保护的每个 Red Hat OpenShift 集群中,创建一个名为
stackrox
的项目。此项目将包含 RHACS 云服务安全集群的资源。
7.2. 在 Red Hat OpenShift 安全集群中创建项目
在您要保护的每个 Red Hat OpenShift 集群上创建一个项目。然后,您可以使用此项目使用 Operator 或 Helm chart 安装 RHACS Cloud Service 资源。
7.2.1. 在集群中创建项目
流程
-
在 OpenShift Container Platform 集群中,进入 Home → Projects 并为 RHACS Cloud Service 创建一个项目。使用
stackrox
作为项目名称。
7.2.2. 后续步骤
- 在 ACS 控制台中,创建一个 init 捆绑包。init 捆绑包包含允许 RHACS 云服务安全集群和 ACS 控制台通信的 secret。
7.3. 为安全集群生成 init 捆绑包
在集群中安装 SecuredCluster
资源前,您必须创建一个 init 捆绑包。安装并配置 SecuredCluster
的集群,然后使用此捆绑包与 Central 进行身份验证。您可以使用 RHACS 门户或 roxctl
CLI 创建 init 捆绑包。然后,您可以使用它应用 init 捆绑包来创建资源。
您必须具有 Admin
用户角色才能创建 init 捆绑包。
7.3.1. 生成 init 捆绑包
7.3.1.1. 使用 RHACS 门户生成 init 捆绑包
您可以使用 RHACS 门户创建包含 secret 的 init 捆绑包。
您必须具有 Admin
用户角色才能创建 init 捆绑包。
流程
- 如"使用 Operator 方法验证中央安装"中所述,查找 RHACS 门户的地址。
- 登录到 RHACS 门户。
- 如果您没有安全集群,则会出现 Platform Configuration → Clusters 页面。
- 点 Create init bundle。
- 为集群 init 捆绑包输入一个名称。
- 选择您的平台。
- 选择您要用于安全集群的安装方法: Operator 或 Helm Chart。
点 Download 生成并下载以 YAML 文件形式创建的 init 捆绑包。如果您使用相同的安装方法,您可以对所有安全集群使用一个 init 捆绑包及其对应的 YAML 文件。
重要安全地存储此捆绑包,因为它包含 secret。
- 通过使用它来在安全集群中创建资源来应用 init 捆绑包。
- 在每个集群中安装安全的集群服务。
7.3.1.2. 使用 roxctl CLI 生成 init 捆绑包
您可以使用 roxctl
CLI 创建带有 secret 的 init 捆绑包。
您必须具有 Admin
用户角色才能创建 init 捆绑包。
先决条件
您已配置了
ROX_API_TOKEN
和ROX_CENTRAL_ADDRESS
环境变量:运行以下命令设置
ROX_API_TOKEN
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>
运行以下命令设置
ROX_CENTRAL_ADDRESS
环境变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
在 RHACS Cloud Service 中,当使用需要 Central 地址的 roxctl
命令时,请使用 Red Hat Hybrid Cloud Console 的 Instance Details 部分显示的 Central 实例地址。例如,使用 acs-ABCD12345.acs.rhcloud.com
而不是 acs-data-ABCD12345.acs.rhcloud.com
。
流程
要生成包含 Helm 安装 secret 的集群 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output \ <cluster_init_bundle_name> cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output \ <cluster_init_bundle_name> cluster_init_bundle.yaml
要生成包含 Operator 安装 secret 的集群 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output-secrets \ <cluster_init_bundle_name> cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output-secrets \ <cluster_init_bundle_name> cluster_init_bundle.yaml
重要确保您安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来设置多个安全集群。
7.3.2. 后续步骤
7.4. 为安全集群应用 init 捆绑包
使用它应用 init 捆绑包来创建资源。
您必须具有 Admin
用户角色才能应用 init 捆绑包。
7.4.1. 在安全集群中应用 init 捆绑包
在配置安全集群前,您必须使用它来应用 init 捆绑包以便在安全集群中创建所需资源。应用 init 捆绑包可让安全集群中的服务与 RHACS 云服务通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须生成了一个包含 secret 的 init 捆绑包。
-
您必须在安装安全集群服务的集群中创建了
stackrox
项目或命名空间。不需要将stackrox
用于项目,而是确保在扫描集群时不会报告 RHACS 进程的漏洞。
流程
要创建资源,请执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源: 在 OpenShift Container Platform Web 控制台中,确保您位于
stackrox
命名空间中。在顶部菜单中,点 + 打开 Import YAML 页面。您可以拖动 init 捆绑包文件或将其内容复制并粘贴到编辑器中,然后点 Create。命令完成后,显示显示collector-tls
、sensor-tls
和 admission-control-tls 的资源已创建。 使用 Red Hat OpenShift CLI 创建资源: 使用 Red Hat OpenShift CLI 运行以下命令来创建资源:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f <init_bundle>.yaml \ -n <stackrox>
$ oc create -f <init_bundle>.yaml \
1 -n <stackrox>
2
验证
重启 Sensor 以获取新证书。
有关如何重启 Sensor 的更多信息,请参阅"添加资源"部分中的"重启 Sensor 容器"。
7.4.2. 后续步骤
- 在每个 Red Hat OpenShift 集群上,安装 RHACS Operator。
- 在您要监控的所有集群中安装 RHACS 安全集群服务。
7.4.3. 其他资源
7.5. 安装 Operator
在安全集群中安装 RHACS Operator。
7.5.1. 为 RHACS 云服务安装 RHACS Operator
使用 OpenShift Container Platform 提供的 OperatorHub 是安装 RHACS Operator 的最简单方法。
先决条件
- 您可以使用具有 Operator 安装权限的账户访问 OpenShift Container Platform 集群。
- 您必须使用 OpenShift Container Platform 4.11 或更高版本。有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。
流程
- 在 Web 控制台中,进入 Operators → OperatorHub 页面。
- 如果没有显示 Red Hat Advanced Cluster Security for Kubernetes,在 Filter by keyword 框中输入 Advanced Cluster Security 来查找 Red Hat Advanced Cluster Security for Kubernetes Operator。
- 选择 Red Hat Advanced Cluster Security for Kubernetes Operator 查看详情页。
- 阅读 Operator 的信息,然后点 Install。
在 Install Operator 页面中:
- 保留安装模式的默认值 All namespaces on the cluster。
- 选择要在其中为 Installed namespace 字段安装 Operator 的特定命名空间。在 rhacs-operator 命名空间中安装 Red Hat Advanced Cluster Security for Kubernetes Operator。
为更新批准选择自动或手工。
如果选择自动更新,则当有新版 Operator 可用时,Operator Lifecycle Manager (OLM)会自动升级 Operator 的运行实例。
如果选择手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准更新请求,才能将 Operator 更新至最新版本。
红帽建议在 RHACS 云服务中为 Operator 启用自动升级。如需更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes Support Matrix。
- 点 Install。
验证
- 安装完成后,进入 Operators → Installed Operators,以验证 Red Hat Advanced Cluster Security for Kubernetes Operator 的状态是否为 Succeeded。
7.5.2. 后续步骤
-
在每个 Red Hat OpenShift 集群中,在
stackrox
项目中安装安全集群资源。
7.6. 从 RHACS 云服务安装安全集群资源
您可以使用 Operator 或 Helm chart 在安全集群中安装 RHACS 云服务。您还可以使用 roxctl
CLI 安装它,但不要使用这个方法,除非您有需要使用它的特定安装需要。
先决条件
- 您已创建了 Red Hat OpenShift 集群,并在其上安装 Operator。
- 在 RHACS 云服务中的 ACS 控制台中,您已创建并下载 init 捆绑包。
-
您可以使用
oc create
命令应用 init 捆绑包。 - 在安装过程中,您记下 Central API 端点地址。您可以从云控制台导航菜单中选择 Advanced Cluster Security → ACS Instances 来查看此信息,然后点您创建的 ACS 实例。
7.6.1. 使用 Operator 在安全集群中安装 RHACS
7.6.1.1. 安装安全的集群服务
您可以使用 Operator 在集群中安装 Secured Cluster 服务,这将创建 SecuredCluster
自定义资源。您必须在要监控的环境中的每个集群中安装 Secured Cluster 服务。
安装 Red Hat Advanced Cluster Security for Kubernetes 时:
-
如果您是首次安装 RHACS,您必须首先安装
Central
自定义资源,因为SecuredCluster
自定义资源安装依赖于 Central 生成的证书。 -
不要在名称以
kube
、openshift
或redhat
开头的项目中安装SecuredCluster
,或在istio-system
项目中安装 SecuredCluster。 -
如果要在同时托管 Central 的集群中安装 RHACS
SecuredCluster
自定义资源,请确保将其安装到与 Central 相同的命名空间中安装。 -
如果要在没有主机 Central 的集群中安装 Red Hat Advanced Cluster Security for Kubernetes
SecuredCluster
自定义资源,红帽建议您在自己的项目中安装 Red Hat Advanced Cluster Security for KubernetesSecuredCluster
自定义资源,而不是在您安装了 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中。
先决条件
- 如果使用 OpenShift Container Platform,您必须安装版本 4.11 或更高版本。
- 您已在要保护的集群中安装了 RHACS Operator,称为安全集群。
- 您已生成 init 捆绑包并将其应用到集群。
流程
- 在安全集群的 OpenShift Container Platform Web 控制台中,进入 Operators → Installed Operators 页面。
- 点 RHACS Operator。
如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为
rhacs-operator
。选择 Project: rhacs-operator → Create project。注意-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
rhacs-operator
。
-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
-
输入新项目名称(如
stackrox
),然后点 Create。红帽建议您使用stackrox
作为项目名称。 - 从 Operator 详情页面的中央导航菜单中点 Secured Cluster。
- 点 Create SecuredCluster。
在 Configure via 字段中选择以下选项之一:
- 表单视图 :如果要使用屏幕字段配置安全集群且不需要更改任何其他字段,则使用这个选项。
- YAML 视图 :使用此视图使用 YAML 文件设置安全集群。YAML 文件显示在窗口中,您可以在其中编辑字段。如果您选择这个选项,请在完成编辑完该文件时,点 Create。
- 如果使用 Form view,请通过接受或编辑默认名称来输入新项目名称。默认值为 stackrox-secured-cluster-services。
- 可选:为集群添加任何标签。
-
输入您的
SecuredCluster
自定义资源的唯一名称。 对于 Central 端点,请输入您的 Central 实例的地址。例如,如果 Central 位于
https://central.example.com
,则将中央端点指定为central.example.com
。- 对于 RHACS 云服务,请使用 Central API 端点地址。您可以从 Red Hat Hybrid Cloud Console 导航菜单中选择 Advanced Cluster Security → ACS Instances 来查看此信息,然后点您创建的 RHACS 实例。
-
只有在安装了 Central 的同一集群中安装安全集群服务时,才使用
central.stackrox.svc:443
的默认值。 - 在配置多个集群时,不要使用默认值。反之,在为每个集群配置 Central Endpoint 值时使用主机名。
- 对于剩余的字段,接受默认值,或者根据需要配置自定义值。例如,如果您使用自定义证书或不受信任的 CA,您可能需要配置 TLS。如需更多信息,请参阅"使用 Operator 为 RHACS 配置安全集群服务选项"。
- 点 Create。
在短暂暂停后,Secured Clusters 页面会显示
stackrox-secured-cluster-services
的状态。您可能会看到以下条件:- conditions: Deployed, Initialized: 已安装安全集群服务,安全集群与 Central 通信。
- conditions: Initialized, Irreconcilable: 安全集群没有与 Central 通信。确保将您在 RHACS web 门户中创建的 init 捆绑包应用到安全集群。
后续步骤
- 配置额外的安全集群设置(可选)。
- 验证安装。
7.6.2. 使用 Helm chart 在安全集群中安装 RHACS 云服务
您可以使用没有自定义的 Helm chart、使用默认值或配置参数自定义的 Helm chart 在安全集群中安装 RHACS。
首先,确保添加 Helm Chart 仓库。
7.6.2.1. 添加 Helm Chart 仓库
流程
添加 RHACS chart 存储库。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(
central-services
)。注意您只部署集中式组件一次,并可使用同一安装监控多个独立集群。
安全集群服务 Helm Chart (
secured-cluster-services
),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm search repo -l rhacs/
$ helm search repo -l rhacs/
7.6.2.2. 使用 Helm chart 在安全集群中安装 RHACS 云服务
7.6.2.2.1. 在不使用自定义配置的情况下安装 secured-cluster-services Helm chart
使用以下说明安装 secure-cluster-services
Helm chart,以部署 per-cluster 和 per-node 组件(Sensor、Admission controller、Collector 和 Scanner-slim)。
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和一个 pull secret 进行身份验证。有关从
registry.redhat.io
下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须具有公开 Central 服务的地址。
流程
在基于 Kubernetes 的集群上运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <path_to_cluster_init_bundle.yaml> \ -f <path_to_pull_secret.yaml> \ --set clusterName=<name_of_the_secured_cluster> \ --set centralEndpoint=<endpoint_of_central_service>
$ helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <path_to_cluster_init_bundle.yaml> \
1 -f <path_to_pull_secret.yaml> \
2 --set clusterName=<name_of_the_secured_cluster> \ --set centralEndpoint=<endpoint_of_central_service>
3 --set imagePullSecrets.username=<your redhat.com username> \
4 --set imagePullSecrets.password=<your redhat.com password>
5 在 OpenShift Container Platform 集群中运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <path_to_cluster_init_bundle.yaml> \ -f <path_to_pull_secret.yaml> \ --set clusterName=<name_of_the_secured_cluster> \ --set centralEndpoint=<endpoint_of_central_service>
$ helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <path_to_cluster_init_bundle.yaml> \
1 -f <path_to_pull_secret.yaml> \
2 --set clusterName=<name_of_the_secured_cluster> \ --set centralEndpoint=<endpoint_of_central_service>
3 --set scanner.disable=false
4
7.6.2.3. 使用自定义配置 secured-cluster-services Helm chart
您可以将 Helm Chart 配置参数与 helm install
和 helm upgrade
命令一起使用。使用 --set
选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml
:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml
:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。
使用 secured-cluster-services
Helm Chart 时,请不要更改属于 chart 的 values.yaml
文件。
7.6.2.3.1. 配置参数
参数 | Description |
---|---|
| 集群的名称。 |
|
Central 端点的地址。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
| Sensor 端点的地址,包括端口号。 |
| Sensor 容器的镜像拉取策略。 |
| Sensor 使用的内部服务到服务 TLS 证书。 |
| Sensor 使用的内部服务到服务 TLS 证书密钥。 |
| Sensor 容器的内存请求。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Sensor 容器的内存限值。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
|
| Collector 镜像的名称。 |
| 用于主镜像的 registry 地址。 |
| 用于 Collector 镜像的 registry 地址。 |
| 用于 Scanner 镜像的 registry 地址。 |
| 用于 Scanner DB 镜像的 registry 地址。 |
| 用于 Scanner V4 镜像的 registry 地址。 |
| 用于 Scanner V4 DB 镜像的 registry 地址。 |
|
|
| Collector 镜像的镜像拉取策略。 |
|
使用 |
|
使用 |
|
|
| Collector 容器的镜像拉取策略。 |
| Compliance 容器的镜像拉取策略。 |
|
如果指定了 |
| Collector 容器的内存请求。使用此参数覆盖默认值。 |
| Collector 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Collector 容器的内存限值。使用此参数覆盖默认值。 |
| Collector 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Compliance 容器的内存请求。使用此参数覆盖默认值。 |
| Compliance 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Compliance 容器的内存限值。使用此参数覆盖默认值。 |
| Compliance 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Collector 使用的内部服务到服务的 TLS 证书。 |
| Collector 使用的内部服务到服务的 TLS 证书密钥。 |
|
此设置控制 Kubernetes 是否配置为联系 Red Hat Advanced Cluster Security for Kubernetes,使用 |
|
当将此参数设置为 |
|
此设置控制集群是否被配置为联系 Red Hat Advanced Cluster Security for Kubernetes,使用 |
| 此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略 ; 如果被禁用,则会自动接受所有 AdmissionReview 请求。 |
|
此设置控制准入控制服务的行为。您必须把 |
|
如果将这个选项设置为 |
|
将它设置为 |
|
在将其标记为失败前,使用此参数指定 RHACS 必须等待准入审核的最大秒数。如果准入 Webhook 在超时时间结束前没有收到请求的信息,它会失败,但处于打开状态时,它仍然允许操作成功。例如,准入控制器允许创建部署,即使扫描超时,RHACS 无法确定部署是否违反了策略。从版本 4.5 开始,红帽将 RHACS 准入控制器 webhook 的默认超时设置从 20 秒减少到 10 秒,从而导致 |
| Admission Control 容器的内存请求。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Admission Control 容器的内存限值。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
| Admission Control 使用的内部服务到服务的 TLS 证书。 |
| Admission Control 使用的内部服务对服务的 TLS 证书密钥。 |
|
使用此参数覆盖默认的 |
|
如果指定了 |
|
指定 |
|
指定 |
|
已弃用。如果要使用 slim Collector 镜像部署 Collector,请指定 |
| Sensor 的资源规格。 |
| Admission 控制器的资源规格。 |
| Collector 的资源规格。 |
| Collector 的 Compliance 容器的资源规格。 |
|
如果将此选项设置为 |
|
如果将此选项设置为 |
|
如果将此选项设置为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
| Collector 的 Compliance 容器的资源规格。 |
| 通过设置此参数,您可以修改扫描程序日志级别。使用这个选项仅用于故障排除目的。 |
|
如果将此选项设置为 |
| 自动扩展的最小副本数。默认值为 2。 |
| 自动扩展的最大副本数。默认值为 5。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
| Scanner 容器的内存请求。使用此参数覆盖默认值。 |
| Scanner 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Scanner 容器的内存限值。使用此参数覆盖默认值。 |
| Scanner 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Scanner DB 容器的内存请求。使用此参数覆盖默认值。 |
| Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Scanner DB 容器的内存限值。使用此参数覆盖默认值。 |
| Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
如果将此选项设置为 |
|
为了在网络级别提供安全性,RHACS 在安装了安全集群资源的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
7.6.2.3.1.1. 环境变量
您可以采用以下格式指定 Sensor 和 Admission Controller 的环境变量:
customize: envVars: ENV_VAR1: "value1" ENV_VAR2: "value2"
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
通过 customize
设置,您可以为此 Helm Chart 创建的所有对象指定自定义 Kubernetes 元数据(标签和注解)以及工作负载的其他 pod 标签、Pod 注解和容器环境变量。
配置是分层的,在更通用范围(例如,所有对象)中定义的元数据被覆盖为更通用范围的元数据(例如,仅适用于 Sensor 部署)。
7.6.2.3.2. 使用自定义安装 secured-cluster-services Helm chart
配置 values-public.yaml
和 values-private.yaml
文件后,安装 secure-cluster-services
Helm chart 以部署以下 per-cluster 和 per-node 组件:
- Sensor
- 准入控制器
- Collector
- scanner:安装 StackRox Scanner 时为安全集群可选
- 扫描程序 DB:安装 StackRox Scanner 时为安全集群可选
- 安装 Scanner V4 Indexer 和 Scanner V4 DB 时,扫描程序 V4 Indexer 和 Scanner V4 DB: 可选
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和一个 pull secret 进行身份验证。有关从
registry.redhat.io
下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须有用于公开 Central 服务的地址和端口号。
流程
运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password>
$ helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \
1 --set imagePullSecrets.username=<username> \
2 --set imagePullSecrets.password=<password>
3
要使用持续集成(CI)系统部署 secure-cluster-services
Helm Chart,请将 init 捆绑包 YAML 文件作为环境变量传递给 helm install
命令:
helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
- 1
- 如果您使用 base64 编码变量,请使用
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)
命令。
7.6.2.4. 在部署 secure-cluster-services Helm chart 后更改配置选项
在部署 secure-cluster-services
Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade
命令进行修改时,会应用以下准则和要求:
-
您还可以使用
--set
或--set-file
参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用 Scanner V4)需要为组件发布新证书。因此,您必须在进行这些更改时提供 CA。
-
如果 CA 在初始安装过程中由 Helm chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade
命令。central-services
Helm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-services
chart 时提供,那么您必须在使用helm upgrade
命令时再次执行该操作,例如在helm upgrade
命令中使用--reuse-values
标志。
-
如果 CA 在初始安装过程中由 Helm chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml
和values-private.yaml
配置文件。 运行
helm upgrade
命令并使用-f
选项指定配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \
1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
- 1
- 如果您修改了没有包括在
values_public.yaml
和values_private.yaml
文件中的值,请包含--reuse-values
参数。
7.6.3. 使用 roxctl CLI 在安全集群中安装 RHACS
要使用 CLI 在安全集群中安装 RHACS,请执行以下步骤:
-
安装
roxctl
CLI。 - 安装 Sensor。
7.6.3.1. 安装 roxctl CLI
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装 roxctl
。
7.6.3.1.1. 在 Linux 中安装 roxctl CLI
您可以按照以下流程在 Linux 上安装 roxctl
CLI 二进制文件。
amd64、
和 arm
64、ppc64
les390x
架构提供了 Linux 的 roxctl
CLI。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
7.6.3.1.2. 在 macOS 上安装 roxctl CLI
您可以按照以下流程在 macOS 中安装 roxctl
CLI 二进制文件。
macOS 的 roxctl
CLI 可用于 amd64
和 arm64
架构。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
从二进制文件中删除所有扩展属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xattr -c roxctl
$ xattr -c roxctl
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
7.6.3.1.3. 在 Windows 上安装 roxctl CLI
您可以按照以下流程在 Windows 上安装 roxctl
CLI 二进制文件。
amd64
架构提供了适用于 Windows 的 roxctl
CLI。
流程
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
7.6.3.2. 安装传感器(Sensor)
要监控集群,您必须部署 Sensor。您必须将 Sensor 部署到要监控的每个集群中。此安装方法也称为清单安装方法。
要使用清单安装方法执行安装,请仅遵循以下流程之一 :
- 使用 RHACS web 门户下载集群捆绑包,然后提取并运行传感器脚本。
-
使用
roxctl
CLI 为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联。
先决条件
- 您必须已安装了 Central 服务,也可以在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)上选择 ACS 实例 来访问 Central 服务。
7.6.3.2.1. 使用 Web 门户的清单安装方法
流程
- 在安全集群中,在 RHACS 门户中,进入 Platform Configuration → Clusters。
- 选择 Secure a cluster → Legacy 安装方法。
- 为集群指定一个名称。
根据您要部署 Sensor 的位置,为字段提供适当的值。
- 如果您要在同一集群中部署 Sensor,请接受所有字段的默认值。
-
如果您要部署到不同的集群中,请将
central.stackrox.svc:443
替换为负载均衡器、节点端口或其他地址,包括端口号,可以被其他集群访问。 如果您使用一个支持非 gRPC 的负载均衡器,如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请使用 WebSocket Secure (
wss
) 协议。使用ws
:-
使用
wss://
为地址加上前缀。 -
在地址后添加端口号,例如
ws://stackrox-central.example.com:443
。
-
使用
- 点 Next 以继续 Sensor 设置。
点 Download YAML File and Keys 下载集群捆绑包(zip 归档)。
重要集群捆绑包 zip 存档包括每个集群的唯一配置和密钥。不要在另一个集群中重复使用相同的文件。
在可以访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor
脚本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
如果您收到没有部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
7.6.3.2.2. 使用 roxctl CLI 安装清单
流程
运行以下命令,为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
1 - 1
- 对于
--openshift-version
选项,请指定集群的主 OpenShift Container Platform 版本号。例如,为 OpenShift Container Platform 版本3.x
指定3
,为 OpenShift Container Platform 版本4.x
指定4
。
在可以访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor
脚本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
如果您收到没有部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
验证
返回 RHACS 门户并检查部署是否成功。如果成功,当在 Platform Configuration → Clusters 中查看集群列表时,集群状态会显示一个绿色勾号和 Healthy 状态。如果您没有看到绿色勾选标记,请使用以下命令检查问题:
在 OpenShift Container Platform 中输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod -n stackrox -w
$ oc get pod -n stackrox -w
在 Kubernetes 上,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -w
- 点 Finish 关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示部署、镜像和策略违反情况。
7.6.4. 后续步骤
- 通过确保安全集群可以与 ACS 实例通信来验证安装。???
7.7. 在 RHACS 云服务中为安全集群服务配置代理
您必须在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)环境中为安全集群服务配置代理设置,以便在安全集群和指定代理服务器之间建立连接。这样可确保可靠的数据收集和传输。
7.7.1. 在 SecuredCluster CR 中指定环境变量
要配置出口代理,您可以使用集群范围的 Red Hat OpenShift 代理,或者在 SecuredCluster 自定义资源(CR)配置文件中指定 HTTP_PROXY
、HTTPS_PROXY
和 NO_PROXY
环境变量,以确保代理正确使用代理并绕过指定域中的内部请求。
代理配置适用于所有运行的服务:Sensor、Collector、Admission Controller 和 Scanner。
流程
在 SecuredCluster CR 配置文件中的自定义规格中指定
HTTP_PROXY
、HTTPS_PROXY
和NO_PROXY
环境变量:例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow proxy collector
# proxy collector customize: envVars: - name: HTTP_PROXY value: http://egress-proxy.stackrox.svc:xxxx
1 - name: HTTPS_PROXY value: http://egress-proxy.stackrox.svc:xxxx
2 - name: NO_PROXY value: .stackrox.svc
3
7.8. 验证安全集群的安装
安装 RHACS 云服务后,您可以执行一些步骤来验证安装是否成功。
要验证安装,请从 Red Hat Hybrid Cloud 控制台访问 ACS 控制台。仪表板显示 RHACS 云服务监控的集群数量,以及节点、部署、镜像和违反情况的信息。
如果没有数据出现在 ACS 控制台中:
- 确保至少有一个安全集群连接到 RHACS 云服务实例。如需更多信息,请参阅从 RHACS 云服务安装安全集群资源。
- 检查 Sensor pod 日志,以确保与 RHACS 云服务实例的连接成功。
- 在 Red Hat OpenShift 集群中,进入 Platform Configuration → Clusters 来验证组件是否健康并查看额外的操作信息。
-
检查本地集群的 Operator 中的
SecuredCluster
API 中的值,以确保正确输入了 Central API 端点。这个值应该与 Red Hat Hybrid Cloud Console 中的 ACS 实例 详情中所示的值相同。
第 8 章 使用 Kubernetes 安全集群设置 RHACS 云服务
8.1. 为 Kubernetes 集群创建 RHACS 云服务实例
通过在 Red Hat Hybrid Cloud Console 中选择一个实例来访问 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)。ACS 实例 包含红帽为您配置和管理的 RHACS 云服务管理界面和服务。管理界面连接到您的安全集群,其中包含扫描的服务并收集有关漏洞的信息。一个实例可以连接到并监控多个集群。
8.1.1. 在控制台中创建实例
在 Red Hat Hybrid Cloud 控制台中,创建一个 ACS 实例 以连接到您的安全集群。
流程
创建 ACS 实例 :
- 登录到 Red Hat Hybrid Cloud 控制台。
- 在导航菜单中选择 Advanced Cluster Security → ACS Instances。
选择 Create ACS 实例 并在显示字段中输入信息,或者从下拉列表中选择适当的选项:
- 名称 :输入 ACS 实例的名称。ACS 实例 包含 RHACS Central 组件,也称为 "Central",其中包括由红帽配置和管理的 RHACS 云服务管理界面和服务。您管理与 Central 通信的安全集群。您可以将多个安全集群连接到一个实例。
- 云供应商 : Central 所在的云供应商。选择 AWS。
Cloud region : Central 所在的云供应商的区域。选择以下区域之一:
- US-East, N. Virginia
- 欧洲、爱尔兰
- 可用区 : 使用默认值(多)。
- 单击 Create instance。
8.1.2. 后续步骤
-
在您要保护的每个 Kubernetes 集群中,使用 Helm chart 或
roxctl
CLI 安装安全 集群资源。
8.2. 为 Kubernetes 安全集群生成 init 捆绑包
在集群中安装 SecuredCluster
资源前,您必须创建一个 init 捆绑包。安装并配置 SecuredCluster
的集群,然后使用此捆绑包与 ACS 控制台进行身份验证。您可以使用 RHACS 门户或 roxctl
CLI 创建 init 捆绑包。然后,您可以使用它应用 init 捆绑包来创建资源。
8.2.1. 使用 RHACS 门户生成 init 捆绑包
您可以使用 RHACS 门户创建包含 secret 的 init 捆绑包。
您必须具有 Admin
用户角色才能创建 init 捆绑包。
流程
- 如"使用 Operator 方法验证中央安装"中所述,查找 RHACS 门户的地址。
- 登录到 RHACS 门户。
- 如果您没有安全集群,则会出现 Platform Configuration → Clusters 页面。
- 点 Create init bundle。
- 为集群 init 捆绑包输入一个名称。
- 选择您的平台。
- 选择您要用于安全集群的安装方法: Operator 或 Helm Chart。
点 Download 生成并下载以 YAML 文件形式创建的 init 捆绑包。如果您使用相同的安装方法,您可以对所有安全集群使用一个 init 捆绑包及其对应的 YAML 文件。
重要安全地存储此捆绑包,因为它包含 secret。
- 通过使用它来在安全集群中创建资源来应用 init 捆绑包。
- 在每个集群中安装安全的集群服务。
8.2.2. 使用 roxctl CLI 生成 init 捆绑包
您可以使用 roxctl
CLI 创建带有 secret 的 init 捆绑包。
您必须具有 Admin
用户角色才能创建 init 捆绑包。
先决条件
您已配置了
ROX_API_TOKEN
和ROX_CENTRAL_ADDRESS
环境变量:运行以下命令设置
ROX_API_TOKEN
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>
运行以下命令设置
ROX_CENTRAL_ADDRESS
环境变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
在 RHACS Cloud Service 中,当使用需要 Central 地址的 roxctl
命令时,请使用 Red Hat Hybrid Cloud Console 的 Instance Details 部分显示的 Central 实例地址。例如,使用 acs-ABCD12345.acs.rhcloud.com
而不是 acs-data-ABCD12345.acs.rhcloud.com
。
流程
要生成包含 Helm 安装 secret 的集群 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output \ <cluster_init_bundle_name> cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output \ <cluster_init_bundle_name> cluster_init_bundle.yaml
要生成包含 Operator 安装 secret 的集群 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output-secrets \ <cluster_init_bundle_name> cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate --output-secrets \ <cluster_init_bundle_name> cluster_init_bundle.yaml
重要确保您安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来设置多个安全集群。
8.2.3. 后续步骤
8.3. 为 Kubernetes 安全集群应用 init 捆绑包
使用它应用 init 捆绑包来创建资源。
8.3.1. 在安全集群中应用 init 捆绑包
在配置安全集群前,您必须使用它来应用 init 捆绑包以便在安全集群中创建所需资源。应用 init 捆绑包可让安全集群中的服务与 RHACS 云服务通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须生成了一个包含 secret 的 init 捆绑包。
-
您必须在安装安全集群服务的集群中创建了
stackrox
项目或命名空间。不需要将stackrox
用于项目,而是确保在扫描集群时不会报告 RHACS 进程的漏洞。
流程
要创建资源,请执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源: 在 OpenShift Container Platform Web 控制台中,确保您位于
stackrox
命名空间中。在顶部菜单中,点 + 打开 Import YAML 页面。您可以拖动 init 捆绑包文件或将其内容复制并粘贴到编辑器中,然后点 Create。命令完成后,显示显示collector-tls
、sensor-tls
和 admission-control-tls 的资源已创建。 使用 Red Hat OpenShift CLI 创建资源: 使用 Red Hat OpenShift CLI 运行以下命令来创建资源:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f <init_bundle>.yaml \ -n <stackrox>
$ oc create -f <init_bundle>.yaml \
1 -n <stackrox>
2 使用
kubectl
CLI,运行以下命令来创建资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl create namespace stackrox kubectl create -f <init_bundle>.yaml \ -n <stackrox>
$ kubectl create namespace stackrox
1 $ kubectl create -f <init_bundle>.yaml \
2 -n <stackrox>
3
验证
重启 Sensor 以获取新证书。
有关如何重启 Sensor 的更多信息,请参阅"添加资源"部分中的"重启 Sensor 容器"。
8.3.2. 后续步骤
- 在您要监控的所有集群中安装 RHACS 安全集群服务。
8.3.3. 其他资源
8.4. 从 Kubernetes 集群上的 RHACS 云服务安装安全集群服务
您可以使用以下方法之一在安全集群中安装 RHACS 云服务:
- 使用 Helm chart
-
使用
roxctl
CLI (除非有需要使用它的特定安装需要)
8.4.1. 使用 Helm chart 在安全集群中安装 RHACS 云服务
您可以使用没有自定义的 Helm chart 在安全集群中安装 RHACS,方法是使用带有默认值的 Helm chart,或使用带有自定义配置参数的 Helm chart。
首先,确保添加 Helm Chart 仓库。
8.4.1.1. 添加 Helm Chart 仓库
流程
添加 RHACS chart 存储库。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
安全集群服务 Helm Chart (
secured-cluster-services
),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm search repo -l rhacs/
$ helm search repo -l rhacs/
8.4.1.2. 使用 Helm chart 在安全集群中安装 RHACS 云服务
8.4.1.2.1. 在不使用自定义配置的情况下安装 secured-cluster-services Helm chart
使用以下说明安装 secure-cluster-services
Helm chart,以部署 per-cluster 和 per-node 组件(Sensor、Admission controller、Collector 和 Scanner-slim)。
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和一个 pull secret 进行身份验证。有关从
registry.redhat.io
下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须具有 Central API 端点地址。您可以从 Red Hat Hybrid Cloud Console 导航菜单中选择 Advanced Cluster Security → ACS Instances 来查看此信息,然后点您创建的 ACS 实例。
8.4.1.3. 使用自定义配置 secured-cluster-services Helm chart
流程
本节论述了可用于 helm install
和 helm upgrade
命令的 Helm Chart 配置参数。您可以使用 --set
选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml
:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml
:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。
在使用 secured-cluster-services
Helm Chart 时,不要修改属于 chart 的 values.yaml
文件。
8.4.1.3.1. 配置参数
参数 | Description |
---|---|
| 集群的名称。 |
|
Central 端点的地址。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
| Sensor 端点的地址,包括端口号。 |
| Sensor 容器的镜像拉取策略。 |
| Sensor 使用的内部服务到服务 TLS 证书。 |
| Sensor 使用的内部服务到服务 TLS 证书密钥。 |
| Sensor 容器的内存请求。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Sensor 容器的内存限值。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
|
| Collector 镜像的名称。 |
| 用于主镜像的 registry 地址。 |
| 用于 Collector 镜像的 registry 地址。 |
| 用于 Scanner 镜像的 registry 地址。 |
| 用于 Scanner DB 镜像的 registry 地址。 |
| 用于 Scanner V4 镜像的 registry 地址。 |
| 用于 Scanner V4 DB 镜像的 registry 地址。 |
|
|
| Collector 镜像的镜像拉取策略。 |
|
使用 |
|
使用 |
|
|
| Collector 容器的镜像拉取策略。 |
| Compliance 容器的镜像拉取策略。 |
|
如果指定了 |
| Collector 容器的内存请求。使用此参数覆盖默认值。 |
| Collector 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Collector 容器的内存限值。使用此参数覆盖默认值。 |
| Collector 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Compliance 容器的内存请求。使用此参数覆盖默认值。 |
| Compliance 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Compliance 容器的内存限值。使用此参数覆盖默认值。 |
| Compliance 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Collector 使用的内部服务到服务的 TLS 证书。 |
| Collector 使用的内部服务到服务的 TLS 证书密钥。 |
|
此设置控制 Kubernetes 是否配置为联系 Red Hat Advanced Cluster Security for Kubernetes,使用 |
|
当将此参数设置为 |
|
此设置控制集群是否被配置为联系 Red Hat Advanced Cluster Security for Kubernetes,使用 |
| 此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略 ; 如果被禁用,则会自动接受所有 AdmissionReview 请求。 |
|
此设置控制准入控制服务的行为。您必须把 |
|
如果将这个选项设置为 |
|
将它设置为 |
|
在将其标记为失败前,使用此参数指定 RHACS 必须等待准入审核的最大秒数。如果准入 Webhook 在超时时间结束前没有收到请求的信息,它会失败,但处于打开状态时,它仍然允许操作成功。例如,准入控制器允许创建部署,即使扫描超时,RHACS 无法确定部署是否违反了策略。从版本 4.5 开始,红帽将 RHACS 准入控制器 webhook 的默认超时设置从 20 秒减少到 10 秒,从而导致 |
| Admission Control 容器的内存请求。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Admission Control 容器的内存限值。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
| Admission Control 使用的内部服务到服务的 TLS 证书。 |
| Admission Control 使用的内部服务对服务的 TLS 证书密钥。 |
|
使用此参数覆盖默认的 |
|
如果指定了 |
|
指定 |
|
指定 |
|
已弃用。如果要使用 slim Collector 镜像部署 Collector,请指定 |
| Sensor 的资源规格。 |
| Admission 控制器的资源规格。 |
| Collector 的资源规格。 |
| Collector 的 Compliance 容器的资源规格。 |
|
如果将此选项设置为 |
|
如果将此选项设置为 |
|
如果将此选项设置为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
| Collector 的 Compliance 容器的资源规格。 |
| 通过设置此参数,您可以修改扫描程序日志级别。使用这个选项仅用于故障排除目的。 |
|
如果将此选项设置为 |
| 自动扩展的最小副本数。默认值为 2。 |
| 自动扩展的最大副本数。默认值为 5。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
| Scanner 容器的内存请求。使用此参数覆盖默认值。 |
| Scanner 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Scanner 容器的内存限值。使用此参数覆盖默认值。 |
| Scanner 容器的 CPU 限制。使用此参数覆盖默认值。 |
| Scanner DB 容器的内存请求。使用此参数覆盖默认值。 |
| Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Scanner DB 容器的内存限值。使用此参数覆盖默认值。 |
| Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
如果将此选项设置为 |
|
为了在网络级别提供安全性,RHACS 在安装了安全集群资源的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
8.4.1.3.1.1. 环境变量
您可以采用以下格式指定 Sensor 和 Admission Controller 的环境变量:
customize: envVars: ENV_VAR1: "value1" ENV_VAR2: "value2"
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
通过 customize
设置,您可以为此 Helm Chart 创建的所有对象指定自定义 Kubernetes 元数据(标签和注解)以及工作负载的其他 pod 标签、Pod 注解和容器环境变量。
配置是分层的,在更通用范围(例如,所有对象)中定义的元数据被覆盖为更通用范围的元数据(例如,仅适用于 Sensor 部署)。
8.4.1.3.2. 使用自定义安装 secured-cluster-services Helm chart
配置 values-public.yaml
和 values-private.yaml
文件后,安装 secure-cluster-services
Helm chart 以部署以下 per-cluster 和 per-node 组件:
- Sensor
- 准入控制器
- Collector
- scanner:安装 StackRox Scanner 时为安全集群可选
- 扫描程序 DB:安装 StackRox Scanner 时为安全集群可选
- 安装 Scanner V4 Indexer 和 Scanner V4 DB 时,扫描程序 V4 Indexer 和 Scanner V4 DB: 可选
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和一个 pull secret 进行身份验证。有关从
registry.redhat.io
下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须具有 Central API 端点地址。您可以从 Red Hat Hybrid Cloud Console 导航菜单中选择 Advanced Cluster Security → ACS Instances 来查看此信息,然后点您创建的 RHACS 实例。
流程
运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password>
$ helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \
1 --set imagePullSecrets.username=<username> \
2 --set imagePullSecrets.password=<password>
3
要使用持续集成(CI)系统部署 secure-cluster-services
Helm Chart,请将 init 捆绑包 YAML 文件作为环境变量传递给 helm install
命令:
helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
- 1
- 如果您使用 base64 编码变量,请使用
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)
命令。
8.4.1.4. 在部署 secure-cluster-services Helm chart 后更改配置选项
在部署 secure-cluster-services
Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade
命令进行修改时,会应用以下准则和要求:
-
您还可以使用
--set
或--set-file
参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用 Scanner V4)需要为组件发布新证书。因此,您必须在进行这些更改时提供 CA。
-
如果 CA 在初始安装过程中由 Helm chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade
命令。central-services
Helm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-services
chart 时提供,那么您必须在使用helm upgrade
命令时再次执行该操作,例如在helm upgrade
命令中使用--reuse-values
标志。
-
如果 CA 在初始安装过程中由 Helm chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml
和values-private.yaml
配置文件。 运行
helm upgrade
命令并使用-f
选项指定配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \
1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
- 1
- 如果您修改了没有包括在
values_public.yaml
和values_private.yaml
文件中的值,请包含--reuse-values
参数。
8.4.2. 使用 roxctl CLI 在安全集群中安装 RHACS
要使用 CLI 在安全集群中安装 RHACS,请执行以下步骤:
-
安装
roxctl
CLI。 - 安装 Sensor。
8.4.2.1. 安装 roxctl CLI
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装 roxctl
。
8.4.2.1.1. 在 Linux 中安装 roxctl CLI
您可以按照以下流程在 Linux 上安装 roxctl
CLI 二进制文件。
amd64、
和 arm
64、ppc64
les390x
架构提供了 Linux 的 roxctl
CLI。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
8.4.2.1.2. 在 macOS 上安装 roxctl CLI
您可以按照以下流程在 macOS 中安装 roxctl
CLI 二进制文件。
macOS 的 roxctl
CLI 可用于 amd64
和 arm64
架构。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
从二进制文件中删除所有扩展属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xattr -c roxctl
$ xattr -c roxctl
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
8.4.2.1.3. 在 Windows 上安装 roxctl CLI
您可以按照以下流程在 Windows 上安装 roxctl
CLI 二进制文件。
amd64
架构提供了适用于 Windows 的 roxctl
CLI。
流程
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
8.4.2.2. 安装传感器(Sensor)
要监控集群,您必须部署 Sensor。您必须将 Sensor 部署到要监控的每个集群中。此安装方法也称为清单安装方法。
要使用清单安装方法执行安装,请仅遵循以下流程之一 :
- 使用 RHACS web 门户下载集群捆绑包,然后提取并运行传感器脚本。
-
使用
roxctl
CLI 为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联。
先决条件
- 您必须已安装了 Central 服务,也可以在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)上选择 ACS 实例 来访问 Central 服务。
8.4.2.2.1. 使用 Web 门户的清单安装方法
流程
- 在安全集群中,在 RHACS 门户中,进入 Platform Configuration → Clusters。
- 选择 Secure a cluster → Legacy 安装方法。
- 为集群指定一个名称。
根据您要部署 Sensor 的位置,为字段提供适当的值。
- 输入 Central API 端点地址。您可以从 Red Hat Hybrid Cloud Console 导航菜单中选择 Advanced Cluster Security → ACS Instances 来查看此信息,然后点您创建的 RHACS 实例。
- 点 Next 以继续 Sensor 设置。
点 Download YAML File and Keys 下载集群捆绑包(zip 归档)。
重要集群捆绑包 zip 存档包括每个集群的唯一配置和密钥。不要在另一个集群中重复使用相同的文件。
在可以访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor
脚本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
如果您收到没有部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
8.4.2.2.2. 使用 roxctl CLI 安装清单
流程
运行以下命令,为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
1 - 1
- 对于
--openshift-version
选项,请指定集群的主 OpenShift Container Platform 版本号。例如,为 OpenShift Container Platform 版本3.x
指定3
,为 OpenShift Container Platform 版本4.x
指定4
。
在可以访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor
脚本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
如果您收到没有部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
验证
返回 RHACS 门户并检查部署是否成功。如果成功,当在 Platform Configuration → Clusters 中查看集群列表时,集群状态会显示一个绿色勾号和 Healthy 状态。如果您没有看到绿色勾选标记,请使用以下命令检查问题:
在 Kubernetes 上,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -w
- 点 Finish 关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示部署、镜像和策略违反情况。
8.5. 验证安全集群的安装
安装 RHACS 云服务后,您可以执行一些步骤来验证安装是否成功。
要验证安装,请从 Red Hat Hybrid Cloud 控制台访问 ACS 控制台。仪表板显示 RHACS 云服务监控的集群数量,以及节点、部署、镜像和违反情况的信息。
如果没有数据出现在 ACS 控制台中:
-
确保至少有一个安全集群连接到 RHACS 云服务实例。如需更多信息,请参阅使用 Helm chart 或
roxctl
CLI 安装的说明。 - 检查 Sensor pod 日志,以确保与 RHACS 云服务实例的连接成功。
-
检查本地集群的 Operator 中的
SecuredCluster
API 中的值,以确保正确输入了 Central API 端点。这个值应该与 Red Hat Hybrid Cloud Console 中的 ACS 实例 详情中所示的值相同。
第 9 章 升级 RHACS 云服务
9.1. 使用 Operator 在 RHACS Cloud Service 中升级安全集群
红帽为它管理的组件(包括 Central 服务)提供常规服务更新。这些服务更新包括升级到 Red Hat Advanced Cluster Security Cloud Service 的新版本。
您必须定期升级安全集群中的 RHACS 版本,以确保与 RHACS 云服务兼容。
9.1.1. 准备升级
在升级 Red Hat Advanced Cluster Security for Kubernetes (RHACS)版本前,请完成以下步骤:
-
如果您要升级的集群包含
SecuredCluster
自定义资源(CR),请将 collection 方法改为CORE_BPF
。如需更多信息,请参阅"删除集合方法"。
9.1.1.1. 更改集合方法
如果要升级的集群包含 SecuredCluster
CR,您必须确保在升级前将每个节点集合设置设置为 CORE_BPF
。
流程
- 在 OpenShift Container Platform Web 控制台中进入 RHACS Operator 页面。
- 在顶部导航菜单中,选择 Secured Cluster。
- 点实例名称,如 stackrox-secured-cluster-services。
使用以下方法之一更改设置:
- 在 Form 视图中,在 Per Node Settings → Collector Settings → Collection 下,选择 CORE_BPF。
-
点 YAML 打开 YAML 编辑器并找到
spec.perNode.collector.collection
属性。如果值为KernelModule
或EBPF
,请将其改为CORE_BPF
。
- 点 Save。
其他资源
9.1.2. 为安全集群回滚 Operator 升级
要回滚 Operator 升级,您可以使用 CLI 或 OpenShift Container Platform Web 控制台。
在安全集群中,只有在个别情况下才需要回滚 Operator 升级,例如,如果安全集群出现问题。
9.1.2.1. 使用 CLI 回滚 Operator 升级
您可以使用 CLI 命令回滚 Operator 版本。
流程
运行以下命令来删除 OLM 订阅:
对于 OpenShift Container Platform,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n rhacs-operator delete subscription rhacs-operator
$ oc -n rhacs-operator delete subscription rhacs-operator
对于 Kubernetes,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl -n rhacs-operator delete subscription rhacs-operator
$ kubectl -n rhacs-operator delete subscription rhacs-operator
运行以下命令来删除集群服务版本 (CSV):
对于 OpenShift Container Platform,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
$ oc -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
对于 Kubernetes,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
$ kubectl -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
- 在回滚频道上安装 Operator 的最新版本。
9.1.2.2. 使用 Web 控制台回滚 Operator 升级
您可以使用 OpenShift Container Platform Web 控制台回滚 Operator 版本。
先决条件
-
您可以使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群 Web 控制台。
流程
- 进入 Operators → Installed Operators 页面。
- 点 RHACS Operator。
- 在 Operator Details 页面中,从 Actions 列表中选择 Uninstall Operator。按照此操作,Operator 将停止运行,不再接收更新。
- 在回滚频道上安装 Operator 的最新版本。
9.1.3. Operator 升级问题故障排除
按照以下步骤调查并解决 RHACS Operator 的与升级相关的问题。
9.1.3.1. Central 或 Secured 集群无法部署
当 RHACS Operator 满足以下条件时,您必须检查自定义资源条件以查找问题:
- 如果 Operator 无法部署安全集群
- 如果 Operator 无法将 CR 应用到实际资源
对于安全集群,运行以下命令检查条件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n rhacs-operator describe securedclusters.platform.stackrox.io
$ oc -n rhacs-operator describe securedclusters.platform.stackrox.io
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
您可以识别条件输出中的配置错误:
输出示例
Conditions: Last Transition Time: 2023-04-19T10:49:57Z Status: False Type: Deployed Last Transition Time: 2023-04-19T10:49:57Z Status: True Type: Initialized Last Transition Time: 2023-04-19T10:59:10Z Message: Deployment.apps "central" is invalid: spec.template.spec.containers[0].resources.requests: Invalid value: "50": must be less than or equal to cpu limit Reason: ReconcileError Status: True Type: Irreconcilable Last Transition Time: 2023-04-19T10:49:57Z Message: No proxy configuration is desired Reason: NoProxyConfig Status: False Type: ProxyConfigFailed Last Transition Time: 2023-04-19T10:49:57Z Message: Deployment.apps "central" is invalid: spec.template.spec.containers[0].resources.requests: Invalid value: "50": must be less than or equal to cpu limit Reason: InstallError Status: True Type: ReleaseFailed
Conditions:
Last Transition Time: 2023-04-19T10:49:57Z
Status: False
Type: Deployed
Last Transition Time: 2023-04-19T10:49:57Z
Status: True
Type: Initialized
Last Transition Time: 2023-04-19T10:59:10Z
Message: Deployment.apps "central" is invalid: spec.template.spec.containers[0].resources.requests: Invalid value: "50": must be less than or equal to cpu limit
Reason: ReconcileError
Status: True
Type: Irreconcilable
Last Transition Time: 2023-04-19T10:49:57Z
Message: No proxy configuration is desired
Reason: NoProxyConfig
Status: False
Type: ProxyConfigFailed
Last Transition Time: 2023-04-19T10:49:57Z
Message: Deployment.apps "central" is invalid: spec.template.spec.containers[0].resources.requests: Invalid value: "50": must be less than or equal to cpu limit
Reason: InstallError
Status: True
Type: ReleaseFailed
另外,您可以查看 RHACS pod 日志以查找有关此问题的更多信息。运行以下命令来查看日志:
oc -n rhacs-operator logs deploy/rhacs-operator-controller-manager manager
oc -n rhacs-operator logs deploy/rhacs-operator-controller-manager manager
- 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
9.2. 使用 Helm chart 在 RHACS 云服务中升级安全集群
您可以使用 Helm chart 在 RHACS 云服务中升级安全集群。
如果使用 Helm chart 安装 RHACS 安全集群,您可以通过更新 Helm chart 并运行 helm upgrade
命令升级到最新版本的 RHACS。
9.2.1. 更新 Helm Chart 仓库
在升级到 Red Hat Advanced Cluster Security for Kubernetes 的新版本前,您必须始终更新 Helm chart。
先决条件
- 您必须已添加了 Red Hat Advanced Cluster Security for Kubernetes Helm Chart 仓库。
- 您必须使用 Helm 版本 3.8.3 或更新版本。
流程
更新 Red Hat Advanced Cluster Security for Kubernetes chart 软件仓库。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm repo update
$ helm repo update
验证
运行以下命令来验证添加的 chart 存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm search repo -l rhacs/
$ helm search repo -l rhacs/
9.2.2. 运行 Helm 升级命令
您可以使用 helm upgrade
命令更新 Red Hat Advanced Cluster Security for Kubernetes (RHACS)。
先决条件
-
您必须有权访问用于安装 Red Hat Advanced Cluster Security for Kubernetes (RHACS)的
values-private.yaml
配置文件。否则,您必须先生成包含 root 证书的values-private.yaml
配置文件,然后才能继续这些命令。
流程
运行 helm upgrade 命令并使用
-f
选项指定配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm upgrade -n stackrox stackrox-secured-cluster-services \ rhacs/secured-cluster-services --version <current-rhacs-version> \ -f values-private.yaml
$ helm upgrade -n stackrox stackrox-secured-cluster-services \ rhacs/secured-cluster-services --version <current-rhacs-version> \
1 -f values-private.yaml
- 1
- 使用 -f 选项指定 YAML 配置文件的路径。
9.2.3. 其他资源
9.3. 使用 roxctl CLI 在 RHACS 云服务中手动升级安全集群
您可以使用 roxctl
CLI 在 RHACS 云服务中升级安全集群。
只有在使用 roxctl
CLI 安装安全集群时,才需要手动升级安全集群。
9.3.1. 升级 roxctl
CLI
要将 roxctl
CLI 升级到最新版本,您必须卸载 roxctl
CLI 的当前版本,然后安装 roxctl
CLI 的最新版本。
9.3.1.1. 卸载 roxctl CLI
您可以按照以下流程卸载 Linux 上的 roxctl
CLI 二进制文件。
流程
查找并删除
roxctl
二进制文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROXPATH=$(which roxctl) && rm -f $ROXPATH
$ ROXPATH=$(which roxctl) && rm -f $ROXPATH
1 - 1
- 根据您的环境,您可能需要管理员删除
roxctl
二进制文件。
9.3.1.2. 在 Linux 中安装 roxctl CLI
您可以按照以下流程在 Linux 上安装 roxctl
CLI 二进制文件。
amd64、
和 arm
64、ppc64
les390x
架构提供了 Linux 的 roxctl
CLI。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Linux/roxctl${arch}"
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
9.3.1.3. 在 macOS 上安装 roxctl CLI
您可以按照以下流程在 macOS 中安装 roxctl
CLI 二进制文件。
macOS 的 roxctl
CLI 可用于 amd64
和 arm64
架构。
流程
确定目标操作系统的
roxctl
架构:Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Darwin/roxctl${arch}"
从二进制文件中删除所有扩展属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xattr -c roxctl
$ xattr -c roxctl
使
roxctl
二进制文件可执行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
9.3.1.4. 在 Windows 上安装 roxctl CLI
您可以按照以下流程在 Windows 上安装 roxctl
CLI 二进制文件。
amd64
架构提供了适用于 Windows 的 roxctl
CLI。
流程
下载
roxctl
CLI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.5.9/bin/Windows/roxctl.exe
验证
验证您已安装的
roxctl
版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
9.3.2. 手动升级所有安全集群
为确保最佳功能,请为您的 RHACS 云服务运行的安全集群使用相同的 RHACS 版本。如果您使用自动升级,请使用自动升级来更新所有安全集群。如果没有使用自动升级,请在所有安全集群中完成本节中的说明。
要完成每个运行 Sensor、Collector 和 Admission 控制器的安全集群的手动升级,请按照以下步骤操作。
9.3.2.1. 更新其他镜像
在不使用自动升级时,您必须更新每个安全集群中的 sensor, collector 和 compliance 镜像。
如果使用 Kubernetes,请在此流程中列出的命令中使用 kubectl
而不是 oc
。
流程
更新 Sensor 镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
$ oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
更新 Compliance 镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
$ oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
更新 Collector 镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.5.9
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.5.9
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
注意如果使用 collector slim 镜像,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-slim-rhel8:{rhacs-version}
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-slim-rhel8:{rhacs-version}
更新准入控制镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
$ oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.9
如果您使用 roxctl
CLI 在 Red Hat OpenShift 上安装 RHACS,则需要迁移安全性上下文约束(SCC)。
如需更多信息,请参阅"添加资源"部分中的"手动升级过程中缓解 SCC"。
其他资源
9.3.2.2. 在手动升级过程中迁移 SCC
通过使用 roxctl
CLI 在手动升级过程中迁移安全性上下文约束(SCC),您可以无缝转换 Red Hat Advanced Cluster Security for Kubernetes (RHACS)服务以使用 Red Hat OpenShift SCC,确保 Central 和所有安全的集群间的兼容性和最佳安全配置。
流程
列出在所有安全集群中部署的所有 RHACS 服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Name: admission-control-6f4dcc6b4c-2phwd openshift.io/scc: stackrox-admission-control #... Name: central-575487bfcb-sjdx8 openshift.io/scc: stackrox-central Name: central-db-7c7885bb-6bgbd openshift.io/scc: stackrox-central-db Name: collector-56nkr openshift.io/scc: stackrox-collector #... Name: scanner-68fc55b599-f2wm6 openshift.io/scc: stackrox-scanner Name: scanner-68fc55b599-fztlh #... Name: sensor-84545f86b7-xgdwf openshift.io/scc: stackrox-sensor #...
Name: admission-control-6f4dcc6b4c-2phwd openshift.io/scc: stackrox-admission-control #... Name: central-575487bfcb-sjdx8 openshift.io/scc: stackrox-central Name: central-db-7c7885bb-6bgbd openshift.io/scc: stackrox-central-db Name: collector-56nkr openshift.io/scc: stackrox-collector #... Name: scanner-68fc55b599-f2wm6 openshift.io/scc: stackrox-scanner Name: scanner-68fc55b599-fztlh #... Name: sensor-84545f86b7-xgdwf openshift.io/scc: stackrox-sensor #...
在本例中,您可以看到每个 Pod 都有自己的自定义 SCC,这通过
openshift.io/scc
字段指定。- 添加所需的角色和角色绑定,以使用 Red Hat OpenShift SCC 而不是 RHACS 自定义 SCC。
要添加所需的角色和角色绑定,以便将 Red Hat OpenShift SCC 用于所有安全集群,请完成以下步骤:
创建名为
upgrade-scs.yaml
的文件,该文件使用以下内容定义角色和角色绑定资源:例 9.1. YAML 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: use-privileged-scc namespace: stackrox rules: - apiGroups: - security.openshift.io resourceNames: - privileged resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: collector-use-scc namespace: stackrox roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: use-privileged-scc subjects: - kind: ServiceAccount name: collector namespace: stackrox - - -
apiVersion: rbac.authorization.k8s.io/v1 kind: Role
1 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: use-privileged-scc
2 namespace: stackrox
3 rules:
4 - apiGroups: - security.openshift.io resourceNames: - privileged resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding
5 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: collector-use-scc
6 namespace: stackrox roleRef:
7 apiGroup: rbac.authorization.k8s.io kind: Role name: use-privileged-scc subjects:
8 - kind: ServiceAccount name: collector namespace: stackrox - - -
运行以下命令,创建
upgrade-scs.yaml
文件中指定的角色和角色绑定资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox create -f ./update-scs.yaml
$ oc -n stackrox create -f ./update-scs.yaml
重要您必须在每个安全集群中运行此命令,以创建
upgrade-scs.yaml
文件中指定的角色和角色绑定。
删除特定于 RHACS 的 SCC:
要删除特定于所有安全集群的 SCC,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensor
$ oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensor
重要您必须在每个安全集群中运行此命令,才能删除特定于每个安全集群的 SCC。
验证
运行以下命令,确保所有 pod 都使用正确的 SCC:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
将输出与下表进行比较:
组件 以前的自定义 SCC 新的 Red Hat OpenShift 4 SCC Central
stackrox-central
nonroot-v2
Central-db
stackrox-central-db
nonroot-v2
扫描程序
stackrox-scanner
nonroot-v2
Scanner-db
stackrox-scanner
nonroot-v2
Admission Controller
stackrox-admission-control
restricted-v2
Collector
stackrox-collector
privileged
Sensor
stackrox-sensor
restricted-v2
9.3.2.2.1. 编辑 Sensor 部署的 GOMEMLIMIT 环境变量
升级到版本 4.4 要求您手动将 GOMEMLIMIT
环境变量替换为 ROX_MEMLIMIT
环境变量。您必须为每个部署编辑此变量。
流程
运行以下命令来编辑 Sensor 部署的变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox edit deploy/sensor
$ oc -n stackrox edit deploy/sensor
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
-
将
GOMEMLIMIT
变量替换为ROX_MEMLIMIT
。 - 保存该文件。
9.3.2.2.2. 为 Collector 部署编辑 GOMEMLIMIT 环境变量
升级到版本 4.4 要求您手动将 GOMEMLIMIT
环境变量替换为 ROX_MEMLIMIT
环境变量。您必须为每个部署编辑此变量。
流程
运行以下命令来编辑 Collector 部署的变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox edit deploy/collector
$ oc -n stackrox edit deploy/collector
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
-
将
GOMEMLIMIT
变量替换为ROX_MEMLIMIT
。 - 保存该文件。
9.3.2.2.3. 编辑 Admission Controller 部署的 GOMEMLIMIT 环境变量
升级到版本 4.4 要求您手动将 GOMEMLIMIT
环境变量替换为 ROX_MEMLIMIT
环境变量。您必须为每个部署编辑此变量。
流程
运行以下命令来编辑 Admission Controller 部署的变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox edit deploy/admission-control
$ oc -n stackrox edit deploy/admission-control
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
-
将
GOMEMLIMIT
变量替换为ROX_MEMLIMIT
。 - 保存该文件。
9.3.2.2.4. 验证安全集群升级
在升级了安全集群后,验证更新的 pod 是否正常工作。
流程
检查新 pod 是否已部署:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get deploy,ds -n stackrox -o wide
$ oc get deploy,ds -n stackrox -o wide
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod -n stackrox --watch
$ oc get pod -n stackrox --watch
1 - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
9.3.3. 启用 RHCOS 节点扫描
如果使用 OpenShift Container Platform,您可以使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS)启用扫描 Red Hat Enterprise Linux CoreOS (RHCOS)节点的扫描漏洞。
先决条件
- 要扫描安全集群的 RHCOS 节点主机,您必须在 OpenShift Container Platform 4.11 或更高版本上安装了安全的集群。有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。有关 RHACS 的生命周期支持信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
流程
运行以下命令来更新合规性容器之一。
对于禁用了指标的默认合规容器,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":"disabled"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":"disabled"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
对于启用了 Prometheus 指标的合规性容器,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":":9091"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":":9091"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
通过执行以下步骤更新 Collector DaemonSet (DS):
运行以下命令,将新卷挂载添加到 Collector DS 中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
运行以下命令添加新
NodeScanner
容器:Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"command":["/scanner","--nodeinventory","--config=",""],"env":[{"name":"ROX_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ROX_CLAIR_V4_SCANNING","value":"true"},{"name":"ROX_COMPLIANCE_OPERATOR_INTEGRATION","value":"true"},{"name":"ROX_CSV_EXPORT","value":"false"},{"name":"ROX_DECLARATIVE_CONFIGURATION","value":"false"},{"name":"ROX_INTEGRATIONS_AS_CONFIG","value":"false"},{"name":"ROX_NETPOL_FIELDS","value":"true"},{"name":"ROX_NETWORK_DETECTION_BASELINE_SIMULATION","value":"true"},{"name":"ROX_NETWORK_GRAPH_PATTERNFLY","value":"true"},{"name":"ROX_NODE_SCANNING_CACHE_TIME","value":"3h36m"},{"name":"ROX_NODE_SCANNING_INITIAL_BACKOFF","value":"30s"},{"name":"ROX_NODE_SCANNING_MAX_BACKOFF","value":"5m"},{"name":"ROX_PROCESSES_LISTENING_ON_PORT","value":"false"},{"name":"ROX_QUAY_ROBOT_ACCOUNTS","value":"true"},{"name":"ROX_ROXCTL_NETPOL_GENERATE","value":"true"},{"name":"ROX_SOURCED_AUTOGENERATED_INTEGRATIONS","value":"false"},{"name":"ROX_SYSLOG_EXTRA_FIELDS","value":"true"},{"name":"ROX_SYSTEM_HEALTH_PF","value":"false"},{"name":"ROX_VULN_MGMT_WORKLOAD_CVES","value":"false"}],"image":"registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8:4.5.9","imagePullPolicy":"IfNotPresent","name":"node-inventory","ports":[{"containerPort":8444,"name":"grpc","protocol":"TCP"}],"volumeMounts":[{"mountPath":"/host","name":"host-root-ro","readOnly":true},{"mountPath":"/tmp/","name":"tmp-volume"},{"mountPath":"/cache","name":"cache-volume"}]}]}}}}'
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"command":["/scanner","--nodeinventory","--config=",""],"env":[{"name":"ROX_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ROX_CLAIR_V4_SCANNING","value":"true"},{"name":"ROX_COMPLIANCE_OPERATOR_INTEGRATION","value":"true"},{"name":"ROX_CSV_EXPORT","value":"false"},{"name":"ROX_DECLARATIVE_CONFIGURATION","value":"false"},{"name":"ROX_INTEGRATIONS_AS_CONFIG","value":"false"},{"name":"ROX_NETPOL_FIELDS","value":"true"},{"name":"ROX_NETWORK_DETECTION_BASELINE_SIMULATION","value":"true"},{"name":"ROX_NETWORK_GRAPH_PATTERNFLY","value":"true"},{"name":"ROX_NODE_SCANNING_CACHE_TIME","value":"3h36m"},{"name":"ROX_NODE_SCANNING_INITIAL_BACKOFF","value":"30s"},{"name":"ROX_NODE_SCANNING_MAX_BACKOFF","value":"5m"},{"name":"ROX_PROCESSES_LISTENING_ON_PORT","value":"false"},{"name":"ROX_QUAY_ROBOT_ACCOUNTS","value":"true"},{"name":"ROX_ROXCTL_NETPOL_GENERATE","value":"true"},{"name":"ROX_SOURCED_AUTOGENERATED_INTEGRATIONS","value":"false"},{"name":"ROX_SYSLOG_EXTRA_FIELDS","value":"true"},{"name":"ROX_SYSTEM_HEALTH_PF","value":"false"},{"name":"ROX_VULN_MGMT_WORKLOAD_CVES","value":"false"}],"image":"registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8:4.5.9","imagePullPolicy":"IfNotPresent","name":"node-inventory","ports":[{"containerPort":8444,"name":"grpc","protocol":"TCP"}],"volumeMounts":[{"mountPath":"/host","name":"host-root-ro","readOnly":true},{"mountPath":"/tmp/","name":"tmp-volume"},{"mountPath":"/cache","name":"cache-volume"}]}]}}}}'
其他资源