ACM - AWS Certificate Manager

3 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

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ý:

  1. Client gửi request bằng HTTPS → đến Application Load Balancer.
  2. ALB dùng TLS cert từ AWS Certificate Manager để thực hiện SSL termination:
    1. Việc giải mã (decrypt) TLS xảy ra tại ALB.
  3. 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).
  4. 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
  • 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)
  1. ACM theo dõi chứng chỉ import thủ công và tạo ra event “Daily Certificate Expiry”
  2. Event này được gửi sang EventBridge
  3. AWS Config chạy rule kiểm tra compliance (ví dụ: cert sắp hết hạn mà chưa thay mới)
  4. EventBridge có thể kích hoạt:
    1. Lambda function → xử lý logic custom (e.g. gửi mail, alert Slack, tự động xoá)
    2. SNS topic → gửi thông báo
    3. 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ần us-east-1.
Bạn thấy bài này thế nào?