Blog chia sẻ về công nghệ ...
Published on

DevSecOps: Sau khi ký Docker Image, bước CD làm gì tiếp theo?

Authors

🚀 Sau khi ký Docker image, bước CD làm gì tiếp theo?

Trong DevSecOps, sau khi bạn đã ký image bằng Cosign hoặc Sigstore, thì bước tiếp theo trong CD (Continuous Deployment) là:

Xác minh chữ ký (verify signature) trước khi deploy.


📦 Vì sao phải verify signature?

  • Đảm bảo chỉ image đã được ký hợp lệ mới được deploy.
  • Tránh deploy nhầm image bị chỉnh sửa, gắn mã độc.
  • Gắn thêm một lớp bảo mật cho pipeline CI/CD.

🔐 Giai đoạn CD sau khi ký image

Sơ đồ logic:

[Build & Sign image]   ✅ đã ký bằng Cosign
[Push image lên registry]
[CD Pipeline chạy - ArgoCD / Flux / GitLab]
🔍 **Verify chữ ký image**
Nếu OKDeploy ra Kubernetes
Nếu FAILTừ chối deploy

🔧 Cách verify chữ ký trước khi deploy

✅ Dùng cosign verify trong pipeline hoặc policy

cosign verify --key cosign.pub myrepo/myapp:v1
  • Nếu chữ ký hợp lệ → Trả về thông tin người ký.
  • Nếu chữ ký sai hoặc không tồn tại → Báo lỗi, dừng pipeline.

🛡️ Kiểm soát bằng chính sách (Policy Enforcement)

Bạn có thể tự động từ chối image không hợp lệ bằng cách:

1. ✅ Dùng Kyverno (Kubernetes policy engine)

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: verify-image-signature
spec:
  validationFailureAction: enforce
  rules:
    - name: check-image-signed
      match:
        resources:
          kinds:
            - Pod
      verifyImages:
        - image: "myrepo/*"
          key: "cosign.pub"
          attestations:
            - name: cosign

👉 Kyverno sẽ kiểm tra chữ ký khi bạn apply manifest (trước cả khi Pod chạy).


2. ✅ Dùng OPA/Gatekeeper

  • Viết Rego rule kiểm tra field image hoặc annotation
  • Block nếu không hợp lệ

🧠 Tổng kết

Việc cần làm sau khi ký imageMục tiêu
Xác minh chữ ký bằng CosignĐảm bảo image chưa bị sửa đổi
Áp dụng policy trong KubernetesTự động chặn image không hợp lệ
Dùng Kyverno / OPAChính sách kiểm soát CI/CD

📚 Tài nguyên


Tóm lại:
🛡️ Ký image chưa đủ – bạn cần verifychặn deploy nếu không đúng chuẩn.
Đó chính là cách DevSecOps giúp bạn xây dựng hệ thống an toàn, tự động, thông minh. 🚀