您可以使用RHACS中的集合通过使用匹配模式来定义和命名一组资源。然后,您可以将系统进程配置为使用这些集合。
目前,集合仅在以下情况下可用
集合仅适用于部署。
您只能将集合与漏洞报告一起使用。有关更多信息,请参阅“附加资源”部分中的“漏洞报告”。
如果RHACS客户使用PostgreSQL数据库,则仅对他们提供部署集合。
默认情况下,RHACS 云服务使用 PostgreSQL 数据库,安装 RHACS 4.0 及更高版本时也默认使用该数据库。使用低于 3.74 版本的 RHACS 客户可在 Red Hat 的帮助下迁移到 PostgreSQL 数据库。 |
用户帐户必须具有以下权限才能使用集合功能
WorkflowAdministration
:您必须具有读取权限才能查看集合,并具有写入权限才能添加、更改或删除集合。
Deployment
:您需要读取访问权限或读写访问权限才能了解已配置的规则将如何与部署匹配。
这些权限包含在Admin
系统角色中。有关角色和权限的更多信息,请参阅“附加资源”中的“在 RHACS 中管理 RBAC”。
部署集合仅适用于使用 PostgreSQL 数据库的 RHACS 客户。默认情况下,RHACS 云服务使用 PostgreSQL 数据库,安装 RHACS 4.0 及更高版本时也默认使用该数据库。使用低于 3.74 版本的 RHACS 客户可在 Red Hat 的帮助下迁移到 PostgreSQL 数据库。
RHACS 集合是用户定义的命名引用。它通过使用选择规则定义逻辑分组。这些规则可以匹配部署、命名空间或集群名称或标签。您可以使用精确匹配或正则表达式来指定规则。集合在运行时解析,可以引用在集合定义时不存在的对象。集合可以使用其他集合来构建以描述复杂的层次结构。
集合为您提供了一种描述动态基础架构组织方式的语言,无需克隆和重复编辑 RHACS 属性(如包含和排除范围)。
您可以使用集合来标识系统中的任何一组部署,例如:
特定开发团队拥有的基础设施区域
在开发集群或生产集群中运行时需要不同策略例外的应用程序
使用公共部署标签定义的跨越多个命名空间的分布式应用程序
整个生产或测试环境
可以使用 RHACS 门户创建和管理集合。集合编辑器可帮助您在部署、命名空间和集群级别应用选择规则。您可以使用简单和复杂的规则,包括正则表达式。
您可以通过选择一个或多个部署、命名空间或集群来定义集合,如下图所示。此图像显示一个集合,其中包含名称为 reporting 或名称中包含 db
的部署。该集合包括命名空间中匹配这些名称的部署,这些命名空间具有特定标签 kubernetes.io/metadata.name=medical
,以及名为 production
的集群中的部署。
集合编辑器还可以通过附加或嵌套其他集合来帮助您描述复杂的层次结构。编辑器提供一个实时预览侧面板,可帮助您了解正在应用的规则,方法是显示与您已配置的规则的匹配结果。下图显示了名为“敏感用户数据”的集合的结果示例,该集合具有一组集合规则(未显示)。“敏感用户数据”集合有两个附加集合,“信用卡处理器”和“医疗记录”,每个集合都有其自己的集合规则。侧面板中显示的结果包括与所有三个集合配置的规则匹配的项目。
要使用集合,请单击平台配置→集合。页面将显示当前已配置集合的列表。您可以执行以下操作:
通过在按名称搜索字段中输入文本搜索集合,然后按→。
单击集合列表中的集合以只读模式查看集合。
单击以编辑、克隆或删除现有集合。
您无法删除 RHACS 中正在积极使用的集合。 |
单击创建集合以创建新的部署集合。
创建集合时,必须为其命名并定义规则。
在“集合”页面中,单击创建集合。
输入集合的名称和描述。
在集合规则部分中,您必须执行至少一项以下操作:
定义集合的规则:有关更多信息,请参阅“创建集合规则”部分。
将现有集合附加到集合:有关更多信息,请参阅“添加附加集合”部分。
您的规则配置结果或选择附加集合的结果可在集合结果实时预览面板中查看。单击隐藏结果可将此面板从显示中移除。
单击保存。
创建集合时,必须配置至少一条规则或将另一个集合附加到您正在创建的新集合。
目前,集合仅适用于部署。 |
配置规则以选择要包含在集合中的资源。使用预览面板查看集合规则在配置时的结果。您可以按任何顺序配置规则。
在部署部分中,从下拉列表中选择以下选项之一:
所有部署:包含集合中的所有部署。如果选择此选项,则必须使用命名空间或集群或通过附加另一个集合来过滤集合。
名称匹配的部署 单击此选项以按名称选择,然后单击以下选项之一:
选择精确值为并输入部署的精确名称。
选择正则表达式值为以使用正则表达式搜索部署。如果您不知道部署的确切名称,此选项很有用。正则表达式是由字母、数字和符号组成的字符串,用于定义模式。RHACS 使用此模式来匹配字符或字符组并返回结果。有关正则表达式的更多信息,请参阅“附加资源”部分中的“Regular-Expressions.info”。
标签完全匹配的部署:单击此选项以选择标签与您输入的精确文本匹配的部署。标签必须是格式为key=value
的有效 Kubernetes 标签。
可选:要添加更多名称或标签与包含的附加条件匹配的部署,请单击或并配置另一个精确值或正则表达式值。
以下示例提供了为医疗应用程序配置集合的步骤。在此示例中,您希望您的集合包含reporting
部署,一个名为patient-db
的数据库,并且您希望选择标签为key = kubernetes.io/metadata.name
和value = medical
的命名空间。对于此示例,请执行以下步骤:
在集合规则中,选择名称匹配的部署。
单击精确值为并输入reporting。
单击或。
点击**正则表达式值**并输入.*-db
以选择环境中名称以db
结尾的所有部署。正则表达式值
选项使用正则表达式进行模式匹配;有关正则表达式的更多信息,请参阅“附加资源”部分中的“Regular-Expressions.info”。右侧面板可能会显示您不想包含的数据库。您可以使用其他过滤器排除这些数据库。例如
通过点击**精确匹配标签的命名空间**并输入kubernetes.io/metadata.name=medical
来按命名空间标签进行过滤,以便仅包含标记为medical
的命名空间中的部署。
如果您知道命名空间的名称,请点击**名称匹配的命名空间**并输入名称。
如果您想基于部署创建小型集合,则对集合进行分组并将其添加到其他集合可能很有用。您可以重用并将这些较小的集合组合成更大、更分层的集合。要将其他集合添加到您正在创建的集合中
执行以下操作之一
在**按名称筛选**字段中输入文本并按→查看匹配结果。
从**可用集合**列表中点击集合的名称以查看有关集合的信息,例如集合的名称和规则以及与该集合匹配的部署。
查看集合信息后,关闭窗口返回**附加集合**页面。
点击**+附加**。**附加集合**部分列出了您附加的集合。
添加附加集合时,附加集合包含基于已配置选择规则的结果。例如,如果附加集合包含资源,这些资源将被父集合中使用的规则过滤掉,则由于附加集合中的规则,这些项目仍将添加到父集合中。附加集合使用 |
单击保存。
从版本 3.74 开始,RHACS 中从rocksdb
到 PostgreSQL 的数据库更改作为技术预览提供,并在版本 4.0 中普遍可用。当数据库从rocksdb
迁移到 PostgreSQL 时,漏洞报告中使用的现有访问范围将迁移到集合。您可以通过导航到**漏洞管理** → **报告**并查看报告信息来验证迁移是否导致现有报告的正确配置。
迁移过程会为报告配置中使用的访问范围创建集合对象。RHACS 为单个访问范围生成两个或多个集合,具体取决于访问范围的复杂性。给定访问范围的生成的集合包括以下类型
嵌入式集合:为了模仿原始访问范围的精确选择逻辑,RHACS 生成一个或多个集合,其中匹配的部署导致与原始访问范围相同的选择集群和命名空间。集合名称格式为System-generated embedded collection _number_ for the scope
,其中_number_是从 0 开始的数字。
这些嵌入式集合将没有任何附加集合。它们具有集群和命名空间选择规则,但没有部署规则,因为原始访问范围没有对部署进行过滤。 |
访问范围的根集合:此集合将添加到报告配置中。集合名称格式为System-generated root collection for the scope
。此集合不定义任何规则,但附加一个或多个嵌入式集合。这些嵌入式集合的组合导致与原始访问范围相同的选择集群和命名空间。
对于定义集群或命名空间标签选择器的访问范围,RHACS 只能迁移键和值之间具有“IN”运算符的范围。通过使用 RHACS 门户创建的具有标签选择器的访问范围默认使用“IN”运算符。不支持使用“NOT_IN”、“EXISTS”和“NOT_EXISTS”运算符的范围的迁移。如果无法为访问范围创建集合,则会在迁移期间创建日志消息。日志消息具有以下格式
Failed to create collections for scope _scope-name_: Unsupported operator NOT_IN in scope's label selectors. Only operator 'IN' is supported. The scope is attached to the following report configurations: [list of report configs]; Please manually create an equivalent collection and edit the listed report configurations to use this collection. Note that reports will not function correctly until a collection is attached.
您还可以点击**漏洞管理** → **报告**中的报告以查看报告信息页面。如果报告需要附加集合,此页面将包含一条消息。
原始访问范围在迁移期间不会被删除。如果您仅为过滤漏洞管理报告而创建了访问范围,则可以手动删除访问范围。 |