Kod İmzalama Sertifikaları Artık Çok Daha Uygun! — EV ve OV Kod İmzalama sertifikalarında özel kampanya fiyatları!
Anasayfa İletişim
Teknoloji

Docker Image İmzalama: Cosign ile Container Güvenliği Rehberi

Docker container image'larını Cosign ile nasıl imzalarsınız? Container supply chain güvenliği, Sigstore ekosistemi ve Kubernetes admission controller rehberi.

3 dk okuma

Docker image imzalama, container tabanlı yazılım dağıtımında güvenliğin temel taşıdır. Sigstore projesi kapsamında geliştirilen Cosign aracı, OCI container image'larını kolayca imzalamaya ve doğrulamaya olanak tanır. 2026'da Kubernetes ortamlarında imzalı image zorunluluğu hızla yaygınlaşmaktadır.

Container İmzalama Neden Önemli?

  • Supply chain güvenliği: Image'ın güvenilir kaynaktan geldiğini doğrular
  • Değişiklik tespiti: Image dağıtım sırasında değiştirilmişse tespit edilir
  • Compliance: SOC2, ISO 27001 ve NIST gereksinimleri karşılanır
  • Zero Trust: "Güvenme, doğrula" prensibi container'lara uygulanır

Cosign Kurulumu

# Linux/macOS
brew install cosign

# Windows (scoop)
scoop install cosign

# Docker ile
docker run --rm gcr.io/projectsigstore/cosign version

Anahtar Çifti Oluşturma

cosign generate-key-pair

Bu komut cosign.key (özel) ve cosign.pub (açık) anahtar dosyalarını oluşturur.

Image İmzalama

# Image'ı push edin
docker push registry.example.com/myapp:v1.0

# Image'ı imzalayın
cosign sign --key cosign.key registry.example.com/myapp:v1.0

Keyless İmzalama (Sigstore Fulcio)

Cosign, özel anahtar yönetimi gerektirmeden keyless signing desteği sunar. OIDC kimlik doğrulaması (GitHub, Google, Microsoft) kullanılır:

cosign sign registry.example.com/myapp:v1.0

Tarayıcı açılır, GitHub/Google hesabınızla giriş yaparsınız ve imzalama otomatik tamamlanır.

İmza Doğrulama

# Anahtar ile doğrulama
cosign verify --key cosign.pub registry.example.com/myapp:v1.0

# Keyless doğrulama
cosign verify --certificate-identity developer@email.com \
  --certificate-oidc-issuer https://accounts.google.com \
  registry.example.com/myapp:v1.0

Kubernetes'te İmza Zorunluluğu

Kubernetes cluster'ınızda sadece imzalı image'ların çalışmasını sağlamak için admission controller kullanın:

Kyverno ile Policy

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: verify-image-signature
spec:
  validationFailureAction: Enforce
  rules:
    - name: verify-cosign-signature
      match:
        any:
          - resources:
              kinds:
                - Pod
      verifyImages:
        - imageReferences:
            - "registry.example.com/*"
          attestors:
            - entries:
                - keys:
                    publicKeys: |-
                      -----BEGIN PUBLIC KEY-----
                      ...cosign public key...
                      -----END PUBLIC KEY-----

CI/CD Entegrasyonu

# GitHub Actions örneği
- name: Sign container image
  uses: sigstore/cosign-installer@main

- name: Sign
  run: cosign sign --key env://COSIGN_KEY ${{ env.IMAGE_REF }}
  env:
    COSIGN_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
    COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}

Sık Sorulan Sorular

Docker Content Trust (DCT) ile Cosign arasındaki fark nedir?

DCT (Notary v1) eski bir teknolojidir ve sadece Docker Hub ile çalışır. Cosign tüm OCI registry'lerle uyumludur, keyless signing destekler ve daha modern bir çözümdür. 2026 itibarıyla Cosign standart olarak kabul edilmektedir.

Container imzalama performansı etkiler mi?

İmzalama ve doğrulama işlemleri milisaniyeler sürer ve çalışma zamanı performansını etkilemez. Kubernetes admission controller'da doğrulama, pod başlatma süresine birkaç milisaniye ekler.

Bu yazıyı paylaş
Yazar

Ali Yiğit

Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yaz