Подпись контейнерных образов — это способ подтвердить, кто выпустил образ и что он не был изменён после публикации. Для DevSecOps это уже не “nice to have”, а базовая практика защиты supply chain.
Почему это важно:
- без подписи нельзя надёжно доказать происхождение образа
- злоумышленник может подменить тег, а digest останется единственным точным идентификатором
- в Kubernetes и CI/CD всё чаще внедряют политику: неподписанные образы не запускать
Что решает image signing
Подпись связывает образ с издателем через криптографию. При проверке система убеждается:
- образ действительно подписан владельцем ключа
- digest совпадает с тем, что был подписан
- подпись валидна и не просрочена
Это снижает риски атак через registry, компрометации pipeline и случайного деплоя “левых” сборок.
Cosign
Cosign — популярный инструмент из экосистемы Sigstore. Он прост в использовании и хорошо подходит для cloud-native сред. 🚀
Плюсы:
- умеет подписывать контейнеры, артефакты и attestation
- поддерживает keyless-подпись через OIDC
- интегрируется с Kubernetes policy engines
- удобен для CI/CD и GitHub Actions
Типичный сценарий:
- собрали образ
- подписали `cosign sign`
- при деплое проверили `cosign verify`
Cosign особенно ценят за современный подход: меньше ручного управления ключами, проще автоматизация.
Notary
Notary — проект, исторически связанный с Docker Content Trust. Его задача та же: подтверждать подлинность и целостность артефактов. 🛡️
Что важно знать:
- Notary v1 использовался с Docker Content Trust
- Notary v2 / Notation развивается как более современный подход для OCI-артефактов
- подходит организациям, где важны стандартизация и интеграция с enterprise-процессами
Notary часто рассматривают там, где уже есть зрелые требования к управлению ключами, ролям и доверенным издателям.
Cosign или Notary: что выбрать
- Нужна быстрая интеграция в Kubernetes и CI/CD → чаще выбирают Cosign
- Нужен акцент на стандарт OCI и enterprise governance → стоит смотреть в сторону Notary/Notation
- Нужна keyless-модель → у Cosign здесь сильная позиция
Практические рекомендации
- подписывайте digest, а не только тег
- храните и проверяйте provenance/attestation
- включайте policy enforcement на уровне admission controller
- автоматизируйте проверку подписей в pipeline 🔎
- ограничьте запуск неподписанных образов в production
Итог
Подпись образов — это важный слой безопасности контейнерной платформы. Cosign выигрывает в удобстве и скорости внедрения, Notary — в стандартизации и enterprise-подходе. Лучший выбор зависит от вашей инфраструктуры, требований compliance и зрелости DevSecOps. ✅
Подборку каналов про IT стоит посмотреть тем, кто следит за DevOps, Kubernetes, безопасностью контейнеров и практикой CI/CD.