全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan kritis-validation-hook untuk memverifikasi tanda tangan gambar kontainer secara otomatis

更新时间:Nov 11, 2025

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

Prasyarat

  • Anda telah mengaktifkan Security Center:

    • Layanan langganan: Ultimate (Jika versi saat ini tidak didukung, Anda harus upgrade).

    • Layanan bayar sesuai penggunaan: Layanan bayar sesuai penggunaan telah diaktifkan untuk Host and Container Security. Jika belum, lihat Pembelian.

  • Anda telah membuat kunci KMS yang menggunakan algoritma enkripsi kunci asimetris. Untuk informasi selengkapnya, lihat Kelola kunci.

    Penting

    Karena penandatanganan gambar kontainer memerlukan algoritma kunci asimetris, Anda harus mengatur Key Type menjadi RSA_2048 dan Key Purpose menjadi SIGN/VERIFY saat membuat kunci KMS. Untuk informasi selengkapnya tentang algoritma kunci KMS, lihat Ikhtisar KMS.

Langkah 1: Instal komponen kritis-validation-hook

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, klik Add-ons.

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

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

    Anda harus memberikan izin kepada kluster Anda untuk menjalankan kritis-validation-hook. Untuk informasi selengkapnya, lihat Konfigurasi izin akses sumber daya.

Langkah 2: Buat kunci KMS untuk penandatanganan gambar kontainer

Buat kunci master pelanggan (CMK). Untuk informasi selengkapnya, lihat Kelola kunci.

Penting

Saat membuat kunci, atur Key Spec menjadi RSA_2048 dan Purpose menjadi Sign/Verify.

Langkah 3: Konfigurasikan saksi yang menggunakan kunci KMS di Security Center

  1. Masuk ke Konsol Security Center.

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

  3. Di tab Witness, klik Create Witness. Lengkapi konfigurasi lalu klik OK.

    Item Konfigurasi

    Catatan

    Witness Name

    Saat mengonfigurasi kebijakan keamanan penandatanganan gambar kontainer, saksi diperlukan untuk memberikan otorisasi tepercaya kepada kontainer target Anda. Masukkan nama yang mudah dikenali untuk saksi tersebut.

    Select A Certificate

    Pilih kunci KMS yang telah Anda buat dari daftar sertifikat.

    Description

    Masukkan deskripsi untuk saksi tersebut.

Langkah 4: Aktifkan penandatanganan gambar kontainer otomatis di ACR

  1. Masuk ke Konsol Container Registry.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Di panel navigasi kiri, klik Instances.

  4. Di halaman Instances, klik nama instans Perusahaan target atau Manage.

    Catatan

    Untuk menambahkan instans Perusahaan, klik Create Enterprise Instance dan atur Instance Type menjadi Premium Edition.

  5. Di panel navigasi kiri halaman pengelolaan Instans Perusahaan, pilih Repository Management > Namespace.

    Anda perlu membuat namespace dan mengaktifkan penandatanganan gambar untuk gambar dalam namespace tersebut. Untuk informasi selengkapnya, lihat Kelola namespace.

  6. Aktifkan penandatanganan gambar kontainer otomatis untuk namespace yang telah dibuat.

    Saat menambahkan aturan penandatanganan, pilih saksi yang telah Anda buat di Langkah 3 di Security Center.

    1. Di panel navigasi kiri, pilih Security and Trust > Image Signing.

    2. Klik Add Signing Rule di tab Image Signing.

      Untuk informasi selengkapnya tentang cara mengonfigurasi aturan penandatanganan gambar, lihat Konfigurasi aturan penandatanganan gambar otomatis.

Langkah 5: Aktifkan verifikasi tanda tangan gambar kontainer di Security Center

Aktifkan verifikasi tanda tangan gambar kontainer untuk namespace di kluster Kubernetes dengan menambahkan dan mengaktifkan kebijakan di Security Center.

  1. Masuk ke Konsol Security Center.

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

  3. Di tab Security Policy, klik Add Policy. Konfigurasi kebijakan lalu klik OK.

    Item Konfigurasi

    Catatan

    Policy Name

    Saat mengonfigurasi kebijakan keamanan penandatanganan, Anda harus memilih saksi untuk memberikan otorisasi tepercaya kepada kluster target Anda.

    Masukkan nama yang informatif.

    Witness

    Pilih saksi yang telah Anda buat dari daftar saksi.

    Application Cluster

    Klik grup kluster untuk penandatanganan gambar kontainer. Kemudian, pilih Cluster Namespace target.

    Policy Enabled

    Nyalakan sakelar. Kebijakan akan diaktifkan secara otomatis setelah dibuat.

    Catatan

    Kebijakan dinonaktifkan secara default. Kebijakan yang dinonaktifkan tidak berlaku.

    Note

    Masukkan deskripsi kebijakan keamanan.

Langkah 6: Verifikasi fitur verifikasi tanda tangan gambar kontainer otomatis

Catatan

Jika imutabilitas tag gambar tidak diaktifkan, Anda harus mengonfigurasi referensi gambar untuk menggunakan format digest. Untuk informasi selengkapnya, lihat Aktifkan imutabilitas tag gambar.

Jalankan perintah berikut untuk memverifikasi fitur verifikasi tanda tangan gambar kontainer otomatis.

  • Verifikasi bahwa penerapan gambar kontainer yang tidak ditandatangani ditolak di namespace default tempat verifikasi tanda tangan diaktifkan.

    Untuk menentukan gambar berdasarkan tag, jalankan perintah berikut:

    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

    Untuk menentukan gambar berdasarkan digest, jalankan perintah berikut:

    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 Container Registry tempat penandatanganan otomatis diaktifkan. Kemudian, verifikasi bahwa Anda dapat menggunakan gambar kontainer bertanda tangan ini untuk menerapkan layanan.

    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

    Perintah berikut berhasil menerapkan gambar kontainer yang 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

Referensi