etcd 加密

本指南将帮助您在 中安装、了解和运行 etcd Encryption Manager,以自动轮换集群中的 etcd 数据加密密钥。

它可确保使用安全算法加密存储在 etcd 中的敏感数据(例如 secrets 和 configmaps),从而增强集群的安全性。

NOTE

从 ACP 4.5 开始,ACP etcd Encryption Manager 更名为 ACP Control Plane Database Encryption。从 Customer Portal 下载插件时,请搜索 ACP Control Plane Database Encryption。更名前发布的插件包上传后,在平台中仍显示为 ACP etcd Encryption Manager。

安装

有关安装说明,请参阅 集群插件。

注意:

  • 当前支持:

    • 本地部署集群
    • DCS 集群
  • 不支持:

    • global cluster

工作原理

安装后,系统会在 kube-system 命名空间中部署一个 etcd-encryption-manager 控制器,该控制器会:

  • 定期轮换 etcd 数据加密密钥。
  • 保留最近的 8 个密钥,以兼容回滚操作。
  • 更新所有控制节点上的加密配置。
  • 触发 kube-apiserver 热重载新密钥。
  • 自动迁移资源,以使用新密钥重新加密数据。

在整个操作过程中,集群都会保持稳定。

默认配置

参数值
加密资源secrets, configmaps
加密算法256-bit AES-GCM
轮换间隔168 小时(7 天)

操作指南

配置文件

路径内容
/etc/kubernetes/encryption-provider.conf当前加密配置
/etc/kubernetes/encryption-provider-history.bak历史密钥记录(用于恢复)
/etc/kubernetes/encryption-provider-bak/已过期的加密配置版本

检查状态

运行以下命令以检查当前轮换状态:

kubectl get EtcdEncryptionConfig default -o yaml

输出示例:

apiVersion: cluster.alauda.io/v1alpha1
kind: EtcdEncryptionConfig
metadata:
  name: default
spec:
  resources:
    - secrets
    - configmaps
  rotationInterval: 168h0m0s
  type: aesgcm
status:
  deployStatus:
    192.168.100.1:
      revision: 3
      state: Success
    192.168.100.2:
      revision: 3
      state: Success
    192.168.100.3:
      revision: 3
      state: Success
  migration:
    completeTimestamp: "2025-05-27T05:47:01Z"
    resources:
      - secrets
      - configmaps
    revision: 3
    state: Success
  revision: 3