SPIFFE identity, STRICT mTLS và L4 policy
Identity xác thực thành công không có nghĩa có đủ quyền.
Nắm bản chất
Istio có thể biểu diễn workload identity dạng
spiffe://cluster.local/ns/shop/sa/web-sa.
PeerAuthentication STRICT dùng để yêu cầu mTLS-compatible incoming
traffic cho những workloads phù hợp. AuthorizationPolicy L4 kiểm tra source
principals/ports tại ztunnel.
Bài lab đưa cả Web và Intruder vào mesh; sau đó chỉ cho identity Web gọi Payments. Nhờ vậy bài kiểm tra chứng minh authorization thay vì đơn thuần chặn mọi client không có mTLS.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: payments-only-web
namespace: shop
spec:
selector:
matchLabels: {app: payments}
action: ALLOW
rules:
- from:
- source:
principals: [cluster.local/ns/shop/sa/web-sa]
to:
- operation:
ports: ['8080']
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Thực hành policy L4 Buổi 16: so sánh Web→Payments và Intruder→Payments sau
khi enroll. Dùng istioctl ztunnel-config workloads để xác minh
HBONE.
Lỗi dễ mắc
Đừng dùng workload labels thay thế identity-based authorization nếu một user có quyền tự đặt labels tùy ý.
Tự kiểm tra
mTLS xác thực được web-sa rồi có tự cho phép gọi mọi đường dẫn Payments không?Xem đáp án ↗
Không. AuthorizationPolicy phải kiểm soát quyền; L4 không phân biệt HTTP methods/paths.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 16Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