Шифрование etcd

Это руководство поможет вам установить, понять и управлять etcd Encryption Manager в для автоматизации ротации ключей шифрования данных etcd в ваших кластерах.

Оно обеспечивает шифрование конфиденциальных данных, хранящихся в etcd, таких как secrets и configmaps, с использованием надежного алгоритма, повышая безопасность вашего кластера.

Содержание

Установка

Смотрите Cluster Plugin для инструкций по установке.

Примечание:

  • В настоящее время поддерживаются:

    • On-Premises кластеры
    • DCS кластеры
  • Не поддерживается:

    • global cluster

Принцип работы

После установки в namespace kube-system разворачивается контроллер etcd-encryption-manager, который:

  • Периодически выполняет ротацию ключей шифрования данных 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