ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ArgoCD 细粒度 RBAC 权限实战:多租户智算中心声明式变更安全隔离模型

ArgoCD 细粒度 RBAC 权限实战:多租户智算中心声明式变更安全隔离模型 ArgoCD 细粒度 RBAC 权限实战多租户智算中心声明式变更安全隔离模型在以大模型研发与业务化落地为核心的大型科技企业中AI 算力基础设施通常由基础架构团队统一搭建与运维并向上同时服务于自然语言处理NLP、多模态大模型、自动驾驶感知以及搜索推荐等多个相互独立的算法业务团队。随着 GitOps 持续交付模式成为云原生事实标准所有针对 GPU 集群的部署、拓扑调优以及参数变更均已全面收拢至 Git 仓库与 ArgoCD 自动化流水线。然而多租户共享超大 GPU 集群的特性给 GitOps 带来了前所未有的安全挑战。如果权限划分模糊某个算法小组在提交应用配置清单Manifests时可能因为配置疏忽误操作了集群级资源例如修改了核心 GPU Operator 的 DaemonSet或是删除了跨节点 RoCE 网络通信的 ConfigMap从而导致数千卡算力直接停摆。如何在保障各业务线自主、敏捷交付的同时利用 ArgoCD 的多层级安全控制机制构筑起不可逾越的多租户安全隔离防线本文结合我们在万卡智算中心落地 GitOps 的实战经验深度剖析 AppProject 边界隔离、细粒度 RBAC 权限策略以及端到端安全防御体系的设计与落地。智算中心 GitOps 多租户交付的痛点与风险在传统的 Kubernetes 集群中团队通常依赖命名空间Namespace配合 K8s 原生 RBAC 进行资源隔离。但在引入 ArgoCD 之后交付控制平面被抽象提升到了“应用Application”与“Git 仓库”维度。在初期粗放的管理模式下系统普遍存在以下致命安全隐患集群级关键资源的越权篡改Privilege EscalationArgoCD 实例通常具备目标集群的高权限如cluster-admin。如果租户的应用定义清单中包含 ClusterRoleBinding、CRD 定义或 StorageClassArgoCD 会直接以自身特权将其同步至集群造成非预期的越权越界。多租户跨命名空间越界部署Namespace Hopping未经约束的租户可能会在Application.spec.destination中指定其他部门的核心命名空间甚至直接部署到kube-system导致不可预知的配置覆盖与资源冲突。恶意 Git 源仓库注入Source Repo Injection恶意或未受控的外部代码库如果能够被 ArgoCD 读取并同步可能将含有安全后门的镜像或非合规容器部署进内网受限网络域。AppProject构筑多租户的硬隔离围栏为了解决上述问题ArgoCD 提供了最核心的逻辑隔离载体——AppProject。它扮演着“租户安全边界”的角色充当了连接 Git 仓库、目标集群/命名空间与资源操作白名单的强约束层。在我们的智算中心架构中我们为每一个独立的算法团队划分专属的AppProject并在底层强制施加三道硬约束apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: tenant-multimodal-core namespace: argocd # 严禁非管理员通过声明式覆盖直接删除项目保护策略 finalizers: - resources-finalizer.argocd.argoproj.io spec: description: 多模态大模型研发与推理业务专属交付工程 # 约束 1限定代码仓库源白名单严禁指向非官方受控的个人仓库 sourceRepos: - gitgitlab.internal.corp:ai-infra/multimodal-deployments.git - https://charts.internal.corp/helm/ai-workloads # 约束 2限定部署目标集群与目标命名空间杜绝越界投放 destinations: - server: https://k8s-gpu-cluster-az01.internal:6443 namespace: tenant-multimodal-prod - server: https://k8s-gpu-cluster-az02.internal:6443 namespace: tenant-multimodal-prod # 约束 3全局集群级资源黑白名单控制 # 坚决将 CRD、ClusterRole、StorageClass 等底层基建资源加入黑名单 clusterResourceBlacklist: - group: * kind: ClusterRole - group: * kind: ClusterRoleBinding - group: apiextensions.k8s.io kind: CustomResourceDefinition - group: storage.k8s.io kind: StorageClass # 允许该租户在专属命名空间内操作的资源类型白名单 namespaceResourceWhitelist: - group: apps kind: Deployment - group: kind: ConfigMap - group: kind: Secret - group: kind: Service - group: ray.io kind: RayCluster - group: ray.io kind: RayJob - group: batch.volcano.sh kind: Job通过这一层拦截即使算法工程师在 Git 仓库的 YAML 文件中误写了针对kube-system的变更或试图创建一个全局ClusterRoleArgoCD 在执行gitops sync时也会直接报错拦截阻断风险在集群内部扩散。基于 OIDC 与 CSV 规则的细粒度 RBAC 实操构筑好项目资源边界后接下来的核心命题是人与角色的权限如何映射我们通过集成统一企业 OIDC 身份认证系统如 Keycloak / Dex并在argocd-rbac-cmConfigMap 中配置极其严格的基于 Casbin CSV 语法的访问控制策略apiVersion: v1 kind: ConfigMap metadata: name: argocd-rbac-cm namespace: argocd data: policy.default: role:readonly # 全局默认角色必须是严格只读 policy.csv: | # 角色定义多模态团队普通开发者仅具备指定项目的查看与差分能力 p, role:multimodal-developer, applications, get, tenant-multimodal-core/*, allow p, role:multimodal-developer, applications, get/sync, tenant-multimodal-core/*, allow # 禁止普通开发者直接执行 Force 覆盖与硬同步删除 p, role:multimodal-developer, applications, delete, tenant-multimodal-core/*, deny # 角色定义多模态团队发布负责人具备项目内完整的同步与回滚权限 p, role:multimodal-lead, applications, *, tenant-multimodal-core/*, allow p, role:multimodal-lead, logs, get, tenant-multimodal-core/*, allow p, role:multimodal-lead, exec, create, tenant-multimodal-core/*, allow # 角色定义全局平台架构师拥有集群级管理权限 p, role:platform-admin, *, *, *, allow # OIDC 组映射将企业内部 SSO Group 自动绑定至 ArgoCD 对应角色 g, ai-multimodal-engineers, role:multimodal-developer g, ai-multimodal-tech-leads, role:multimodal-lead g, ai-infrastructure-core-team, role:platform-admin关键防越权规则剖析通配符的层级限定规则末尾的tenant-multimodal-core/*确保了该策略仅作用于前缀为该 AppProject 的应用彻底杜绝了不同业务线之间的水平越权IDOR。敏感操作的最小化暴露对于exec容器登录终端和delete级联删除仅向经过严格授权的 Tech Lead 开放并且每一次操作都会触发审计日志流水落盘。生产级防线Git 准入校验与预同步Pre-Sync安全流水线单纯依赖 ArgoCD 最终的拦截依然属于事后阻断。为了给研发团队提供更优雅的工程体验我们将安全防线进一步前移至 Git 提交阶段Shift-Left SecurityGit 仓库分支保护与 PR 自动化 Lint在算法团队的主分支上设置严格的保护策略合并代码必须经过 Pull Request并在 CI 流水线中运行kubeconform与自研的算力合规检测脚本校验所有 GPU 容器是否声明了标准的resources.limits[nvidia.com/gpu]校验多机分布式通信是否注入了正确的网络优先级注释Annotations严禁任何硬编码的明文密码与私钥进入 YAML 文件强制使用 SOPSSecrets OpeRationS结合云端 KMS 进行密文管理。ArgoCD PreSync Hook 审计拦截在正式执行资源同步前触发集群内的 PreSync 钩子任务对目标资源进行二次存活性探活与配额余量校验确保下发过程绝对平稳。GitOps 不仅仅是一种自动化发布工具更是一套关于软件所有权、变更确定性与信任边界的现代治理范式。通过在 ArgoCD 中落地严谨的 AppProject 资源封锁、细粒度 RBAC 权限隔离以及代码左移审计我们成功在超万卡的大规模生产环境中既赋予了算法团队极速迭代的交付自由又为底层核心算力底座筑牢了一道坚不可摧的安全护城河。
返回列表