
Bảo mật đám mây gốc đã trải qua một sự thay đổi kiến trúc cơ bản vào năm 2026. Vùng biên đã biến mất. Các workload mang tính nhất thời, các cụm trải rộng trên nhiều đám mây, và bán kính ảnh hưởng của một container bị xâm nhập có thể gây thảm họa nếu không có phòng thủ theo chiều sâu. Các mô hình bảo mật truyền thống - quy tắc tường lửa tĩnh, đường hầm VPN, kiểm tra vùng biên - không thể mô hình hóa các cấu trúc liên kết microservice động.
Bài đăng này đề cập đến bốn trụ cột kiến trúc định nghĩa bảo mật đám mây gốc ngày nay: định danh workload, tính toàn vẹn chuỗi cung ứng, phòng thủ hành vi thời gian chạy và thực thi chính sách dưới dạng mã. Mỗi phần bao gồm các cấu hình cấp độ sản xuất với các công cụ cụ thể.
100% private offline token parser with expiry countdown
Decode, verify, and inspect JSON Web Tokens in real time. Inspect claims, signature algorithms, and expiration countdowns without transmitting your token to any server.
Sự thay đổi cơ bản nhất là thay thế sự tin cậy dựa trên vị trí mạng (địa chỉ IP, phân đoạn VLAN) bằng định danh workload mật mã. Mọi dịch vụ phải chứng minh mình là ai, chứ không phải mình ở đâu.
SPIFFE (Secure Production Identity Framework for Everyone) cung cấp tiêu chuẩn. Mọi workload đều nhận được một SPIFFE ID, được biểu thị dưới dạng URI: spiffe://trust-domain/namespace/workload-name. Định danh được cung cấp dưới dạng chứng chỉ X.509 có thời hạn ngắn gọi là SPIFFE Verifiable Identity Document (SVID), được tự động xoay vòng bởi SPIRE (môi trường thời gian chạy SPIFFE).
# SPIRE agent ClusterSpiffeID registration via the SPIRE Kubernetes Workload Registrar
apiVersion: spire.spiffe.io/v1alpha1
kind: ClusterSpiffeID
metadata:
name: payment-service
spec:
spiffeIDTemplate: "spiffe://prod.example.org/ns/{{ .PodMeta.Namespace }}/sa/{{ .PodMeta.ServiceAccountName }}"
podSelector:
matchLabels:
app: payment-service
dnsNameTemplates:
- "payment-service.{{ .PodMeta.Namespace }}.svc.cluster.local"
Sau khi SPIRE cấp SVID, các proxy sidecar của Envoy sử dụng chúng để thiết lập mTLS (mutual TLS) giữa mỗi cặp dịch vụ. Istio và Linkerd đều tích hợp với SPIRE thông qua SPIFFE Workload API.
Lợi thế quan trọng: ngay cả khi kẻ tấn công xâm nhập một node Kubernetes và truy cập mạng pod, chúng không thể giả mạo SVID của payment-service để đánh cắp dữ liệu thanh toán từ order-service. Chứng chỉ X.509 được ràng buộc mật mã với định danh của workload.
Xoay vòng SVID là tự động và có thể cấu hình. Đối với các workload bảo mật cao, hãy đặt TTL ngắn:
# SPIRE Server configuration
server:
default_svid_ttl: "1h"
ca_ttl: "24h"
ca_key_type: "ec-p384"
TTL ngắn giới hạn cửa sổ phơi nhiễm nếu chứng chỉ bằng cách nào đó bị đánh cắp.
Các cuộc tấn công SolarWinds và XZ Utils đã chứng minh rằng chính pipeline xây dựng là một bề mặt tấn công. Vào năm 2026, bảo mật chuỗi cung ứng là bắt buộc đối với các ngành công nghiệp được quản lý và ngày càng được mong đợi ở mọi nơi.
SLSA Cấp độ 3 yêu cầu:
Tự động tạo nguồn gốc SLSA trong GitHub Actions:
# .github/workflows/build.yml
jobs:
build:
permissions:
id-token: write
contents: read
attestations: write
steps:
- uses: actions/checkout@v4
- name: Build container image
run: |
docker build -t myapp:${{ github.sha }} .
docker push registry.example.com/myapp:${{ github.sha }}
- name: Attest build provenance
uses: actions/attest-build-provenance@v1
with:
subject-name: registry.example.com/myapp
subject-digest: sha256:${{ steps.build.outputs.digest }}
push-to-registry: true
Mọi hình ảnh container nên có một SBOM đã ký ở định dạng SPDX hoặc CycloneDX. Syft tạo chúng; Grype đánh giá chúng dựa trên NVD theo thời gian thực:
# Generate SBOM attached to the image
syft registry.example.com/myapp:latest \
-o spdx-json \
--file myapp-sbom.spdx.json
# Evaluate against CVE databases
grype sbom:myapp-sbom.spdx.json \
--fail-on critical \
--only-fixed
Tích hợp điều này vào CI như một cổng bắt buộc. Nếu một lỗ hổng zero-day được tiết lộ sau khi triển khai, kho SBOM của bạn ngay lập tức cho bạn biết những workload đang chạy nào bị ảnh hưởng - cho phép khắc phục mục tiêu thay vì vá lỗi mọi thứ một cách hoảng loạn.
Để đảm bảo mức độ tin cậy cao nhất, in-toto ghi lại bằng chứng mật mã của mọi bước trong chuỗi cung ứng - từ commit của nhà phát triển đến đẩy hình ảnh container:
# in-toto link metadata for the "build" step
import in_toto.runlib
link = in_toto.runlib.in_toto_run(
name="build",
link_signing_key=signing_key,
material_paths=["src/", "requirements.txt"],
product_paths=["dist/app.tar.gz"],
run_command=["python", "setup.py", "build"]
)
link.dump("build.link")
Chuỗi các tệp .link cung cấp một dấu vết bằng chứng có thể chấp nhận được trước tòa từ nguồn đến tạo phẩm - điều mà một hệ thống CI bị xâm nhập không thể giả mạo nếu không có khóa ký của nhà phát triển.
Các biện pháp phòng ngừa là cần thiết nhưng không đủ. Một lỗ hổng zero-day hoặc một container bị cấu hình sai vẫn có thể dẫn đến một tiến trình bị xâm nhập. Bảo mật thời gian chạy cung cấp lớp thực thi hành vi.
eBPF (extended Berkeley Packet Filter) chạy các chương trình được sandbox bên trong nhân Linux, cung cấp khả năng hiển thị không có overhead đối với các lệnh gọi hệ thống, truy cập tệp và kết nối mạng mà không cần sửa đổi mã ứng dụng hoặc tải các module nhân.
Tetragon (từ Cilium) dịch các sự kiện nhân eBPF thành các chính sách thực thi:
# Tetragon TracingPolicy: block shell execution from web service pods
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: prevent-shell-from-web
spec:
kprobes:
- call: "sys_execve"
syscall: true
selectors:
- matchNamespaces:
- namespace: production
values: [web-service]
matchArgs:
- index: 0
operator: "Equal"
values:
- "/bin/sh"
- "/bin/bash"
- "/usr/bin/python3"
- "/usr/bin/curl"
matchActions:
- action: Sigkill
argName: comm
Chính sách này sẽ tiêu diệt bất kỳ tiến trình nào cố gắng execve một shell trong các pod sản xuất web-service - ngay lập tức ngăn chặn các nỗ lực RCE ngay cả khi CVE cơ bản chưa được biết đến trước đó.
Cilium Network Policy thực thi kiểm soát truy cập Lớp 7 (HTTP/gRPC) ở cấp độ nhân:
apiVersion: cilium.io/v1
kind: CiliumNetworkPolicy
metadata:
name: payment-service-policy
spec:
endpointSelector:
matchLabels:
app: payment-service
ingress:
- fromEndpoints:
- matchLabels:
app: order-service
toPorts:
- ports:
- port: "8080"
protocol: TCP
rules:
http:
- method: "POST"
path: "/v1/charge"
Chỉ order-service mới có thể gọi POST /v1/charge trên payment-service. Bất kỳ lưu lượng truy cập nào khác - bao gồm cả di chuyển ngang nội bộ từ một pod bị xâm nhập - đều bị loại bỏ ở cấp độ nhân trước khi nó đến ứng dụng.
Kiểm soát nhập học Kubernetes thực thi các chính sách bảo mật toàn cụm tại thời điểm triển khai. OPA Gatekeeper đánh giá mọi yêu cầu máy chủ API dựa trên các chính sách Rego:
# Deny containers running as root
package kubernetes.admission
deny[msg] {
input.request.kind.kind == "Pod"
container := input.request.object.spec.containers[_]
not container.securityContext.runAsNonRoot == true
msg := sprintf("Container '%v' must not run as root. Set securityContext.runAsNonRoot: true", [container.name])
}
# Require read-only root filesystem
deny[msg] {
input.request.kind.kind == "Pod"
container := input.request.object.spec.containers[_]
not container.securityContext.readOnlyRootFilesystem == true
msg := sprintf("Container '%v' must have a read-only root filesystem", [container.name])
}
Các chính sách này chặn các triển khai pod không an toàn trước khi chúng đến bộ lập lịch. Kết hợp với GitOps (Flux v2, ArgoCD), trạng thái cụm của bạn hoàn toàn được kiểm soát bởi chính sách - không có kubectl apply thủ công nào có thể bỏ qua kiểm soát nhập học.
Bốn trụ cột xếp chồng lên nhau thành một mô hình phòng thủ theo chiều sâu mạch lạc:
| Lớp | Công cụ | Những gì nó chặn |
|---|---|---|
| Định danh | SPIFFE/SPIRE + mTLS | Giả mạo mạng, di chuyển ngang |
| Chuỗi cung ứng | SLSA + SBOM + in-toto | Các bản dựng bị xâm nhập, các dependency độc hại |
| Thời gian chạy | Tetragon eBPF | RCE, tạo shell, đánh cắp dữ liệu |
| Chính sách | OPA Gatekeeper | Các workload bị cấu hình sai, leo thang đặc quyền |
Không có lớp nào là đủ. Kẻ tấn công vượt qua định danh (SVID bị đánh cắp) vẫn sẽ bị phát hiện hành vi thời gian chạy. Một bản dựng bị xâm nhập vượt qua kiểm tra SBOM vẫn phải đối mặt với việc thực thi chính sách OPA khi nhập học.
Một nhóm bảo mật đang triển khai SPIFFE/SPIRE cho workload identity trong một ứng dụng tài chính có độ nhạy cảm cao. Họ đang tranh luận về cài đặt `default_svid_ttl` cho SPIRE server. Với các đánh đổi hiện có, cấu hình và lý do nào là phù hợp nhất cho môi trường production có độ bảo mật cao và tính sẵn sàng cao?
Làm sạch log AI CLI, tạo biểu thức cron, giải mã JWT và tính quyền chmod offline.

Hướng dẫn toàn diện về quan sát bảo mật eBPF với Cilium Tetragon: thực thi runtime theo thời gian thực trong Kubernetes với kiến trúc cấp độ sản xuất và các ví dụ mã.
Đọc tiếp
Hướng dẫn thực tế để loại bỏ bảo mật chu vi mạng phẳng trong Kubernetes: NetworkPolicies mặc định từ chối, định danh workload SPIFFE/SPIRE và mTLS nghiêm ngặt.
Đọc tiếp
Kiến trúc, bảo mật và triển khai remote Model Context Protocol (MCP) server với Streamable HTTP, phòng chống DNS rebinding, xác thực Bearer token OAuth 2.1 và FastAPI.
Đọc tiếp