Plan phát hiện drift lúc refresh và đề xuất kéo resource về đúng code, nên thay đổi làm tay bị revert ở lần apply kế tiếp.
~ resource "aws_security_group" "api" {
~ ingress { ~ cidr_blocks = ["0.0.0.0/0"] -> ["10.0.0.0/8"] }Đây vừa là feature vừa là bẫy: hotfix mở port lúc sự cố sẽ bị xoá âm thầm khi ai đó apply một thay đổi không liên quan.
Phòng theo thứ tự hiệu quả:
1. Siết IAM — production để read-only cho người, quyền write chỉ cho CI role. Không sửa tay được thì code mới thật sự là source of truth.
2. Scheduled plan hằng ngày, alert khi plan không rỗng.
3. Quy trình hậu sự cố: mọi hotfix làm tay phải backport vào code, có người chịu trách nhiệm và có deadline.
Một loại drift không phải do người: provider bump đổi default, hoặc ASG tự scale làm desired_capacity lệch. Loại này xử lý bằng lifecycle { ignore_changes = [desired_capacity] }.