V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zx900930
V2EX  ›  Kubernetes

最近用 argocd 部署的时候想到的 k8s 的 secret 问题

  •  
  •   zx900930 · 130 天前 · 1545 次点击
    这是一个创建于 130 天前的主题,其中的信息可能已经有所发展或是发生改变。
    存放配置文件的 git repo 在开发环境、同步一份到 prod 。
    staging 和 prod 用 argocd 连到不同的 git repo 上读取配置。
    按照安全标准开发环境是不允许有生产环境的 credentials ,除非进行了加密。

    但是众所周知 k8s 默认的 secret 只是 base64 编码,不是加密。
    1. 不写的话服务缺少依赖跑不起来,得分别去几个不同的集群手动添加 secret 。
    2. 如果上 vault 这种又有点重,引入了新的组件和维护成本。
    有啥最佳实践么?
    8 条回复    2024-07-25 12:41:21 +08:00
    momo2789
        1
    momo2789  
       130 天前
    我在用 Helm Secrets ,生产测试 secrets 存在 GCP Secret Manager
    zx900930
        2
    zx900930  
    OP
       130 天前
    @momo2789 有 saas 服务真好,air-gapped 干啥都跟带着脚镣跳舞一样。
    我想到是否可以用 git-crypt 这种,在 git 上直接加密 secret 文件,然后 argocd 在 pull 的时候解密,唯一的问题就是这个用来加密的私钥没法定期更新。
    oldboy627
        3
    oldboy627  
       130 天前
    你可以使用 openssl 加密,然后创建 tls 类型的 secrets ,在 pod 上创建一个 init container 进行 ssl 反向解密并把这个 secrets 以 volume 方式或者注入环境变量方式给 pod 容器。
    zx900930
        4
    zx900930  
    OP
       130 天前
    @oldboy627 谢谢,这个挺像 bitnami-sealed-secrets 的做法。
    客户端加密,然后生产环境的 controller 解密。
    我先测试一下这个方案。
    zed1018
        5
    zed1018  
       130 天前
    但是集群访问以及资源不都是有访问控制的吗,secret 本身加密与否没有那么重要吧
    zx900930
        6
    zx900930  
    OP
       129 天前
    @zed1018 这个决定了是否能实现 100%的 IaC 。
    要复制或者迁移只需要新起一个集群然后连接这个 git repo ,剩下的活基本就不需要人为介入了。
    集群/App 数量多的时候很有用的。
    zed1018
        7
    zed1018  
       129 天前
    @zx900930 #6 我也用 IaC ,搞的 flux ,但是我觉得这个是个成本问题,你花了大功夫如果解密方法/私钥在 git repo ,那和不加密没区别,如果不在,那也还是要人工介入这个过程。要是再搞个外部的 manager ,成本就更大了。单纯为了几个 secret 感觉没这么值当。
    zx900930
        8
    zx900930  
    OP
       129 天前
    @zed1018 解密的私钥在目标集群,30 天自动轮转一次,编写 secret 的时候通过客户端连接 api 刷新私钥。
    但是这个方法安全虽然有保障,缺点太明显了,就是太过于麻烦,推行会有很大阻力。

    不如在 git 那边单独开个 repo 专门存放 secret ,严格限制接入设备更简单。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2721 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:44 · PVG 15:44 · LAX 23:44 · JFK 02:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.