Прямой ответ
Ротация ключей периодически меняет секрет, поэтому компрометация старого ключа не даёт доступ к текущим данным на неопределённый срок.
| Параметр | Что задаёт |
|---|---|
| Период ротации | Частота смены ключа |
| Автоматизация | Смена без вмешательства человека |
| Проверка утечек | Обнаружение скомпрометированных ключей |
| Срок действия | Ограничение периода использования |
# cert-manager: автоматическая ротация
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: app-cert
spec:
duration: 2160h
renewBefore: 720h
Период ротации определяет частоту смены ключа, поэтому компрометация ограничивается сроком до следующей смены. О хранении секретов — в статье про секреты в разработке.
Период ротации, автоматизация и проверка
Период ротации определяет частоту смены ключа, поэтому компрометация старого ключа не даёт доступ на неопределённый срок.
Период ротации. Ключ периодически меняется, поэтому компрометация ограничивается сроком до следующей смены.
Автоматизация. Смена ключа выполняется автоматически, поэтому вмешательство человека не требуется и срок не пропускается.
Проверка утечек. Скан истории репозитория обнаруживает ключи, попавшие в коммиты, поэтому утечка выявляется до компрометации.
Практическое следствие: отсутствие ротации приводит к тому, что скомпрометированный ключ действует неопределённый срок, поэтому компрометация не ограничивается.
Отдельный аспект — срок действия сертификата. Сертификат с истёкшим сроком не принимается, поэтому ротация выполняется до истечения.
Три признака некорректной ротации.
Отсутствие ротации. Ключ не меняется, поэтому компрометация даёт доступ на неопределённый срок.
Ручная ротация. Смена ключа требует вмешательства человека, поэтому срок может быть пропущен.
Отсутствие проверки утечек. Ключ в истории репозитория не обнаруживается, поэтому утечка остаётся незамеченной.
Об управлении конфигурацией — в статье про управление конфигурацией; о 12‑factor подходе — в статье про конфигурацию 12‑factor.
Автоматизация и проверка утечек
Автоматизация ротации обеспечивает, что смена ключа выполняется без вмешательства человека, поэтому срок не пропускается.
Автоматическая смена. Смена ключа выполняется автоматически, поэтому вмешательство человека не требуется и срок не пропускается.
Проверка утечек. Скан истории репозитория обнаруживает ключи, попавшие в коммиты, поэтому утечка выявляется до компрометации.
Срок действия сертификата. Сертификат с истёкшим сроком не принимается, поэтому ротация выполняется до истечения.
Практическое следствие: отсутствие автоматизации приводит к тому, что ротация может быть пропущена, поэтому компрометация не ограничивается.
Практика: настройка ротации ключей
1. Задавайте период ротации. Частота смены ключа ограничивает срок действия скомпрометированного ключа.
2. Автоматизируйте ротацию. Смена ключа выполняется автоматически, поэтому вмешательство человека не требуется.
3. Проверяйте историю репозитория на утечки. Скан обнаруживает ключи, попавшие в коммиты, поэтому утечка выявляется.
4. Ограничивайте срок действия сертификата. Сертификат с истёкшим сроком не принимается, поэтому ротация выполняется до истечения.
5. Фиксируйте ротацию в логе. Запись смены позволяет определить, когда и кем был сменён ключ.
6. Разделяйте ключи по окружениям. Ключи разработки, тестирования и продакшена различаются, поэтому компрометация одного не затрагивает другие.
7. Проверяйте применение нового ключа. После ротации приложение использует новый ключ, поэтому проверка подтверждает смену.
Рекомендации:
- Не пропускайте ротацию. Отсутствие смены ключа приводит к тому, что компрометация действует неопределённый срок.
- Учитывайте срок действия сертификата. Сертификат с истёкшим сроком не принимается, поэтому ротация выполняется до истечения.
- Сопоставляйте ротацию с окружением. Ключи продакшена отличаются от разработки, поэтому ротация выполняется раздельно.
- Фиксируйте ротацию в ошибке. Признак в записи ошибки позволяет определить, когда был сменён ключ.
- Пересматриваем период ротации при изменении требований. Новый период требует настройки автоматизации.
Практический сценарий: ключ не менялся длительное время
Контекст: проверка показала, что ключ не менялся длительное время, поэтому компрометация дала бы доступ на неопределённый срок.
- Диагностика. Проверка истории ротации показала, что ключ не менялся с момента создания. Отсутствие ротации означало, что компрометация ключа дала бы доступ на неопределённый срок.
- Причина. Ротация ключей не была настроена, поэтому ключ не менялся автоматически.
- Действия. (а) Настроили период ротации, чтобы ключ менялся регулярно; (б) автоматизировали ротацию, чтобы смена выполнялась без вмешательства человека; (в) настроили проверку истории репозитория на утечки, чтобы обнаруживать ключи в коммитах; (г) ограничили срок действия сертификата, чтобы ротация выполнялась до истечения; (д) проверили применение нового ключа после ротации.
- Результат. Ключ периодически меняется, поэтому компрометация ограничивается сроком до следующей смены.
Вывод: отсутствие ротации приводит к тому, что скомпрометированный ключ действует неопределённый срок. Периодическая смена ключа и автоматизация ротации ограничивают срок действия компрометации.
Практический сценарий: ключ не менялся длительное время
Контекст: проверка показала, что ключ не менялся длительное время, поэтому компрометация дала бы доступ на неопределённый срок.
- Диагностика. Проверка истории ротации показала, что ключ не менялся с момента создания. Отсутствие ротации означало, что компрометация ключа дала бы доступ на неопределённый срок.
- Причина. Ротация ключей не была настроена, поэтому ключ не менялся автоматически.
- Действия. (а) Настроили период ротации, чтобы ключ менялся регулярно; (б) автоматизировали ротацию, чтобы смена выполнялась без вмешательства человека; (в) настроили проверку истории репозитория на утечки, чтобы обнаруживать ключи в коммитах; (г) ограничили срок действия сертификата, чтобы ротация выполнялась до истечения; (д) проверили применение нового ключа после ротации.
- Результат. Ключ периодически меняется, поэтому компрометация ограничивается сроком до следующей смены.
Вывод: отсутствие ротации приводит к тому, что скомпрометированный ключ действует неопределённый срок. Периодическая смена ключа и автоматизация ротации ограничивают срок действия компрометации.
FAQ
Зачем нужна ротация ключей? Периодическая смена ключа ограничивает срок действия скомпрометированного ключа, поэтому компрометация не даёт доступ на неопределённый срок.
Как автоматизируется ротация? Через настройку периода ротации в хранилище секретов. Смена ключа выполняется автоматически, поэтому вмешательство человека не требуется.
Как проверяются утечки ключей? Скан истории репозитория обнаруживает ключи, попавшие в коммиты. Проверка выполняется периодически, поэтому утечка выявляется до компрометации.
Как ограничивается срок действия сертификата? Через настройку срока действия и периода обновления. Сертификат с истёкшим сроком не принимается, поэтому ротация выполняется до истечения.
Источники: HashiCorp Vault, cert-manager, Kubernetes Secrets — ссылки в шапке.