管理部署集合

Alauda 容器安全允许您定义和管理部署集合,这些集合是基于匹配模式的资源逻辑分组。集合帮助您组织基础设施并简化配置管理。

目录

概述

Alauda 容器安全中的集合是用户定义的命名引用,使用选择规则对部署、命名空间或集群进行分组。这些规则可以基于精确匹配或正则表达式(支持 RE2 语法)。集合还可以嵌套,允许您构建复杂的层次结构。

关键点:

  • 目前集合仅适用于部署。
  • 集合用于漏洞报告。
  • 部署集合需要 PostgreSQL 数据库后端。

先决条件

要使用集合,您的账户必须具备以下权限:

  • WorkflowAdministration:读取访问权限以查看集合;写入访问权限以添加、修改或删除集合。
  • Deployment:读取或读写访问权限以查看规则如何匹配部署。

这些权限包含在 Admin 系统角色中。有关更多详细信息,请参见 RBAC 管理文档。

集合的好处

集合提供了一种灵活的方式来:

  • 按特定团队分组资源。
  • 为开发和生产环境应用不同的策略。
  • 管理跨多个命名空间或集群的分布式应用程序。
  • 高效组织生产或测试环境。

访问和管理集合

您可以通过 Alauda 容器安全门户管理集合:

  1. 导航到 平台配置 > 集合
  2. 页面显示现有集合的列表。您可以:
    • 按名称搜索集合。
    • 以只读模式查看集合详细信息。
    • 编辑、克隆或删除集合(正在使用的集合无法删除)。
    • 创建新的部署集合。

创建部署集合

操作步骤

  1. 点击 创建集合
  2. 输入名称和描述。
  3. 集合规则 中,至少执行以下一项操作:
    • 定义选择规则(见下文)。
    • 附加现有集合。
  4. 使用实时预览面板查看匹配结果。
  5. 点击 保存

注意: 至少需要一个规则或附加集合。

定义集合规则

您可以配置规则以选择集合中的资源:

  • 部署

    • 未指定部署:忽略部署标准。
    • 名称匹配的部署
      • 精确值:输入部署名称。
      • 正则表达式值:使用正则表达式(RE2 语法)进行模式匹配。例如,.* 匹配所有部署。
    • 标签完全匹配的部署:以 key=value 格式输入有效的 Kubernetes 标签。
  • 命名空间

    • 名称匹配的命名空间:使用精确或正则值。
    • 标签完全匹配的命名空间:以 key=value 格式输入标签。
  • 集群

    • 名称匹配的集群:使用精确或正则值。

要添加更多标准,请使用 OR 选项组合多个规则。

正则表达式示例

Alauda 容器安全支持 RE2 语法的正则表达式。以下是一些常见示例:

匹配生产集群

要匹配名称以 prod 开头的集群:

^prod.*

匹配非生产集群

要匹配名称中不包含 prod 的集群(RE2 不支持负向前瞻):

^[^p]*(p([^r]|$|r([^o]|$|o([^d]|$))))*[^p]*$

匹配所有实体

要匹配所有部署、命名空间和集群:

  • 名称匹配的部署.*
  • 名称匹配的命名空间.*
  • 名称匹配的集群.*

匹配特定部署和标签

要包括 reporting 部署、任何以 -db 结尾的部署,以及标记为 kubernetes.io/metadata.name=medical 的命名空间:

  • 名称匹配的部署reporting
  • :正则值 .*-db
  • 标签完全匹配的命名空间kubernetes.io/metadata.name=medical

附加集合

您可以通过附加现有集合来构建层次集合:

  1. 按名称过滤集合或从列表中选择。
  2. 点击 +附加 以添加所选集合。
  3. 附加的集合通过 OR 关系扩展父集合。

从访问范围迁移

在从 rocksdb 迁移到 PostgreSQL 时,现有的用于漏洞报告的访问范围将转换为集合。迁移过程创建嵌入式和根集合,以复制原始选择逻辑。

  • 嵌入式集合:模仿原始访问范围逻辑。
  • 根集合:附加嵌入式集合,并用于报告配置。

如果某个范围无法迁移(例如,使用不支持的标签选择器操作符),则会生成日志消息。仅支持 IN 操作符用于标签选择器。

API 使用

集合也可以通过 CollectionService API 进行管理。例如,CollectionService_DryRunCollection 返回与门户中的实时预览类似的结果。有关更多详细信息,请参见门户中的 API 参考。