Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Verify container image signatures with kritis-validation-hook

Son Güncelleme:Oct 06, 2026

Container Registry (ACR), Key Management Service (KMS), Security Center ve kritis-validation-hook eklentisi, konteyner görüntüsü imzalarını otomatik olarak doğrular. Bu sayede yalnızca güvenilir otoriteler tarafından imzalanan konteyner görüntüleri dağıtılır ve ortamda istenmeyen veya kötü amaçlı kod bulunma riski azaltılır.

Önkoşullar

  • Security Center etkinleştirilmiş olmalıdır:

    • Subscription: Ultimate (Mevcut sürümünüz bu özelliği desteklemiyorsa yükseltin).

    • Pay-as-you-go: Host and Container Security kullandıkça öde hizmeti etkinleştirilmiş olmalıdır (Etkinleştirilmemişse satın alın).

  • Asimetrik şifreleme algoritması kullanan bir KMS anahtarı oluşturun. Daha fazla bilgi için bkz. Anahtarları yönetme.

    Önemli

    Konteyner imzalama işlemi asimetrik bir anahtar gerektirir. KMS anahtarını oluştururken Key Type değerini RSA_2048 ve Key Usage değerini Sign/Verify olarak ayarlayın. KMS anahtar algoritmaları hakkında daha fazla bilgi için bkz. Key Management Service'a genel bakış.

  • Advanced teknik özelliklere sahip bir ACR Enterprise Edition örneği mevcut olmalıdır.

1. Adım: kritis-validation-hook'u yükleme

  1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Components and Add-ons öğesine tıklayın.

  3. Add-ons sayfasında Security sekmesine tıklayın, kritis-validation-hook eklentisini bulun ve Install seçeneğine tıklayın.

  4. kritis-validation-hook eklentisine erişmek için gerekli izinleri verin.

    Kümenin, kritis-validation-hook bileşenini çalıştırmak için gereken izinlere sahip olduğundan emin olun. Daha fazla bilgi için bkz. Kaynaklar için erişim izinlerini yapılandırma.

2. Adım: Görüntü imzalama için bir KMS anahtarı oluşturma

Bir Müşteri Ana Anahtarı (CMK) oluşturmak için bkz. Anahtarları yönetme.

Önemli

Anahtarı oluştururken Key Type değerini RSA_2048 ve Key Usage değerini Sign/Verify olarak ayarlayın.

3. Adım: Security Center'da bir tanık oluşturma

  1. Security Center konsolu üzerinde oturum açın.

  2. Sol gezinme bölmesinde Protection Configuration > Container Protection > Container Signature seçeneklerini belirleyin.

  3. Witness sekmesinde Create Witness seçeneğine tıklayın. Parametreleri yapılandırdıktan sonra OK seçeneğine tıklayın.


    Parameter


    Description


    Witness Name


    Konteyner imzalama güvenlik ilkesini yapılandırırken, konteyner görüntüleri için güvenilir yetkilendirme sağlamak amacıyla bir tanık seçilir. Açıklayıcı bir ad kullanın.


    Select Certificate


    Sertifika listesinden daha önce oluşturduğunuz KMS anahtarını seçin.


    Description


    Tanık için bir açıklama girin.

4. Adım: ACR'de otomatik görüntü imzalamayı etkinleştirme

  1. Container Registry konsolu üzerinde oturum açın.

  2. Üst gezinme çubuğunda bir bölge seçin.

  3. Sol gezinme bölmesinde Instances seçeneğine tıklayın.

  4. Instance sayfasında Enterprise Edition örneğini bulun ve adına tıklayın veya Actions sütunundaki Manage seçeneğine tıklayın.

    Not

    Bir Enterprise Edition örneği oluşturmak için Create ACR EE seçeneğine tıklayın. Specification değerini Advanced olarak ayarlayın.

  5. Örnek ayrıntıları sayfasının sol gezinme bölmesinde Repository > Namespaces seçeneklerini belirleyin.

    Ad alanındaki tüm konteyner görüntüleri için imzalamayı etkinleştirmek üzere bir ad alanı oluşturun. Daha fazla bilgi için bkz. Ad alanlarında temel işlemler.

  6. Daha önce oluşturduğunuz ad alanı için otomatik görüntü imzalamayı etkinleştirin.

    İmza kuralı eklerken, 3. Adımda Security Center'da oluşturduğunuz tanığı seçin.

    1. Örnek ayrıntıları sayfasının sol gezinme bölmesinde Security and Trust > Image Signature seçeneklerini belirleyin.

    2. Image Signature sekmesinde Create a signature rule seçeneğine tıklayın.

