How baselines are captured
A baseline is a JSON snapshot of a resource’s complete configuration at a point in time. It contains the full attribute set returned by the cloud provider API for that resource type — security group rules, encryption settings, tags, network configuration, and more. Baselines are captured in two ways:- Automatically — during the initial resource sync after you connect a provider, InfraAudit captures a baseline for every discovered resource.
- Manually — you can capture a new baseline at any time from the resource detail panel or the CLI:
How the comparison works
When the drift detection job runs:- For each active resource with a baseline, InfraAudit fetches the current configuration from the cloud provider API.
- It retrieves the most recent baseline for that resource.
- It performs a deep JSON diff between the baseline and the current configuration.
- For each difference found, it evaluates the drift type and severity.
Drift types
Each detected difference is classified into one of three types:| Type | Classification |
|---|---|
| Configuration | Any change that doesn’t meet the security or compliance criteria below |
| Security | Changes to ingress/egress rules, encryption settings, public access policies, or IAM permissions |
| Compliance | Changes that violate a control in an enabled compliance framework |
Severity levels
Severity is assigned per-difference based on rules specific to each resource type. Examples:| Change | Severity |
|---|---|
S3 bucket BlockPublicAcls set to false | Critical |
Security group: inbound 0.0.0.0/0 added on port 22 | High |
| EC2 instance type changed | Medium |
| Resource tag added or removed | Low |
IaC drift
A separate drift type — IaC drift — compares live resources against your Infrastructure-as-Code declarations (Terraform, CloudFormation) rather than against baselines. IaC drift uses static analysis of uploaded files and runs against already-cached resource configuration, so it doesn’t require additional cloud API calls. See Terraform and CloudFormation for setup instructions.Scan frequency and manual triggers
The drift scanner runs on a cron schedule — the default is every 4 hours. To run a scan immediately:Drift finding lifecycle
A drift finding moves through three states:- Detected — the scanner found a difference. No human has reviewed it yet.
- Investigating — a user acknowledged the finding and is investigating the cause.
- Resolved — the underlying change was either reverted, or the baseline was updated to accept the new configuration.