All Products
Search
Document Center

Container Service for Kubernetes:Verifikasi signature gambar kontainer dengan kritis-validation-hook

Last Updated:May 08, 2026

Topik ini menjelaskan cara menggunakan Container Registry (ACR), Key Management Service (KMS), Security Center, dan komponen kritis-validation-hook untuk secara otomatis memverifikasi signature gambar kontainer. Proses ini memastikan bahwa Anda hanya menerapkan gambar kontainer dari otoritas tepercaya, sehingga mengurangi risiko kode yang tidak disengaja atau berbahaya di lingkungan Anda.

Prasyarat

  • Security Center telah diaktifkan:

    • Langganan: Ultimate (jika edisi Anda tidak mendukung fitur ini, lakukanupgrade).

    • Pay-as-you-go: AktifkanHost and Container Security pay-as-you-go (jika belum diaktifkan, bukapembelian).

  • Buat kunci KMS yang menggunakan algoritma enkripsi asimetris. Untuk informasi selengkapnya, lihat Kelola kunci.

    Penting

    Penandatanganan kontainer memerlukan kunci asimetris. Saat membuat kunci KMS, Anda harus mengatur Key Type ke RSA_2048 dan Key Usage ke Sign/Verify. Untuk informasi selengkapnya tentang algoritma kunci KMS, lihat Ikhtisar Key Management Service.

  • Anda harus memiliki instans ACR Edisi Perusahaan dengan spesifikasi Advanced.

Langkah 1: Instal kritis-validation-hook

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons.

  3. Di halaman Add-ons, klik tab Security, temukan kritis-validation-hook, lalu klik Install.

  4. Berikan izin yang diperlukan kepada komponen kritis-validation-hook.

    Anda harus memastikan bahwa kluster memiliki izin yang diperlukan untuk menjalankan komponen kritis-validation-hook. Untuk informasi selengkapnya, lihat Konfigurasikan izin akses untuk sumber daya.

Langkah 2: Buat kunci KMS untuk penandatanganan gambar

Untuk petunjuk cara membuat Customer Master Key (CMK), lihat Kelola kunci.

Penting

Saat membuat kunci, atur Key Type ke RSA_2048 dan Key Usage ke Sign/Verify.

Langkah 3: Buat witness di Security Center

  1. Masuk ke Security Center console.

  2. Di panel navigasi kiri, pilih Protection Configuration > Container Protection > Container Image Signing.

  3. Di tab Witness, klik Create Witness. Setelah mengonfigurasi parameter, klik OK.

    Parameter

    Deskripsi

    Witness Name

    Witness dipilih saat Anda mengonfigurasi kebijakan keamanan untuk mengotorisasi gambar kontainer Anda. Kami menyarankan agar Anda menentukan nama yang mudah dikenali.

    Select Certificate

    Dari daftar sertifikat, pilih kunci KMS yang telah Anda buat.

    Description

    Masukkan deskripsi untuk saksi.

Langkah 4: Aktifkan penandatanganan gambar otomatis di ACR

  1. Masuk ke Container Registry console.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Di panel navigasi kiri, klik Instances.

  4. Di halaman Instance, temukan instans Edisi Perusahaan dan klik namanya, atau klik Manage di kolom Actions.

    Catatan

    Untuk membuat instans Edisi Perusahaan, klik Create ACR EE. Pastikan Anda mengatur Specification ke Advanced.

  5. Di panel navigasi kiri halaman detail instans, pilih Repository > Namespaces.

    Buat namespace. Anda dapat mengaktifkan penandatanganan gambar untuk semua gambar kontainer di namespace ini. Untuk informasi selengkapnya, lihat Operasi dasar pada namespace.

  6. Aktifkan penandatanganan gambar otomatis untuk namespace yang telah Anda buat.

    Saat menambahkan aturan signature, pilih witness yang telah Anda buat di Security Center pada Langkah 3.

    1. Di panel navigasi kiri halaman detail instans, pilih Security and Trust > Image Signature .

    2. Di tab Image Signature , klik Create a signature rule.

      Untuk informasi selengkapnya tentang cara mengonfigurasi aturan signature, lihat Konfigurasikan aturan untuk penandatanganan gambar otomatis.

Langkah 5: Aktifkan verifikasi signature di Security Center

Buat dan aktifkan kebijakan keamanan di Security Center untuk menerapkan verifikasi signature gambar kontainer pada namespace Kubernetes tertentu.

  1. Masuk ke Security Center console.

  2. Di panel navigasi kiri, pilih Protection Configuration > Container Protection > Container Image Signing.

  3. Di tab Security Policy, klik Add Policy. Setelah mengonfigurasi kebijakan, klik OK.

    Parameter

    Deskripsi

    Policy Name

    Masukkan nama deskriptif untuk kebijakan keamanan.

    Witness

    Pilih witness yang telah Anda buat.

    Application Cluster

    Klik grup kluster tempat Anda ingin mengaktifkan verifikasi signature, lalu pilih Cluster Namespace yang dituju.

    Policy Status

    Aktifkan opsi ini untuk segera menerapkan kebijakan.

    Catatan

    Kebijakan dinonaktifkan secara default.

    Description

    Masukkan deskripsi untuk kebijakan keamanan.

Langkah 6: Verifikasi verifikasi signature otomatis

Catatan

Jika immutabilitas tag gambar tidak diaktifkan, Anda harus menggunakan referensi gambar dalam format digest. Untuk informasi selengkapnya, lihat Aktifkan immutabilitas tag gambar.

Jalankan perintah berikut untuk memverifikasi bahwa verifikasi signature berfungsi sebagaimana mestinya.

  • Di namespace tempat verifikasi signature diaktifkan, upaya menerapkan gambar kontainer yang tidak ditandatangani akan ditolak.

    Gunakan referensi gambar dalam format tag:

    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

    Gunakan referensi gambar dalam format digest:

    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
  • Dorong gambar ke namespace ACR tempat penandatanganan otomatis diaktifkan. Lalu, verifikasi bahwa Anda dapat menerapkan gambar kontainer yang telah ditandatangani sebagai workload.

    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

    Terapkan gambar kontainer yang telah ditandatangani secara otomatis:

    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

Dokumen terkait