5. Adım: Security Center'da imza doğrulamayı etkinleştirme

Belirli bir Kubernetes ad alanı için konteyner görüntüsü imza doğrulamasını zorlamak amacıyla Security Center'da bir güvenlik ilkesi oluşturun ve etkinleştirin.

  1. Security Center konsolu üzerinde oturum açın.

  2. Sol gezinme bölmesinde Protection Configuration > Container Protection > Container Signature seçeneklerini belirleyin.

  3. Security Policy sekmesinde Create Policy seçeneğine tıklayın. İlkeyi yapılandırdıktan sonra OK seçeneğine tıklayın.

    Parameter

    Description

    Policy Name

    İmza güvenlik ilkesini yapılandırırken, hedef kümenize güvenilir yetkilendirme sağlamak için bir tanık seçmeniz gerekir.

    Kolayca tanımlanabilen açıklayıcı bir ilke adı girin.

    Witness

    Daha önce oluşturduğunuz tanığı seçin.

    Application Cluster

    İmza doğrulaması gerektiren küme grubuna tıklayın ve hedef Cluster Namespace seçeneğini belirleyin.

    Policy Status

    İlkeyi hemen etkinleştirmek için bu seçeneği etkinleştirin.

    Not

    İlke varsayılan olarak devre dışıdır. Bir ilkenin etkili olabilmesi için onu etkinleştirmeniz gerekir.

    Description

    Güvenlik ilkesi için bir açıklama girin.

6. Adım: Otomatik imza doğrulamayı doğrulama

Not

Görüntü etiketi değiştirilemezliği etkinleştirilmemişse, özet biçimli bir görüntü başvurusu kullanın. Daha fazla bilgi için bkz. Görüntü etiketi değiştirilemezliğini etkinleştirme.

İmza doğrulamanın beklendiği gibi çalıştığını doğrulamak için aşağıdaki komutları çalıştırın.

  • İmza doğrulamanın etkin olduğu ad alanında, imzasız konteyner görüntülerini dağıtma girişimleri reddedilir.

    Etiket biçimli bir görüntü başvurusu kullanın:

    kubectl -n default create deployment not-sign --image=alpine:3.11 -- sleep 10
    Error from server: admission webhook "kritis-validation-hook-deployments.grafeas.io" denied the request: image alpine:3.11 is not attested

    Özet biçimli bir görüntü başvurusu kullanın:

    kubectl -n default create deployment not-sign --image=alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 -- sleep 10
    Error from server: admission webhook "kritis-validation-hook-deployments.grafeas.io" denied the request: image alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 is not attested
  • Otomatik imzalamanın etkin olduğu ACR ad alanına bir görüntü gönderin ve ardından imzalı konteyner görüntüsünün dağıtılabilip dağıtılmadığını doğrulayın.

    docker push kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine:3.11
    The push refers to repository [kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine]
    5216338b40a7: Pushed
    3.11: digest: sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 size: 528

    Otomatik olarak imzalanmış konteyner görüntüsünü dağıtın:

    kubectl -n default create deployment is-signed --image=kritis-demo***.cn-hongkong.cr.aliyuncs.com/kritis-demo***/alpine@sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45 -- sleep 10
    deployment.apps/is-signed created

İlgili belgeler