sops

SOPS 加密配置文件

补充说明

SOPS 用 age、PGP 或云 KMS 加密 YAML、JSON、ENV 和二进制文件,只加密值、保留结构,便于 Git diff 和代码审查。它常与 Flux、Argo CD、Helm Secrets 配合,在 GitOps 中安全存放密钥。

核心概念:.sops.yaml 规则、加密密钥、MAC、sops edit 和 sops exec-env。

语法

安装:

brew install sops age
# 或
go install go.mozilla.org/sops/v3/cmd/sops@latest

生成 age 密钥:

age-keygen -o age.key
cat age.key

创建 .sops.yaml:

cat > .sops.yaml <<'EOF'
creation_rules:
- path_regex: secrets/.*\.yaml$
  age: age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
EOF

加密文件:

sops --encrypt secrets/app.yaml > secrets/app.enc.yaml

编辑加密文件:

sops secrets/app.enc.yaml

解密:

sops --decrypt secrets/app.enc.yaml

只查看某个字段:

sops --decrypt --extract '["db"]["password"]' secrets/app.enc.yaml

使用环境变量执行命令:

sops exec-env secrets/app.enc.yaml 'env | grep DB_'

轮换密钥:

sops updatekeys secrets/app.enc.yaml

注意

相关命令

参考链接