Деплой и инфра
Secrets at deploy: тест с выбором ответа
Шесть вопросов через весь юнит. Каждый отражает реальное решение на этапе деплоя — это не определение для заучивания, а модель угроз, которую нужно продумать под аудитом.
Убедитесь, что можете связать гигиену образа, ловушку base64, шифрование etcd, способ инъекции, sealed secrets и rotation в единую позицию: где secret попадает внутрь и где утекает.
Dockerfile задаёт ENV API_KEY=sk-live-abc в раннем слое, затем поздний слой выполняет `unset API_KEY`. Безопасен ли ключ в запушенном образе?
Коллега уверяет, что кластер безопасен, потому что каждое значение Kubernetes Secret закодировано в base64. В чём точная поправка?
Вы настроили EncryptionConfiguration, чтобы API-сервер шифровал Secrets at rest в etcd. Аудитор всё равно находит старый Secret в плейнтексте в бэкапе etcd. Почему и что упущено?
Error-трекер показывает живой пароль БД в плейнтексте внутри стектрейса. Secret инъецировался как переменная окружения. Корневая причина и структурное исправление?
Небольшой GitOps-команде нужно закоммитить секретную конфигурацию в приватный репозиторий, чтобы Argo CD её применил, при минимуме внешних зависимостей. Какой подход верный и почему его действительно безопасно коммитить?
Безопасность требует rotation секретов каждые 30 дней и хочет, чтобы украденный credential быстро становился бесполезным. Вы на Kubernetes, доступен Vault. Какая связка лучше всего достигает обеих целей?
Сквозная линия юнита — один путь решений: secret попадает внутрь на деплое или в рантайме (никогда в образе), его нужно по-настоящему шифровать, а не кодировать в base64, для etcd нужно настроить encryption at rest и переписать существующие Secrets, file mounts превосходят env-переменные по поверхности утечки и rotation на месте, Sealed Secrets дают коммитируемый GitOps-артефакт, а dynamic короткоживущие credentials делают украденный secret бесполезным до истечения срока. Каждый неверный ответ здесь — реальный инцидент, который кто-то уже пережил.