最近用 argocd 部署的时候想到的 k8s 的 secret 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zx900930
V2EX    Kubernetes

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

  •  
  •   zx900930 2024-07-24 07:58:33 +08:00 2235 次点击
    这是一个创建于 513 天前的主题,其中的信息可能已经有所发展或是发生改变。
    存放配置文件的 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  
       2024-07-24 08:38:22 +08:00
    我在用 Helm Secrets ,生产测试 secrets 存在 GCP Secret Manager
    zx900930
        2
    zx900930  
    OP
       2024-07-24 11:01:49 +08:00
    @momo2789 有 saas 服务真好,air-gapped 干啥都跟带着脚镣跳舞一样。
    我想到是否可以用 git-crypt 这种,在 git 上直接加密 secret 文件,然后 argocd 在 pull 的时候解密,唯一的问题就是这个用来加密的私钥没法定期更新。
    oldboy627
        3
    oldboy627  
       2024-07-24 12:17:08 +08:00
    你可以使用 openssl 加密,然后创建 tls 类型的 secrets ,在 pod 上创建一个 init container 进行 ssl 反向解密并把这个 secrets 以 volume 方式或者注入环境变量方式给 pod 容器。
    zx900930
        4
    zx900930  
    OP
       2024-07-24 12:22:41 +08:00
    @oldboy627 谢谢,这个挺像 bitnami-sealed-secrets 的做法。
    客户端加密,然后生产环境的 controller 解密。
    我先测试一下这个方案。
    zed1018
        5
    zed1018  
       2024-07-24 13:06:49 +08:00
    但是集群访问以及资源不都是有访问控制的吗,secret 本身加密与否没有那么重要吧
    zx900930
        6
    zx900930  
    OP
       2024-07-25 09:32:31 +08:00
    @zed1018 这个决定了是否能实现 100%的 IaC 。
    要复制或者迁移只需要新起一个集群然后连接这个 git repo ,剩下的活基本就不需要人为介入了。
    集群/App 数量多的时候很有用的。
    zed1018
        7
    zed1018  
       2024-07-25 10:25:10 +08:00
    @zx900930 #6 我也用 IaC ,搞的 flux ,但是我觉得这个是个成本问题,你花了大功夫如果解密方法/私钥在 git repo ,那和不加密没区别,如果不在,那也还是要人工介入这个过程。要是再搞个外部的 manager ,成本就更大了。单纯为了几个 secret 感觉没这么值当。
    zx900930
        8
    zx900930  
    OP
       2024-07-25 12:41:21 +08:00
    @zed1018 解密的私钥在目标集群,30 天自动轮转一次,编写 secret 的时候通过客户端连接 api 刷新私钥。
    但是这个方法安全虽然有保障,缺点太明显了,就是太过于麻烦,推行会有很大阻力。

    不如在 git 那边单独开个 repo 专门存放 secret ,严格限制接入设备更简单。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1205 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:30 PVG 01:30 LAX 09:30 JFK 12:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86