我对Kubernetes集群上的PSP(Pods安全策略)和RBAC感到困惑。
许多团队目前正在使用此群集来构建其CI / CD作业。 每个团队都有一个专用的命名空间,我们希望拒绝它们在集群中启动特权容器的可能性。
使用EKS集群,AWS创建了一个默认PSP,它允许所有内容,并通过以下clusterrolebinding绑定到集群中的每个资源:
kind: ClusterRoleBinding
metadata:
name: eks:podsecuritypolicy:authenticated
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: eks:podsecuritypolicy:privileged
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
我的目标是为所有“系统”名称空间保留默认的AWS ClusterRole,并将特定的PSP“禁用特权容器”应用于所有项目名称空间。 这将使我消除在系统名称空间上应用错误的PSP并破坏群集的风险。
我知道我可以在每个系统名称空间内创建一个RoleBinding
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: namespace-privileged
roleRef:
kind: ClusterRole
name: eks:podsecuritypolicy:privileged
apiGroup: rbac.authorization.k8s.io
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
但是我想知道我是否可以使用一个clusterolebinding而不是很多rolebinding来做到这一点?
我希望我已经清楚了,并预先感谢您提供的可能答案!