Phát hiện và Khắc phục Sự sai lệch (Drift) trong Terraform

Sự sai lệch Terraform tạo ra những rủi ro thầm lặng trong môi trường production của bạn. Nó xảy ra khi hạ tầng thực tế không còn khớp với mã nguồn của bạn.

Sự không đồng nhất này gây ra tình trạng gián đoạn dịch vụ. Nó tạo ra các lỗ hổng bảo mật. Nó dẫn đến việc vi phạm tuân thủ.

Tại sao sự sai lệch lại xảy ra?

  • Các kỹ sư thực hiện các bản sửa lỗi khẩn cấp (hotfix) trên cloud console.
  • Các nhóm thực hiện các thay đổi thủ công trong quá trình xử lý sự cố.
  • Mọi người tạo tài nguyên bên ngoài quy trình làm việc IaC của bạn.
  • Tốc độ phát triển vượt quá các quy tắc quản trị của bạn.

Ví dụ: Mã nguồn của bạn định nghĩa một EC2 instance là t2.micro. Một kỹ sư thay đổi nó thành t2.large một cách thủ công trong AWS console. Mã nguồn và thực tế của bạn hiện đã khác nhau. Đây chính là drift.

Cách tìm ra nó: Chạy lệnh terraform plan. Lệnh này sẽ cho bạn thấy sự khác biệt giữa mã nguồn và đám mây. Lưu ý rằng một số thay đổi thủ công có thể bị ẩn nếu chúng không ảnh hưởng đến các tài nguyên cụ thể mà Terraform đang theo dõi.

Cách ngăn chặn nó:

  • Sử dụng remote backend. Lưu trữ state của bạn trong AWS S3. Điều này giúp giữ cho file state an toàn và có phiên bản cho toàn bộ nhóm của bạn.
  • Sử dụng GitOps. Hãy biến Git thành nguồn sự thật duy nhất (single source of truth). Mọi thay đổi đều phải thông qua một pull request.
  • Tự động hóa kiểm thử. Kiểm tra các thay đổi hạ tầng trước khi chúng được triển khai thực tế.
  • Giám sát liên tục. Sử dụng các công cụ như AWS Config hoặc Spacelift để cảnh báo khi có các thay đổi xảy ra bên ngoài mã nguồn.

Cách khắc phục: Nếu bạn phát hiện drift, bạn phải đưa hạ tầng trở lại đúng với mã nguồn. Bạn sử dụng lệnh terraform apply để ghi đè các thay đổi thủ công và khôi phục trạng thái mong muốn.

Sự nhất quán giúp hệ thống của bạn luôn ổn định.

Nguồn: https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi