【问题标题】:How to hide passwords in the helm values.yaml file如何在 helm values.yaml 文件中隐藏密码
【发布时间】:2020-05-19 10:01:21
【问题描述】:

我们正在为我们的产品使用 helm 图表,我们需要找出如何在 helm 图表中隐藏密码或秘密。谁能帮助我们解决这个问题?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    我认为您需要做的是在 Helm 命令之外创建一个秘密,例如:

    kubectl create secret generic my-secret --from-literal=password=Y4nys7f11
    

    然后在values.yaml 中使用这个秘密名称并将其传递给templates/*。我认为没有更好的集成 Helm 方式。

    你可以看一个例子here

    【讨论】:

    • 这听起来是个坏主意,密码将存储在 shell 历史记录中。
    • @JesusH 我们可以将其粘贴到 shell 脚本文件中并执行该文件以退出 shell 历史记录,然后在完成后擦除该文件。
    【解决方案2】:

    无论如何,Kubernetes 机密只是一个 base64 机密,即使您使用通用标签创建它,它们也会显示为不透明,但对于生产来说,它们仍然是一种负担。

    您的 Kubernetes 集群托管在哪里?它是托管集群还是裸机集群?你想要一个与云无关的解决方案吗,因为 kubernetes 与云无关。如果没有,您可以使用各种云供应商提供的密钥库。但同样,如果该密钥丢失,您将冒着阻碍所有流程的风险。

    你可以做的是因为你已经在使用 helm,你可以为 helm 安装 helm-vault 插件。您可以参考我将在下面粘贴的描述性博客和自述文件。 Blog 用于更好地理解,Github Project Readme 用于实现。

    但是,您需要一个保管库集群作为先决条件。此外,如果您可以通过领事实例支持它,那将是非常棒的。但这将确保满足生产要求。

    如果您只是在尝试,在运行时创建一个秘密并加载到您的 helm 部署中只需几分钟。说到这,您还可以使用 Kubernetes cron 作业来刷新您的秘密。

    更新:因为您在 EKS 上,所以没有 vault/consul 的更简单的方法是通过 AWS Key Vault 服务,但它也有自己的优点/缺点。这可以通过 Zendesk 开发的另一个 helm 插件来实现,Helm Secrets

    【讨论】:

    • 你的 kubernetes 集群主机在哪里? EKS
    • 如果它对您的意思有帮助,请接受答案,而我将添加一些其他方式,因为您使用 EKS 时更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2022-08-16
    • 2016-09-21
    • 2021-12-18
    相关资源
    最近更新 更多