etcd 加密

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

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

NOTE

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

安装

有关安装说明,请参阅 Cluster Plugin。

注意:

  • 当前支持:

    • On-Premises 集群
    • DCS 集群
  • 不支持:

    • global cluster

工作原理

安装后,etcd-encryption-manager 控制器会部署在 kube-system 命名空间中,并执行以下操作:

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

在整个操作过程中,集群稳定性都能得到保持。

默认配置

参数值
加密资源secrets、configmaps
加密算法256 位 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