ACM - AWS Certificate Manager

AWS Certificate Manager (ACM)
- Dễ dàng cấp phát, quản lý và triển khai TLS Certificates
- Cung cấp mã hóa trong quá trình truyền tải (in-flight encryption) cho website (HTTPS)
- Hỗ trợ cả public TLS và private TLS certificates
- Miễn phí cho public TLS certificates
- Tự động gia hạn chứng chỉ TLS
- Tích hợp với (có thể load TLS cert lên):
- Elastic Load Balancers (CLB, ALB, NLB)
- CloudFront Distributions
- APIs trên API Gateway
- Không thể sử dụng ACM với EC2 (vì certificate không thể được extract)

Luồng xử lý:
- Client gửi request bằng HTTPS → đến Application Load Balancer.
- ALB dùng TLS cert từ AWS Certificate Manager để thực hiện SSL termination:
- Việc giải mã (decrypt) TLS xảy ra tại ALB.
- Sau khi TLS được terminate, ALB forward request nội bộ xuống EC2 dưới Auto Scaling Group qua HTTP thuần (không mã hóa).
- ACM là bên provision và tự động gia hạn TLS cert được gắn vào ALB. DevOps không cần quản lý thủ công.
Yêu cầu cấp Public Certificate từ ACM
- Khai báo các domain sẽ được cấp chứng chỉ:
- FQDN (Fully Qualified Domain Name):
corp.example.com - Wildcard Domain:
*.example.com→ áp dụng cho tất cả subdomain cấp 1
- FQDN (Fully Qualified Domain Name):
- Chọn phương thức xác thực domain:
- DNS Validation (ưu tiên cho mục đích tự động hoá)
- Hoặc: Email validation
- Email validation sẽ gửi mail đến các địa chỉ được đăng ký trong WHOIS
- DNS validation sẽ yêu cầu bạn tạo một bản ghi CNAME vào cấu hình DNS (ví dụ: qua Route 53)
- Thời gian xác minh có thể mất vài giờ
- Public Certificate sẽ tự động được đăng ký để auto-renew
- ACM sẽ tự động gia hạn chứng chỉ trước khi hết hạn 60 ngày
ACM – Import Public Certificates
- Có thể tạo chứng chỉ bên ngoài ACM (vd: Let's Encrypt, Digicert...) rồi import vào ACM
- Không hỗ trợ auto-renewal
→ Trước khi chứng chỉ hết hạn, bạn phải import thủ công một chứng chỉ mới - ACM sẽ gửi cảnh báo hết hạn hàng ngày, bắt đầu từ 45 ngày trước khi hết hạn
- Số ngày có thể cấu hình tùy ý
- Event được gửi thông qua Amazon EventBridge
- AWS Config có sẵn một managed rule tên:
acm-certificate-expiration-check
→ Rule này dùng để check các chứng chỉ sắp hết hạn (số ngày cảnh báo cũng có thể config)

- ACM theo dõi chứng chỉ import thủ công và tạo ra event “Daily Certificate Expiry”
- Event này được gửi sang EventBridge
- AWS Config chạy rule kiểm tra compliance (ví dụ: cert sắp hết hạn mà chưa thay mới)
- EventBridge có thể kích hoạt:
- Lambda function → xử lý logic custom (e.g. gửi mail, alert Slack, tự động xoá)
- SNS topic → gửi thông báo
- SQS → để xử lý bất đồng bộ
Tích hợp ACM với API Gateway
Bạn cần tạo Custom Domain Name trong API Gateway để dùng TLS cert.

- Edge-Optimized (mặc định) – dùng cho global client:
- Request sẽ được route thông qua các CloudFront Edge location (giúp giảm latency toàn cầu).
- API Gateway vẫn chỉ tồn tại trong một region cụ thể.
- Yêu cầu bắt buộc: TLS certificate phải nằm trong region
us-east-1, vì đó là nơi duy nhất CloudFront hỗ trợ ACM cert. - Sau đó, cấu hình bản ghi CNAME hoặc tốt hơn là A-ALIAS trong Route 53 trỏ đến domain custom đó.
- 📌 Tóm lại:
Cert → us-east-1
API Gateway → có thể ở region khác
Nhưng cert vẫn phải ở us-east-1 vì CloudFront chỉ support tại đó.

- Regional – dùng cho client same region
- API Gateway và client cùng ở một region.
- TLS certificate phải được import vào cùng region với API Gateway.
- Tương tự, cần set bản ghi CNAME hoặc A-ALIAS trong Route 53 để trỏ.
- 📌 Tóm lại:
Cert → cùng region với API Gateway
Không đi qua CloudFront nên latency thấp, không cầnus-east-1.
Bạn thấy bài này thế nào?