Security 限制允许的kubernetes类型与ArgoCD一起部署
我们希望通过将代码和k8s资源合并到ArgoCD监视的git repo中,允许开发人员自动将更改部署到kubernetes集群。发布管理团队将负责管理ArgoCD配置和设置新的应用程序,以及在集群上创建名称空间、角色和角色绑定,而开发人员应该能够通过GitOps部署其应用程序,而无需直接与集群交互。开发人员可能具有集群上的读取权限以进行调试。 现在的问题是:理论上,开发人员可能会创建一个新的yaml并指定一个rolebinding ressource,该角色将其帐户绑定到集群管理员角色。由于ArgoCD具有群集管理权限,这将是升级开发人员权限的一种方式。(或攻击者模仿开发人员) 是否有办法限制允许通过ArgoCD创建哪些k8s资源 编辑: 根据,使用Security 限制允许的kubernetes类型与ArgoCD一起部署,security,kubernetes,continuous-deployment,argocd,Security,Kubernetes,Continuous Deployment,Argocd,我们希望通过将代码和k8s资源合并到ArgoCD监视的git repo中,允许开发人员自动将更改部署到kubernetes集群。发布管理团队将负责管理ArgoCD配置和设置新的应用程序,以及在集群上创建名称空间、角色和角色绑定,而开发人员应该能够通过GitOps部署其应用程序,而无需直接与集群交互。开发人员可能具有集群上的读取权限以进行调试。 现在的问题是:理论上,开发人员可能会创建一个新的yaml并指定一个rolebinding ressource,该角色将其帐户绑定到集群管理员角色。由于Ar
clusterResourceWhitelist
,每个项目都可以这样做。
有可能在全球范围内做到这一点吗?您对Argo CD项目的看法是正确的。项目CRD支持使用
clusterResourceWhitelist
,clusterResourceBlacklist
等字段允许/拒绝K8S资源。Argo CD中还提供了示例项目定义
为了全局限制托管资源列表,您可以在
argocd cm
ConfigMap中指定resource.exclusions
/resource.inclusions
字段。示例是可用的。我不完全确定tbh,但是否有一种方法可以使用某种资源白名单/黑名单来配置ArgoCD?这可能是一种方法,你是对的。根据调查,这似乎是可能的。有没有一种方法可以在全球范围内做到这一点?如果没有,是否有人有配置示例/良好实践示例?