如何将内部 OIDC 组映射到外部 K8s 集群角色

如何将内部 OIDC 组映射到外部 K8s 集群角色

我已成功将 K8s 集群 + 仪表板连接到 Keycloak 服务器,现在我问自己一个问题:

我已经遵循这些说明这里

此外,我还对 kube-apiserver.yml 做了适当的调整。在我看来,这两个 yaml 应该做相应的映射。有人碰巧有相应的配置并可以验证我的假设吗?

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: devops-cluster-admin
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: devopstales

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
subjects:
- kind: User
  name: "devopstales"
  namespace: "kube-system"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name:  cluster-admin

如何实现 OIDC 角色/组和 K8s 角色之间的角色映射?

答案1

您需要指定--oidc-groups-claim=JWT 声明包含用于标识经过身份验证的用户所属组的字符串列表,然后您可以oidc-groups-prefix在 RBAC 情况下引用这些名称(以及您指定的任何可选项)以向这些组授予集群权限

相关内容