ArgoCD v2.9中AppProject角色能否授予跨项目资源访问权限?
ArgoCD v2.9跨项目资源授权问题解答
你当前的配置无法实现跨项目访问,因为ArgoCD的AppProject角色权限作用域默认被限定在所属项目内,即使策略中指定了其他项目的资源路径,权限检查也会拦截这类跨项目的请求,所以READ和MOD组用户只能看到myproject下的应用。
要实现跨项目资源访问,有两种可行方案:
方案一:使用集群级RBAC策略
直接修改ArgoCD的argocd-rbac-cm ConfigMap,添加集群级权限规则,绕过项目级角色的作用域限制:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-rbac-cm namespace: argocd data: policy.csv: | p, READ, applications, get, myproject/*, allow p, READ, applications, get, default/*, allow p, MOD, applications, *, myproject/*, allow p, MOD, applications, *, default/*, allow policy.default: ''
方案二:在目标项目中添加对应角色
在default项目的AppProject配置中,新增针对READ、MOD组的角色,授予其访问default项目资源的权限:
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: default spec: roles: - name: cross-read groups: - READ policies: - p, proj:default:cross-read, applications, get, default/*, allow - name: cross-mod groups: - MOD policies: - p, proj:default:cross-mod, applications, *, default/*, allow
保留你原有的myproject角色配置,这样属于READ/MOD组的用户会同时拥有两个项目的角色权限,即可查看和操作default项目下的Applications。
内容的提问来源于stack exchange,提问作者apa64
相关产品推荐
相关产品推荐

