允许 RoleBinding 中的每个人使用命名空间

Allow everyone in RoleBinding for a namespace

我正在尝试创建一个 public 命名空间 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。

提前致谢。

我认为你应该使用特殊组 system:authenticated

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