0

我正在尝试创建一个public-ns应该可供所有用户和组访问的公共命名空间。我已将 RoleBinding 定义如下,它允许 2 个组和 2 个用户访问命名空间。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: allow-everyone
  namespace: public-ns
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pods-services
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: user-one
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: user-two
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: group-one
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: group-two

现在,我想允许所有组访问此命名空间。我试过给予'*'any但没有奏效。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: allow-everyone
  namespace: public-ns
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pods-services
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: any  ## tried '*' as well

谁能建议我如何为每个人授予此特定命名空间的权限。如果这是不可能的,建议的任何替代方案都会很棒。

注意:在带有 Keycloak 的 K8s 上启用了 OIDC。

提前致谢。

4

1 回答 1

2

我认为你应该使用特殊的组系统:authenticated

https://kubernetes.io/docs/reference/access-authn-authz/authentication/#authentication-strategies

于 2020-11-30T09:44:49.983 回答