管理部署集合
Alauda 容器安全允许您定义和管理部署集合,这些集合是基于匹配模式的资源逻辑分组。集合帮助您组织基础设施并简化配置管理。
目录
概述
Alauda 容器安全中的集合是用户定义的命名引用,使用选择规则对部署、命名空间或集群进行分组。这些规则可以基于精确匹配或正则表达式(支持 RE2 语法)。集合还可以嵌套,允许您构建复杂的层次结构。
关键点:
- 目前集合仅适用于部署。
- 集合用于漏洞报告。
- 部署集合需要 PostgreSQL 数据库后端。
先决条件
要使用集合,您的账户必须具备以下权限:
- WorkflowAdministration:读取访问权限以查看集合;写入访问权限以添加、修改或删除集合。
- Deployment:读取或读写访问权限以查看规则如何匹配部署。
这些权限包含在 Admin 系统角色中。有关更多详细信息,请参见 RBAC 管理文档。
集合的好处
集合提供了一种灵活的方式来:
- 按特定团队分组资源。
- 为开发和生产环境应用不同的策略。
- 管理跨多个命名空间或集群的分布式应用程序。
- 高效组织生产或测试环境。
访问和管理集合
您可以通过 Alauda 容器安全门户管理集合:
- 导航到 平台配置 > 集合。
- 页面显示现有集合的列表。您可以:
- 按名称搜索集合。
- 以只读模式查看集合详细信息。
- 编辑、克隆或删除集合(正在使用的集合无法删除)。
- 创建新的部署集合。
创建部署集合
操作步骤
- 点击 创建集合。
- 输入名称和描述。
- 在 集合规则 中,至少执行以下一项操作:
- 定义选择规则(见下文)。
- 附加现有集合。
- 使用实时预览面板查看匹配结果。
- 点击 保存。
注意: 至少需要一个规则或附加集合。
定义集合规则
您可以配置规则以选择集合中的资源:
-
部署
- 未指定部署:忽略部署标准。
- 名称匹配的部署:
- 精确值:输入部署名称。
- 正则表达式值:使用正则表达式(RE2 语法)进行模式匹配。例如,
.*匹配所有部署。
- 标签完全匹配的部署:以
key=value格式输入有效的 Kubernetes 标签。
-
命名空间
- 名称匹配的命名空间:使用精确或正则值。
- 标签完全匹配的命名空间:以
key=value格式输入标签。
-
集群
- 名称匹配的集群:使用精确或正则值。
要添加更多标准,请使用 OR 选项组合多个规则。
正则表达式示例
Alauda 容器安全支持 RE2 语法的正则表达式。以下是一些常见示例:
匹配生产集群
要匹配名称以 prod 开头的集群:
匹配非生产集群
要匹配名称中不包含 prod 的集群(RE2 不支持负向前瞻):
匹配所有实体
要匹配所有部署、命名空间和集群:
- 名称匹配的部署:
.* - 名称匹配的命名空间:
.* - 名称匹配的集群:
.*
匹配特定部署和标签
要包括 reporting 部署、任何以 -db 结尾的部署,以及标记为 kubernetes.io/metadata.name=medical 的命名空间:
- 名称匹配的部署:
reporting - 或:正则值
.*-db - 标签完全匹配的命名空间:
kubernetes.io/metadata.name=medical
附加集合
您可以通过附加现有集合来构建层次集合:
- 按名称过滤集合或从列表中选择。
- 点击 +附加 以添加所选集合。
- 附加的集合通过 OR 关系扩展父集合。
从访问范围迁移
在从 rocksdb 迁移到 PostgreSQL 时,现有的用于漏洞报告的访问范围将转换为集合。迁移过程创建嵌入式和根集合,以复制原始选择逻辑。
- 嵌入式集合:模仿原始访问范围逻辑。
- 根集合:附加嵌入式集合,并用于报告配置。
如果某个范围无法迁移(例如,使用不支持的标签选择器操作符),则会生成日志消息。仅支持 IN 操作符用于标签选择器。
API 使用
集合也可以通过 CollectionService API 进行管理。例如,CollectionService_DryRunCollection 返回与门户中的实时预览类似的结果。有关更多详细信息,请参见门户中的 API 参考。