Chặn config vi phạm quy định ngay trong pipeline: S3 bucket public, security group mở port 22 ra 0.0.0.0/0, resource thiếu tag bắt buộc.
rego
deny[msg] {
r := input.resource_changes[_]
r.type == "aws_security_group_rule"
r.change.after.cidr_blocks[_] == "0.0.0.0/0"
r.change.after.to_port == 22
msg := sprintf("SSH mo ra internet: %s", [r.address])
}Điểm mạnh là quy định trở thành thứ chạy được thay vì một trang wiki. Wiki thì người mới không đọc, còn rule trong pipeline thì không bỏ qua được.
Ba nhóm rule thường dùng: security (encryption at rest, không mở port quản trị), cost (chặn instance type vượt ngưỡng), và operations (bắt buộc tag để phân bổ chi phí và xác định owner).
Khi triển khai nên bắt đầu ở chế độ warn thay vì deny, để đo xem rule có chặn nhầm công việc bình thường không.