如何安全地向 kubectl 提供 kubeconfig

Sl4*_*4dy 4 kubernetes kubectl kubeconfig

我们的用户只能从管理站访问 Kubernetes 集群,不可能直接从笔记本电脑/工作站访问 API。

每个用户都拥有 kubeconfig 以及属于该特定用户的相关秘密。由于 kubeconfig 还包含用于针对 Kubernetes API 进行身份验证的令牌,因此不可能将 kubeconfig “按原样”存储在管理站文件系统上。

有什么方法可以通过 STDIN 向 kubectl 提供令牌/kubeconfig,而不将其暴露给文件系统上的其他用户(例如管理站的管理员)?

Łuk*_*zak 6

您可以使用 bash 进程替换将整个kubeconfig内容传递给kubectl而不将其保存到文件系统。

像这样的东西适用于 CI 系统:

  1. Base64 编码kubeconfig并安全存储
export KUBECONFIG_DATA=$(cat kubeconfig | base64 -w0)
Run Code Online (Sandbox Code Playgroud)
  1. 使用进程替换进行 Base64 解码并将其直接传递给kubectl
kubectl --kubeconfig <(echo $KUBECONFIG_DATA | base64 --decode) ...
Run Code Online (Sandbox Code Playgroud)