我们有一个单一的 Kubernetes 开发集群。我们希望为每个在此开发集群上工作的开发人员提供命名空间受控访问。
我们希望使用 Google 作为 Kubernetes API 支持的 OIDC 提供程序对其进行身份验证。
但这需要 客户 secret 成为 ~/.kube/config
的一部分
users:
- name: you@yourdomain.com
user:
auth-provider:
name: oidc
config:
client-id: <client-id>
client-secret: <client-secret>
idp-issuer-url: https://accounts.google.com
id-token: <id-token>
refresh-token: <refresh-token>
我们不想将客户端密码泄露给用户,因为当开发人员离开组织时,客户端密码会被泄露,并可能被滥用来模拟。
请建议如何使用 google 作为 OIDC 提供者在 kubernetes 集群中对用户进行身份验证,并且不会泄露客户端密码。
最佳答案
客户 secret 现在对于 k8s oidc 配置是可选的,这意味着它可以支持公共(public)客户端(有或没有 client_secret)和 secret 客户端(有 client_secret,每个 kubectl 用户)。
这意味着您不需要使用客户端密码进行身份验证,但正如我在回答您的下一个问题 openid-kubernetes
中所写的那样无需担心凭据泄漏。
关于authentication - 使用 Google 作为 OIDC 提供者,而不会在 kubernetes 中泄露客户端 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829927/