Infrastructure as Code (IaC) is a method to manage infrastructure through code, which can be versioned and integrated with CI/CD platforms. However, drift occurs when there's a difference between the desired state of infrastructure defined in IaC source code and its actual state. Manual changes are often the primary cause of drift, but overlapping or conflicting IaC code can also contribute to it. To avoid drift, implementing strict access control practices is crucial. Drift detection tools like Terraform, CloudFormation, Pulumi, and Spacelift can help identify drift and revert it back to the desired state.