管理部署集合
Alauda Security Service 允许你定义和管理部署集合,这些集合是基于匹配模式对资源进行逻辑分组的方式。集合可帮助你组织环境,并为漏洞报告等工作流设定范围。
目录
概述前提条件集合的优势访问和管理集合创建部署集合步骤定义集合规则正则表达式示例匹配生产环境 clusters匹配非生产环境 clusters匹配所有实体匹配特定 deployments 和 labels附加集合从 Access Scopes 迁移API 使用概述
Alauda Security Service 中的集合是用户定义的命名引用,用于通过选择规则对 deployments、namespaces 或 clusters 进行分组。这些规则可以基于精确匹配或正则表达式(支持 RE2 语法)。集合也可以嵌套,从而让你构建复杂的层级结构。
要点:
- 目前集合仅适用于 deployments。
- 集合用于漏洞报告以及其他支持集合的工作流。
- 部署集合需要 PostgreSQL 数据库后端。
前提条件
要使用集合,你的账户必须具备以下权限:
- WorkflowAdministration:具有 Read 访问权限,可查看集合;具有 Write 访问权限,可添加、修改或删除集合。
- Deployment:具有 Read 或 Read/Write 访问权限,可查看规则如何匹配 deployments。
这些权限包含在 Admin 系统角色中。有关更多详细信息,请参阅 RBAC 管理文档。
集合的优势
集合提供了一种灵活的方式来:
- 按特定团队拥有的资源进行分组。
- 为开发环境和生产环境应用不同的策略。
- 管理跨多个 namespaces 或 clusters 的分布式应用。
- 高效地组织生产或测试环境。
访问和管理集合
你可以通过 Alauda Security Service 门户管理集合:
- 导航到 Platform Configuration > Collections。
- 页面会显示现有集合列表。你可以:
- 按名称搜索集合。
- 创建新的部署集合。
在当前列表视图中,主要列为:
- Collection
- Description
- Row actions
创建部署集合
步骤
- 单击 Create collection。
- 在 Collection details 中输入名称和描述。
- 在 Collection rules 中,执行以下操作中的至少一项:
- 定义选择规则(见下文)。
- 附加现有集合。
- 如果你想使用现有集合扩展该集合,请查看 Attached collections。
- 使用 Collection results 预览当前规则集匹配哪些 deployments。
- 如果你尚未添加任何选择器规则或附加集合,预览将保持为空,并提示你先添加规则或附加现有集合。
- 单击 Save。
注意: 至少需要一条规则或一个已附加集合。
定义集合规则
你可以配置规则来为该集合选择资源:
-
Deployments
- No deployments specified:忽略 deployment 条件。
- Deployments with names matching:
- Exact value:输入 deployment 名称。
- Regex value:使用正则表达式(RE2 语法)进行模式匹配。例如,
.*可匹配所有 deployments。
- Deployments with labels matching exactly:输入格式为
key=value的有效 Kubernetes label。
-
Namespaces
- No namespaces specified:忽略 namespace 条件。
- Namespaces with names matching:使用精确值或正则值。
- Namespaces with labels matching exactly:输入
key=value格式的 label。
-
Clusters
- No clusters specified:忽略 cluster 条件。
- Clusters with names matching:使用精确值或正则值。
如需添加更多条件,请使用 OR 选项组合多个规则。
正则表达式示例
Alauda Security Service 支持使用 RE2 语法的正则表达式。以下是一些常见示例:
匹配生产环境 clusters
要匹配名称以 prod 开头的 clusters:
匹配非生产环境 clusters
要匹配名称中不包含 prod 的 clusters(RE2 不支持 negative lookahead):
匹配所有实体
要匹配所有 deployments、namespaces 和 clusters:
- Deployments with names matching:
.* - Namespaces with names matching:
.* - Clusters with names matching:
.*
匹配特定 deployments 和 labels
要包含 reporting deployment、任何以 -db 结尾的 deployment,以及带有 kubernetes.io/metadata.name=medical 标签的 namespaces:
- Deployments with names matching:
reporting - OR: Regex value
.*-db - Namespaces with labels matching exactly:
kubernetes.io/metadata.name=medical
附加集合
你可以通过附加现有集合来构建层级集合:
- 按名称筛选集合,或从列表中选择。
- 单击 Attach 以添加所选集合。
- 已附加集合通过 OR 关系扩展父集合。
从 Access Scopes 迁移
当从 rocksdb 迁移到 PostgreSQL 时,漏洞报告中使用的现有 access scopes 会转换为集合。迁移过程会创建嵌入式集合和根集合,以复现原始选择逻辑。
- Embedded collections:模拟原始 access scope 逻辑。
- Root collection:附加嵌入式集合,并用于报告配置中。
如果某个 scope 无法迁移(例如,使用了不受支持的 label selector 操作符),系统会生成一条日志消息。label selector 仅支持 IN operator。
API 使用
也可以通过 CollectionService API 管理集合。例如,CollectionService_DryRunCollection 返回的结果与门户中的实时预览类似。有关更多详细信息,请参阅门户中的 API 参考。