EKS Pod Identity và External Secrets
Gắn IAM role vào ServiceAccount thay vì nhét AWS access key vào Pod.
Nắm bản chất
EKS Pod Identity association liên kết Kubernetes ServiceAccount với một IAM Role
có trust policy cho pods.eks.amazonaws.com. Một External Secrets
Operator controller có thể dùng identity đó đọc AWS Secrets Manager và đồng bộ
thành Kubernetes Secret. IAM policy chỉ nên cho đúng secret ARN.
Secret rotation là một chuỗi: nguồn thay password, ESO refresh, app reload/reconnect, connection pools chuyển sang credentials mới. Kubernetes environment variables không tự đổi trong container đang chạy sau Secret update.
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
resource "aws_eks_pod_identity_association" "eso" {
cluster_name = var.cluster_name
namespace = "external-secrets"
service_account = "external-secrets"
role_arn = aws_iam_role.eso.arn
}
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
Đọc Terraform và SecretStore examples trong lab Buổi 14. Viết sơ đồ rotation và cách xác minh app đã sử dụng credentials mới.
Lỗi dễ mắc
Đừng cấp secretsmanager:* trên * cho mọi Pod. Pod
Identity agent/cluster networking và service account matching đều cần được
xác minh.
Tự kiểm tra
ExternalSecret được cập nhật có đảm bảo process environment variable tự đổi không?Xem đáp án ↗
Không. Env vars lấy tại lúc Pod start; ứng dụng cần restart/reload hoặc dùng cơ chế khác.
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 14Đố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 ↗