如何仅对kube-system
名称空间应用PSP(PodSecurityPolicy),对所有其他容器应用另一个PSP?
答案 0 :(得分:1)
我们可以在Kubernetes文档中阅读有关Pod Security Policies的信息。
Pod安全策略是一种群集级资源,用于控制Pod规范中与安全相关的方面。
PodSecurityPolicy
对象定义了pod必须运行的一组条件,以便被系统接受,以及相关字段的默认值。
您应该使用RBAC并设置Role
,它将使用所需的PSP
。
如果使用
RoleBinding
(而不是ClusterRoleBinding
),它将仅授予在与绑定相同的名称空间中运行的pod的使用权限。可以将其与系统组配对以授予对在命名空间中运行的所有Pod的访问权限:
# Authorize all service accounts in a namespace:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: system:serviceaccounts
# Or equivalently, all authenticated users in a namespace:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: system:authenticated
您还应该签出Using PodSecurityPolicies和Kubernetes: Assigning Pod Security Policies with RBAC。
希望这会有所帮助。
答案 1 :(得分:0)
Pod security policies是集群级别的资源,因此在香草Kubernetes中没有当前的方法可以满足您的需求。
但是,Rancher向群集添加了Projects的概念,您可以将Pod Security策略应用于项目。
注意-他们仍然建议在群集级别使用Pod安全策略。
或者,@Crou的答案也是通过RBAC和RoleBindings实现它的好选择。