Compliance

CIS Benchmark Explained — What Actually Matters

EldadCo-Founder & Lead ArchitectMarch 20, 20268 min read

If you've ever run a CIS benchmark scan against your cloud environment, you've probably seen the result: hundreds of findings, color-coded by severity, with no clear indication of where to start. The sheer volume creates a paradox — the tool designed to improve your security posture can leave you more paralyzed than before you ran it.

The Center for Internet Security (CIS) Benchmarks are widely respected, freely available, and referenced by virtually every compliance framework that touches cloud infrastructure. They're also dense, sometimes opaque, and frequently misunderstood. This post breaks down what CIS Benchmarks actually are, how they're structured, and — most importantly — which controls deliver real security value versus which ones are compliance theater.

What CIS Benchmarks Actually Are

CIS Benchmarks are consensus-based configuration guidelines developed by the Center for Internet Security. They exist for operating systems, databases, network devices, cloud platforms, and more. For cloud security, the most relevant benchmarks cover AWS, GCP, and Azure — each maintained as a separate document, updated regularly, and versioned.

They are not regulations. CIS Benchmarks are recommendations, not legal requirements. However, they're referenced by PCI DSS, HIPAA, SOC 2, FedRAMP, and other frameworks as an accepted baseline for secure configuration. Meeting CIS Benchmark requirements often satisfies significant portions of these compliance obligations.

They are consensus-driven. Each benchmark is developed by a working group of security practitioners, reviewed publicly, and refined through multiple drafts. This process produces thorough coverage but can also result in controls that are technically correct but operationally impractical for smaller teams.

They are versioned and platform-specific. The CIS Benchmark for AWS v3.0 is a different document than v2.0, and the GCP benchmark covers different controls than the AWS benchmark. When someone says "we're CIS compliant," the natural follow-up questions are: which benchmark, which version, and at which level?

The Two-Level System

CIS Benchmarks use a two-level scoring system that's critical to understand before you start remediating findings.

Level 1 controls are intended to be practical, produce minimal disruption to production workloads, and represent baseline security hygiene. These are the controls that every organization should implement regardless of size. Examples include ensuring IAM password policies meet minimum complexity requirements, enabling CloudTrail logging, and blocking public access to storage buckets.

Level 2 controls provide deeper security hardening but may impact functionality, increase operational overhead, or require architectural changes. Examples include enabling VPC Flow Logs on all subnets, requiring MFA delete on S3 buckets, and enabling detailed CloudWatch metrics on every resource. These controls are important for high-security environments but can create noise and operational burden for teams that aren't resourced to maintain them.

The practical implication: if your team is just getting started with CIS compliance, focus exclusively on Level 1. Attempting to remediate Level 2 findings before Level 1 is solid is a common mistake — it diverts engineering effort to lower-impact controls while critical gaps remain open.

The Controls That Actually Matter

Not all CIS controls carry equal security weight. Some prevent breaches; others exist primarily to satisfy audit checklists. Here's where to focus your energy.

Identity and Access Management

IAM controls are consistently the highest-impact section of any cloud CIS Benchmark. Misconfigured identity is the root cause of the majority of cloud breaches.

  • Root account protection. Ensure the root account has MFA enabled, has no active access keys, and is not used for daily operations. This is CIS control 1.1 in most cloud benchmarks, and it's there for a reason — a compromised root account means total loss of control.

  • Eliminate unused credentials. Access keys and passwords that haven't been used in 90 days should be disabled. Stale credentials are a gift to attackers who obtain them through phishing, credential dumps, or source code exposure.

  • Enforce least-privilege policies. No user or service account should have AdministratorAccess or equivalent. Audit existing policies, use access analyzers to identify overly broad permissions, and scope new policies to exactly what's required.

  • Require MFA for console access. Every IAM user with console access should have MFA enabled. This single control blocks the most common credential-based attack vector.

Logging and Monitoring

You can't detect what you can't see. Logging controls ensure that when something goes wrong — and it will — you have the forensic data to understand what happened.

  • Enable CloudTrail (or equivalent) in all regions. Not just your primary region. Attackers deliberately operate in regions you're not watching. Multi-region logging with log file validation catches this.

  • Ensure logs are stored securely. Log buckets should not be publicly accessible, should have versioning enabled, and should be encrypted. Attackers who gain access to an environment often attempt to delete logs to cover their tracks.

  • Set up real alerts for critical events. CIS recommends alarms for unauthorized API calls, console sign-ins without MFA, root account usage, IAM policy changes, CloudTrail configuration changes, and S3 bucket policy changes. You don't need alerts for everything — but you absolutely need them for these.

