0

在单节点 Kubernetes 集群上工作,我希望将限制性 pod 安全策略应用于通过 openid 进行身份验证的一组用户。所以步骤顺序是这样的。

  1. 初始化集群,并创建 Pod 安全策略。
  2. 在 API 服务器中应用准入控制器PodSecurityPolicy(这会导致 API 服务器重新启动)
  3. 为用户创建一个ClusterRoleRoleBinding

通过 openid 对用户进行身份验证并获取他们的组效果很好,但是,限制PodSecurityPolicy到这个组不起作用。示例ClusterRoleRoleBinding在下面给出。如果我使用system:authenticated而不是mygroup策略来创建新的 pod。

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: psp:restricted
rules:
- apiGroups:
  - extensions
  resources:
  - podsecuritypolicies
  resourceNames:
  - restricted # the psp we are giving access to
  verbs:
  - use
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: psp:restricted
subjects:
- kind: Group
  name: mygroup # My group from openid, DOESN'T WORK.
# name: system:authenticated # all authenticated users, WORKS.
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: psp:restricted # A references to the role above
apiGroup: rbac.authorization.k8s.io
  1. 如何对RoleBinding特定组做 pod 安全策略?我上面的步骤中是否有任何错误。我RoleBinding在这个组中还有其他的,它们工作得很好。
  2. 第二个问题是Flannel pod 无法启动,因为它似乎采用了阻止卷挂载等的限制性策略。我读过策略的顺序很重要,并尝试用排序的名称命名策略政策作为最后一项。如果我稍后插入策略,并PodSecurityPolicy在初始化 Flannel 后添加准入控制器,一切似乎都很好。在插入策略、准入控制器时,我们必须遵循一个顺序吗?
4

1 回答 1

0

我虽然可能遇到过类似的问题,但发现这是我的角色的问题。您可以在为什么我的 PodSecurityPolicy 即使我无权访问?

于 2019-08-30T15:48:30.260 回答