Wallarm Docker Görüntü İmzalarını Doğrulama¶
Wallarm, Docker görüntüleri için public key'ı imzalar ve paylaşır; bu sayede, görüntülerin doğruluğunu teyit edebilir, tehlikeye uğramış görüntüler ve tedarik zinciri saldırıları gibi riskleri azaltabilirsiniz. Bu makale, Wallarm Docker görüntü imzalarını doğrulama konusunda talimatlar sunar.
İmzalanan Görüntülerin Listesi¶
Wallarm, aşağıdaki Docker görüntülerini imzalar:
-
wallarm/node 4.8.0-1 ve üzeri: Tüm Wallarm modüllerini içeren, Wallarm dağıtımı için bağımsız bir artefakt olarak hizmet veren NGINX-based Docker image
-
NGINX-based Ingress Controller dağıtımı için Helm şablonunda kullanılan tüm Docker görüntüleri:
-
Sidecar dağıtımı için Helm şablonunda kullanılan tüm Docker görüntüleri:
-
wallarm/node-native-aio: Wallarm konektörleri için self-hosted Native Node dağıtımı Docker görüntüsü
Gereksinimler¶
Wallarm Docker görüntülerinin orijinalliğini sağlamak için, imzalama ve doğrulama işlemleri Cosign kullanılarak gerçekleştirilir.
Docker görüntü imza doğrulamasına geçmeden önce, yerel makinada veya CI/CD hattınızda Cosign komut satırı aracını kurduğunuzdan emin olun.
Docker Görüntü İmza Doğrulamasını Çalıştırma¶
Bir Docker görüntü imzasını doğrulamak için, WALLARM_DOCKER_IMAGE
değerini ilgili görüntü etiketiyle değiştirerek aşağıdaki komutları çalıştırın:
export WALLARM_DOCKER_IMAGE="wallarm/ingress-controller:4.6.2-1"
cosign verify --key https://repo.wallarm.com/cosign.pub $WALLARM_DOCKER_IMAGE
Output, görüntü özetini (docker-manifest-digest
) içeren docker-manifest-digest
nesnesini sağlamalıdır, örneğin:
[{"critical":{"identity":{"docker-reference":"index.docker.io/<WALLARM_DOCKER_IMAGE>"},
"image":{"docker-manifest-digest":"<HASH_ALGORITHM>"},"type":"cosign container image signature"},
"optional":{"Bundle":{"SignedEntryTimestamp":"<VALUE>","Payload":{"body":"<VALUE>",
"integratedTime":<VALUE>,"logIndex":<VALUE>,"logID":"<VALUE>"}}}}]
İmza Doğrulaması için Kubernetes Politikası Motorunun Kullanılması¶
Kyverno veya Open Policy Agent (OPA) gibi motorlar, Kubernetes kümeniz içinde Docker görüntü imza doğrulaması yapmanıza olanak tanır. Doğrulama kuralları içeren bir politika oluşturarak, Kyverno tanımlanan kriterlere, örneğin depo veya etiketlere dayalı olarak, görüntü imza doğrulamasını başlatır. Doğrulama, Kubernetes kaynaklarının dağıtımı sırasında gerçekleştirilir.
Aşağıda, Wallarm Docker görüntü imza doğrulaması için Kyverno politikasının nasıl kullanılacağına dair bir örnek verilmiştir:
-
Kümenize Kyverno'yu kurun ve tüm pod'ların çalışır durumda olduğundan emin olun.
-
Aşağıdaki Kyverno YAML politikasını oluşturun:
apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-wallarm-images spec: webhookTimeoutSeconds: 30 validationFailureAction: Enforce background: false failurePolicy: Fail rules: - name: verify-wallarm-images match: any: - resources: kinds: - Pod verifyImages: - imageReferences: - docker.io/wallarm/ingress* - docker.io/wallarm/sidecar* attestors: - entries: - keys: kms: https://repo.wallarm.com/cosign.pub
-
Politikayı uygulayın:
-
İhtiyacınıza bağlı olarak Wallarm NGINX Ingress controller veya Sidecar Controller dağıtımını gerçekleştirin. Dağıtım sırasında Kyverno politikası, görüntünün imzasını kontrol etmek üzere uygulanacaktır.
-
Doğrulama sonuçlarını analiz etmek için aşağıdaki komutu çalıştırın:
Aşağıdaki gibi, imza doğrulama durumunu özetleyen bilgiler alacaksınız:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal PolicyApplied 50s (x2 over 50s) kyverno-admission Deployment wallarm-sidecar/wallarm-sidecar-wallarm-sidecar-controller: pass
Normal PolicyApplied 48s kyverno-admission Pod wallarm-sidecar/wallarm-sidecar-wallarm-sidecar-controller-9dcfddfc7-hjbhd: pass
Normal PolicyApplied 40s (x2 over 40s) kyverno-admission Deployment wallarm-sidecar/wallarm-sidecar-wallarm-sidecar-postanalytics: pass
Normal PolicyApplied 35s kyverno-admission Pod wallarm-sidecar/wallarm-sidecar-wallarm-sidecar-postanalytics-554789546f-9cc8j: pass
Sağlanan verify-wallarm-images
politikasında failurePolicy: Fail
parametresi bulunmaktadır. Bu, imza doğrulaması başarılı olmazsa, tüm şablon dağıtımının başarısız olacağı anlamına gelir.