Docker imajı imzalama, bir imajın kimin tarafından yayınlandığını ve etiketin içeriğinin değişmediğini kanıtlamak için kullanılır. Bu alanda klasik bir CA kod imzalama sertifikası değil, Docker Content Trust (Notary tabanlı) veya Sigstore cosign gibi araçlar yaygındır.
Docker Content Trust
İstemcide ortam değişkeniyle açılır; bundan sonra push sırasında imzalama, pull sırasında doğrulama yapılır:
export DOCKER_CONTENT_TRUST=1
docker push kayit.ornek.com/ekip/uygulama:1.0
İlk push'ta kök ve depo anahtarları için parola istenir. Kök anahtar çevrimdışı ve yedekli saklanmalıdır.
Açık imzalama ve inceleme
docker trust key generate yayinci
docker trust signer add --key yayinci.pub yayinci kayit.ornek.com/ekip/uygulama
docker trust sign kayit.ornek.com/ekip/uygulama:1.0
docker trust inspect --pretty kayit.ornek.com/ekip/uygulama:1.0
Son komut imzalayanları ve imzalı etiketleri listeler.
Alternatif: cosign
cosign generate-key-pair
cosign sign --key cosign.key kayit.ornek.com/ekip/uygulama:1.0
cosign verify --key cosign.pub kayit.ornek.com/ekip/uygulama:1.0
Sık hatalar
- Kayıt defterinin Notary'yi desteklememesi; imza yüklenemez.
- Etiket yerine digest ile çalışmak; imzayı digest'e bağlamak daha güvenlidir.
- Özel anahtarın CI günlüklerine sızması.
Önleme
- Üretim kümesinde yalnızca imzalı imajlara izin veren bir admission politikası uygulayın.
- Anahtarları gizli yönetim aracında tutun.
Uygulama önerisi
Kubernetes gibi ortamlarda imza doğrulamasını dağıtım anında zorunlu kılan bir admission denetleyicisi kullanmak, imzalamanın gerçek güvenlik değerini ortaya çıkarır. Sadece imzalamak yetmez; doğrulamayı yapan tarafın da yapılandırılması gerekir. İmajları etiket yerine digest ile sabitleyin ve temel imajlarınızın da güvenilir kaynaktan geldiğini kontrol edin.
İmajın içindeki Windows yürütülebilir dosyalarını ayrıca imzalamak gerekiyorsa kod imzalama seçeneklerine bakın; ilgili kavramlar bilgi bankasında.
Özet: İmaj imzalama yalnızca doğrulama zorunlu kılındığında anlam kazanır. Anahtarları korumak, digest ile sabitlemek ve dağıtım anında doğrulama yapmak, tedarik zinciri saldırılarına karşı pratik bir savunma oluşturur.