为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建新的客户端证书/令牌以编程访问 GKE 上托管的 Kubernetes API?

如何创建新的客户端证书/令牌以编程访问 GKE 上托管的 Kubernetes API?

Go
大话西游666 2021-12-20 19:14:22
我正在运行一个托管在 GKE 上的 Kubernetes 集群,并且想编写一个与 Kubernetes API 对话的应用程序(用 Go 编写)。我的理解是,我可以提供客户端证书、不记名令牌或 HTTP 基本身份验证,以便与 apiserver 进行身份验证。我已经找到了将其中任何一个注入Golang 客户端库的正确位置。不幸的是,我遇到的示例倾向于引用存储在我的个人 kubeconfig 文件中的现有凭据。从安全角度来看,这似乎是不可取的,并且让我相信我应该创建一个新的客户端证书/令牌/用户名-密码对,以支持轻松撤销/删除受感染帐户。但是,我在文档中找不到实际描述在 GKE 中的托管 Kubernetes 上运行时如何解决此问题的地方。(有一个关于创建新证书的指南,解释了 apiserver 最终需要使用更新的参数重新启动,据我所知,在 GKE 中无法做到这一点。)我在一个(或多个)应用程序中重用我的个人 Kubernetes 凭证的安全顾虑是否不合理?如果没有,生成一组新凭据的正确方法是什么?谢谢。
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

如果您的应用程序在集群内运行,您可以使用Kubernetes 服务帐户向 API 服务器进行身份验证。

如果这是在集群之外,事情就没有那么容易了,我想你的担忧是有道理的。目前,除了为您的个人 kubeconfig 文件生成的身份之外,GKE 不允许使用其他自定义身份。

您可以不使用您的凭据,而是获取服务帐户的令牌(在 pod 内,从 读取/var/run/secrets/kubernetes.io/serviceaccount/token),然后使用它。这是一个粗暴的黑客,而不是一个很好的通用解决方案,但它可能比使用您自己的个人凭据稍微好一点。


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号