Production-секреты во время выполнения¶
Требования применяются к доставке и использованию production-секретов
запущенным компонентом. Подготовка исходников и сборки регулируется
SEC-SCRT-001–SEC-SCRT-005. Уровни обязательности определены в корневом
README.md.
SEC-SCRT-006. Доверенный источник runtime-секрета¶
Уровень: MUST
Применяется к: production-компоненту, которому требуется секрет
Секрет должен поступать из утверждённого secret manager или эквивалентного защищённого механизма среды исполнения. Доступ должен предоставляться identity конкретного компонента и окружения, а не общим credential проекта.
Открытое значение не должно находиться в deployment manifest, container image, аргументах процесса, обычной переменной CI или metadata оркестратора.
Обоснование¶
Отделение секрета от артефакта позволяет ограничить доступ, отозвать значение и не пересобирать приложение при ротации.
Проверка¶
- review источника и identity workload;
- чтение разрешённого и запрет чужого секрета test identity;
- secret scanning deployment-описания, process arguments и image.
Исключения¶
Платформенный secret input MAY использоваться вместо отдельного manager, если он шифруется, имеет эквивалентные access controls, аудит и ротацию.
SEC-SCRT-007. Ротация без смены артефакта¶
Уровень: MUST
Применяется к: секрету с изменяемым значением
Проект должен определить владельца, максимальный срок действия, способ выпуска, активации и отзыва. Компонент должен принимать новое значение без изменения application artifact и атомарно переключаться на него.
Если provider требует период одновременной валидности, его продолжительность должна быть конечной. После подтверждения нового значения предыдущее должно быть отозвано и перестать использоваться.
Обоснование¶
Ротация, требующая незапланированной пересборки или мгновенного несогласованного переключения, увеличивает окно компрометации и риск отказа.
Проверка¶
- integration-тест ротации под нагрузкой;
- проверка прекращения использования старой версии;
- аварийный тест внепланового отзыва.
Исключения¶
Перезапуск экземпляра MAY применяться для загрузки новой версии, если rollout сохраняет SLO и не требует нового артефакта.
SEC-SCRT-008. Недоступность и устаревание секрета¶
Уровень: MUST
Применяется к: получению или обновлению runtime-секрета
Отсутствие обязательного секрета при старте должно завершать запуск до приёма работы. Последняя принятая версия MAY кэшироваться только в защищённой памяти до документированного максимального срока.
После истечения срока компонент должен прекратить зависящую от секрета операцию либо перейти в явно определённый безопасный режим. Ошибка provider не должна приводить к неограниченным retry, записи значения или fallback на встроенный credential.
Обоснование¶
Бесконечное использование устаревшего значения скрывает отзыв, а небезопасный fallback превращает отказ secret manager в обход контроля доступа.
Проверка¶
- тест отсутствия при старте, timeout provider и истечения cache;
- тест ограниченных retry и безопасного режима;
- проверка отсутствия значения в логах и crash report.
Исключения¶
Публичная операция, не использующая секрет, MAY продолжать работу при изолированном отказе защищённой возможности.
SEC-SCRT-009. Аудит доступа и минимизация значения¶
Уровень: MUST
Применяется к: чтению и административному изменению production-секрета
Должны фиксироваться identity, имя секрета, версия, операция и результат без открытого значения. Компонент должен получать только необходимые ему секреты, а административные права выпуска и отзыва должны быть отделены от runtime- identity.
Секрет должен находиться в памяти минимально необходимое время и не должен передаваться в telemetry, child process или diagnostic endpoint.
Обоснование¶
Разделение runtime и management-доступа ограничивает последствия компрометации компонента и позволяет расследовать использование секрета.
Проверка¶
- review scopes runtime и administrative identities;
- аудит успешного и запрещённого чтения;
- контролируемое сканирование telemetry и process tree.
Исключения¶
Не допускаются для записи открытого значения.