Инфраструктура открытых ключей (PKI)
Содержание
Архитектура PKI #
В отличие от старой трёхуровневой иерархии (Root CA → промежуточный CA → листовые сертификаты), новая PKI плоская: один Root CA на управляющем кластере выдаёт сертификаты напрямую всем узлам сети.
Типы сертификатов #
mTLS-сертификат Entry-ноды #
Выдаётся K8s worker node при вступлении в кластер. Позволяет Entry-поду:
- Устанавливать исходящие mTLS-соединения с Core-нодами.
- Быть идентифицированным Core-нодой как легитимный отправитель трафика.
Entry-нода не может выдавать сертификаты другим узлам и не имеет доступа на запись в etcd.
mTLS-сертификат Core-ноды #
Выдаётся при регистрации Core-ноды (phone-home + CSR). Позволяет Core-ноде:
- Устанавливать исходящее mTLS-соединение с управляющим кластером (phone-home).
- Принимать входящие mTLS-соединения от Entry-нод.
Core-нода не может подключаться к другим Core-нодам или к etcd напрямую.
Сроки жизни #
| Сертификат | Срок | Продление |
|---|---|---|
| Root CA | Долгосрочный | Ручное, критическая операция |
| Entry-нода (mTLS) | 90 дней | Автоматическое через K8s |
| Core-нода (mTLS) | 90 дней | Автоматическое через phone-home агент |
Генерация ключей #
Приватный ключ всегда генерируется на узле. Управляющий кластер получает только CSR и выдаёт подписанный сертификат.
| Узел | Где генерируется ключ | Что передаётся наружу |
|---|---|---|
| Entry-нода | При инициализации K8s worker | CSR → сертификат |
| Core-нода | При первом запуске контейнера | CSR → сертификат |
Отзыв сертификатов #
При компрометации узла или выходе участника из сети сертификат отзывается немедленно через управляющий кластер. Entry-поды проверяют статус сертификатов Core-нод при установке каждого нового соединения.
| Событие | Действие |
|---|---|
| Компрометация Core-ноды | Отзыв mTLS-сертификата → Entry перестаёт направлять трафик на этот адрес |
| Выход участника | Отзыв сертификатов Entry-ноды и Core-ноды |
| Компрометация Root CA | Полная перегенерация PKI, перевыпуск всех сертификатов |
Публичные TLS-сертификаты #
Помимо внутренних mTLS-сертификатов, Entry-ноды и Core-ноды имеют публичные TLS-сертификаты от Let’s Encrypt. Они используются для:
- TLS-терминации клиентских соединений (Entry).
- Маскировки трафика под легитимный HTTPS (оба слоя).
Публичные сертификаты управляются независимо от внутренней PKI и не имеют отношения к mTLS-аутентификации между узлами.
| Сертификат | Источник | Использование |
|---|---|---|
| Публичный TLS | Let’s Encrypt | Клиентские соединения, маскировка |
| Внутренний mTLS | Root CA (управляющий кластер) | Аутентификация между узлами |