【问题标题】:Encrypting secrets in config maps加密配置映射中的秘密
【发布时间】:2023-03-28 21:29:01
【问题描述】:

有什么方法可以加密 configmap 中的秘密以用于 kubernetes 部署?我正在使用通量,所以我需要将所有部署文件存储在 git 中,我使用 kubeseal 加密所有秘密的清单,但我还没有找到保护配置映射中秘密的好解决方案(通常配置文件包含用户名之类的东西/密码)。

【问题讨论】:

  • ConfigMaps 确实没有内置机制,因为它们不是用来存储秘密的。
  • @Blokje5 我知道,但许多众所周知的应用程序仍然以这种方式工作(从配置文件中读取凭据),例如,这就是我在我的特定用例 github.com/wso2/kubernetes-apim/blob/v3.2.0.2/simple/… 中谈论的内容,它只是众多例子中的一个。
  • 是的,那么通常希望配置文件支持例如环境变量插值。你总是可以使用一个使用例如的初始化容器。 sed 用环境变量替换文件中的值。
  • 我猜这行得通,但它很麻烦,而且不能很好地扩展为解决方案,我希望有一个更清洁、更方便的解决方案。为什么没有人想到像 kubeseal 这样的工具会读一个清单,用给定的秘密替换其中的变量并从中创建配置映射?我希望至少有这样的东西。

标签: kubernetes


【解决方案1】:

在 k8s 中没有直接引用机密的方法。
您可以使用here 提供的解决方法将机密加载为环境变量并在您的配置映射中引用它,但请记住,不建议将机密加载为环境变量。

【讨论】:

  • 我说的是应用程序实际上不支持在配置文件中引用环境变量的用例。
  • 您仍然可以使用 yaml 变量来利用它 - anil.io/blog/symfony/yaml/using-variables-in-yaml-files,将 env var 拉入 yaml,然后将其作为配置的一部分注入。
  • 真的不知道这实际上会有什么帮助,因为这只是一个直接引用功能,基本上只是为了避免在同一个 yaml 文件中重复块。
【解决方案2】:

注意:ConfigMap 不提供保密或加密功能。如果您要存储的数据是机密的,请使用 Secret 而不是 ConfigMap,或使用其他(第三方)工具来保护您的数据的私密性。

发件人:https://kubernetes.io/docs/concepts/configuration/configmap/

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多