Network Configuration

Network controls prevent unauthorized access to resources and limit blast radius when a single component is compromised.

  • Restrict default security groups. The default security group in most cloud environments allows all outbound traffic and sometimes all inbound traffic within the VPC. Lock it down to deny all traffic, and create purpose-specific security groups instead.

  • Block unrestricted SSH and RDP access. Security groups or firewall rules allowing 0.0.0.0/0 on ports 22 or 3389 are flagged by every CIS scan, and for good reason — they're one of the most commonly exploited configurations.

  • Enable VPC Flow Logs. At minimum for your production VPC. Flow Logs provide network-level visibility that CloudTrail doesn't cover, and they're essential for incident investigation.

Storage Security

Cloud storage misconfigurations have caused some of the most publicized data exposures in recent history.

  • Block public access at the account level. AWS S3 Block Public Access, GCP's uniform bucket-level access, and Azure's storage account public access settings should be configured to prevent accidental public exposure at the account level, not just the bucket level.

  • Enable encryption at rest. Use platform-managed keys at minimum; customer-managed keys if your compliance framework requires it. There's no performance penalty and no reason not to enable this.

  • Enable versioning on critical buckets. Versioning protects against both accidental deletion and ransomware-style attacks that overwrite objects.

Controls You Can Safely Defer

Some CIS controls, while technically correct, deliver marginal security improvement relative to their implementation and maintenance cost. If your team is resource-constrained, these can be deferred until your Level 1 foundation is solid.

  • Hardware MFA for every IAM user. Virtual MFA (authenticator apps) is sufficient for most environments. Hardware keys add friction without proportional security improvement for non-root accounts in smaller organizations.

  • Dedicated logging accounts and cross-account log aggregation. This is best practice for multi-account enterprise environments. For a single-account or small multi-account setup, logging to a secured bucket within the same account is adequate initially.

  • CMK encryption on every resource. Customer-managed encryption keys provide key rotation control and access auditing, but platform-managed encryption provides strong protection for most threat models. CMKs add operational overhead (key rotation, deletion protection, access policies) that may not be justified early on.

  • Detailed CloudWatch metrics and alarms for every service. CIS Level 2 recommends extensive metric filters and alarms. Start with the critical ones (root usage, IAM changes, security group changes) and expand as your team's operational maturity grows.

Automating CIS Compliance

Manual CIS compliance is unsustainable. The benchmarks are updated regularly, your cloud environment changes constantly, and point-in-time audits go stale the moment they're completed.

Continuous scanning is the only viable approach. Tools that map your cloud configuration against CIS controls in real time — and alert you when drift occurs — transform CIS compliance from a quarterly fire drill into an ongoing operational practice.

The challenge for most teams is that CIS scanning is just one piece of the security puzzle. You also need secrets detection, container image scanning, IaC analysis, and dependency checks. Running separate tools for each domain creates integration overhead and finding correlation problems.

Platforms like Nuvm include CIS Benchmark scanning as part of a unified security posture dashboard — alongside IAM analysis, secrets detection, IaC scanning, and container security. This means CIS findings are contextualized alongside your other security data, making prioritization significantly easier.

Making CIS Work for Your Team

CIS Benchmarks are a powerful tool, but only if you approach them with the right mindset.

  • Start with Level 1. Get full coverage on Level 1 controls before touching Level 2.
  • Prioritize IAM and logging. These two sections prevent and detect the majority of real-world cloud attacks.
  • Automate from the start. Manual compliance doesn't scale and creates false confidence between audits.
  • Use findings as a roadmap, not a score. A CIS score of 85% means nothing if the 15% you're missing includes root account MFA and CloudTrail logging.
  • Revisit regularly. CIS Benchmarks are versioned. When a new version releases, review the changelog and update your controls accordingly.

The goal isn't to check every box. The goal is to systematically close the configuration gaps that attackers actually exploit — and CIS Benchmarks, applied thoughtfully, are one of the best frameworks for doing exactly that.

Stay ahead of cloud threats

Start scanning your cloud, code, and containers in 5 minutes.

Get Started