Chương 34: Binary Authorization — Bảo Mật Container Deployment
Binary Authorization là lớp kiểm soát cuối cùng trong software supply chain — đảm bảo chỉ những container image đã được xác nhận, ký số bởi các trusted authority mới có thể chạy trên cluster. Chương này đi sâu vào cơ chế bên trong của Binary Authorization: từ cách policy được đánh giá, cách attestation được tạo và xác minh qua cryptographic signature, đến enforcement path qua Kubernetes admission control và Continuous Validation.
Tại sao chương này quan trọng
Trong mô hình zero-trust, không có image nào được tin tưởng chỉ vì nó đến từ internal registry. Binary Authorization áp đặt yêu cầu rằng mọi image phải chứng minh được nguồn gốc và trạng thái compliance của mình thông qua chữ ký mật mã trước khi được phép chạy. Hiểu sai cơ chế này dẫn đến:
- Bypass vô tình: Misconfiguration policy khiến enforcement không hoạt động như kỳ vọng
- Break-glass abuse: Không hiểu audit trail dẫn đến lạm dụng emergency bypass
- Security gaps: Chỉ enforce tại deploy-time nhưng không có continuous validation → image bị compromise sau khi deploy không bị phát hiện
- Tag vs digest confusion: Dùng tag thay vì digest cho phép attacker substitution attack
Cấu trúc chương
chapter-34-binary-authorization/
├── index.md # File này — tổng quan và navigation
├── 01.policy-model-attestors.md # Policy model, attestors, rules, evaluation modes
├── 02.attestations-cryptographic.md # Attestation mechanics: ký số, PKIX/PGP, Artifact Analysis
├── 03.enforcement-path-digest.md # GKE enforcement path, image digest pinning, Cloud Build
├── 04.continuous-validation.md # CV platform policies, checks, dry-run mode
└── 05.breakglass-exceptions.md # Break-glass override, allowlist exceptions, anti-patternsDanh sách subtopics
1. Policy Model, Attestors và Decision Logic
Giải thích cấu trúc bên trong của Binary Authorization policy: cách policy được cấu thành từ rules, evaluation modes, enforcement modes; vai trò của attestors như trusted verifier; cách deployment decision được đưa ra tại admission time. Đây là nền tảng để hiểu mọi thứ còn lại trong chương.
Nội dung chính:
- Policy structure: defaultAdmissionRule, clusterAdmissionRules, evaluation modes (ALWAYS_ALLOW / ALWAYS_DENY / REQUIRE_ATTESTATION)
- Enforcement modes: Block and Audit Log vs Dry Run Audit Log Only
- Attestors: cấu trúc, Artifact Analysis note, public key binding
- Policy scoping: project-singleton vs platform policies
- Separation of duties qua multi-project setup
2. Attestation: Cơ Chế Ký Số Mật Mã
Đi sâu vào cơ chế tạo và xác minh attestation: payload format (container analysis occurrence), PKIX vs PGP signing, Cloud KMS integration, cách Artifact Analysis lưu trữ attestation, và cách Binary Authorization enforcer verify signature tại deploy time.
Nội dung chính:
- Attestation payload: image digest format, occurrence structure
- Cryptographic signing: PKIX (X.509), PGP, ECDSA/RSA
- Cloud KMS integration cho key management
- Artifact Analysis note và occurrence model
- Signer workflow: manual vs automated (Cloud Build)
- Verification path: public key lookup → signature verify
3. Enforcement Path và Image Digest Pinning
Giải thích đường đi của một deployment request từ kubectl apply đến quyết định cuối cùng của Binary Authorization: admission webhook, policy evaluation, attestation lookup, và kết quả. Phân tích tại sao image digest (không phải tag) là bắt buộc cho bảo mật thực sự.
Nội dung chính:
- GKE admission webhook: Binary Authorization enforcer
- Policy evaluation algorithm: rule matching, attestation lookup
- Image digest vs tag: substitution attack và tại sao digest bắt buộc
- Cloud Build integration: automated attestation creation
- SLSA provenance và build provenance attestation
- Audit logging: enforcement events trong Cloud Audit Logs
4. Continuous Validation và Platform Policies
Binary Authorization enforcement chỉ kiểm tra tại deploy-time. Continuous Validation (CV) giải quyết khoảng trống khi policy thay đổi sau khi Pod đã chạy. File này giải thích cơ chế hoạt động của CV, cấu trúc platform policies, các loại checks, và cách CV khác với enforcement.
Nội dung chính:
- CV vs enforcement: sự khác biệt cơ bản
- Platform policies vs project-singleton policies
- CV review cycle: at least every 24 hours
- Check types: attestation, freshness, SLSA, Sigstore, trusted directory, vulnerability
- CV chỉ log, không evict — implications
- Tích hợp Artifact Analysis vulnerability scanning
5. Break-glass, Policy Exceptions và Anti-patterns
Break-glass là tính năng cần thiết cho emergency deployment nhưng dễ bị lạm dụng nếu không có kiểm soát đúng đắn. File này giải thích cơ chế break-glass, audit trail, allowlisted images, và các anti-pattern phổ biến dẫn đến security gaps.
Nội dung chính:
- Break-glass annotation:
alpha.image-policy.k8s.io/break-glass: "true" - Audit logging cho break-glass events
- Allowlist patterns: glob matching, digest pinning
- Google-maintained system images exemption
- Common anti-patterns: dry-run mãi không enforce, allowlist quá rộng, tag thay vì digest
- Monitoring và alerting cho break-glass abuse
Điều kiện tiên quyết
- Chương 10: GKE Admission Control — Binary Authorization hoạt động như một ValidatingAdmissionWebhook
- Chương 12: GKE Security fundamentals — để hiểu security model tổng thể
- Chương 31: IAM Deep Dive — separation of duties trong multi-project setup
- Kiến thức nền: Kubernetes admission pipeline, cryptographic signatures (public/private key, ECDSA/RSA), container image layers và digest
Quan hệ với các chương khác
Binary Authorization là một phần của defense-in-depth strategy:
Supply chain → [Binary Authorization] ← Chương này
Admission → [Admission Control, PSA] ← Chương 10
Runtime → [Network Policy, RBAC] ← Chương 7, 12
Access → [IAM, Workload Identity] ← Chương 13, 31
Perimeter → [VPC-SC, Org Policies] ← Chương 33Tham khảo nhanh
| Khái niệm | Mô tả ngắn |
|---|---|
| Policy | Project-singleton resource, một policy/project, chứa rules |
| Attestor | GCP resource chứa public key để verify attestation |
| Attestation | Digital document ký lên image digest bằng private key |
| Note | Artifact Analysis resource, "loại" attestation |
| Occurrence | Artifact Analysis resource, instance cụ thể của attestation |
| Signer | Person/process dùng private key tạo attestation |
| CV | Continuous Validation — monitor running Pods định kỳ |
| Platform Policy | Policy dùng cho CV (khác project-singleton policy) |
| Break-glass | Emergency bypass với audit log bắt buộc |