Skip to content

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-patterns

Danh 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 33

Tham khảo nhanh

Khái niệmMô tả ngắn
PolicyProject-singleton resource, một policy/project, chứa rules
AttestorGCP resource chứa public key để verify attestation
AttestationDigital document ký lên image digest bằng private key
NoteArtifact Analysis resource, "loại" attestation
OccurrenceArtifact Analysis resource, instance cụ thể của attestation
SignerPerson/process dùng private key tạo attestation
CVContinuous Validation — monitor running Pods định kỳ
Platform PolicyPolicy dùng cho CV (khác project-singleton policy)
Break-glassEmergency bypass với audit log bắt buộc

Tài liệu tham khảo chính