Secret 加密配置

K3s 支持启用静态加密。首次启动 server 时,传递标志 --secrets-encryption 将自动执行以下操作:

  • 生成 AES-CBC 密钥
  • 使用密钥生成加密配置文件
  • 将配置作为 encryption-provider-config 传递给 KubeAPI

Secret 加密 - 图1提示

如果不重新启动现有 server,则无法在其上启用 Secret 加密。
如果使用脚本或配置选项中描述的其他方法进行安装,请使用 curl -sfL https://get.k3s.io | sh -s - server --secrets-encryption

加密配置文件示例:

  1. {
  2. "kind": "EncryptionConfiguration",
  3. "apiVersion": "apiserver.config.k8s.io/v1",
  4. "resources": [
  5. {
  6. "resources": [
  7. "secrets"
  8. ],
  9. "providers": [
  10. {
  11. "aescbc": {
  12. "keys": [
  13. {
  14. "name": "aescbckey",
  15. "secret": "xxxxxxxxxxxxxxxxxxx"
  16. }
  17. ]
  18. }
  19. },
  20. {
  21. "identity": {}
  22. }
  23. ]
  24. }
  25. ]
  26. }

Secret 加密工具

K3s 包含一个实用工具 secrets-encrypt,可以自动控制以下内容:

  • 禁用/启用 Secret 加密
  • 添加新的加密密钥
  • 轮换和删除加密密钥
  • 重新加密 Secret

有关详细信息,请参阅 k3s secrets-encrypt 命令文档